Skip to content

CustomOperation

riku1227 edited this page Nov 29, 2021 · 4 revisions

説明

オプションの処理を定義するクラスです

構造

キー 必須/任意 説明
operation_type 文字列 必須 オプションの処理タイプ
詳しくは下に書いています
argument 文字列 任意 特定の処理タイプで使用されます
is_avatar_object 真偽値 任意 処理する対象のオブジェクトがアバターのオブジェクトかどうかを設定します
服側のオブジェクトの場合、自動でオブジェクトの名前にIDが付与されます
target_object_list 配列(文字列) 任意 処理タイプが'MOVE_BONE'以外の時に使用されます
処理の対象になるオブジェクトを設定します
オブジェクトの下に置いてあるオブジェクトを指定する場合は
'/'を使用してフルパスで記入します
move_object_list 配列(MoveObject) 任意 処理タイプが'MOVE_BONE'の時に使用されます
服側のオブジェクトをアバター側に移動させることができます
服側のオリジナルボーンなどを良い感じに処理する時に使用されます

operation_type

Type 使用される要素 説明
DELETE_OBJECT target_object_list チェック/選択された場合、対象のオブジェクトを削除します
詳細オプションの'タグをEditorOnlyに設定'が有効化されている場合は
オブジェクトは削除されず、タグが'EditorOnly'に設定され、オブジェクトが無効化されます
NOT_DELETE_OBJECT target_object_list チェック/選択された場合、対象のオブジェクトを削除しません
チェック/選択されなかった場合は削除されます
他の動作は'DELETE_OBJECT'と一緒です
ENABLE_OBJECT target_object_list チェックされた/選択された場合、対象のオブジェクトを有効化します
DISABLE_OBJECT target_object_list チェックされた/選択された場合、対象のオブジェクトを無効化します
SET_MATERIAL argument
target_object_list
チェック/選択された場合、対象オブジェクトのマテリアルを変更します
マテリアルはargumentでマテリアまでのパスを指定します
マテリアルのパスは相対パスで記入し(拡張子のmatまで必要です)
ベースパスはこのオプションが書かれているファイルがあるフォルダになります
MOVE_OBJECT move_object_list チェック/選択された場合、move_object_listで設定された'服側のオブジェクトをアバター側に移動させます'
SET_BLEND_SHAPE argument
target_object_list
チェック/選択された場合、指定したブレンドシェイプ(シェイプキー)の値をセットします
ブレンドシェイプと値の指定はargumentでします
例 test_shapeというブレンドシェイプ(シェイプキー)の値を100にセットする、test_shape:100
例 test_shapeとexample_shapeの値をセットする、test_shape:100,example_shape:100
NONE 何もしません

is_avatar_object

これを有効化すると、target_object_listを処理する時に自動的にIDが追加されなくなります

なぜわざわざこれが必要なのか

RiCothes Setuperは複数の衣服やアクセサリーなどを一つのアバターに導入する場合と、服で追加されたオブジェくだということがわかりやすくするようにするために
服側のオブジェクトに追加でExpandOptionで指定したIDを付けます
オブジェクトの名前がexample_clothでidがtest_idの場合、アバター側に移動された時のオブジェクトの名前は example_cloth_test_id になります
そのため、デフォルトでCustomOperationのtarget_object_listを処理する時に、自動的にIDが追加されるようになります
ですが、アバター側にデフォルトであるオブジェクトに対して処理を行いたい場合、IDが自動で追加されてしまうと正常に処理することができなくなってしまいます

関連リンク

  • CustomOption
    • カスタムオプションを定義するクラス
    • CustomOperationが使用される
  • CustomGridOption
    • グリッドオプションのを定義するクラス
    • CustomOperationが使用される
  • MoveObject
    • 服側にあるオブジェクトをアバター側に移動させるオプションのときに使用されるクラス
    • CustomOperationが使用する

説明用にコメントを書いています、本来はJSONファイルにコメントは書けません
RiClothes Setuperの場合読み込み時に正常に読み込めず、エラーが出ます

  • アバターがデフォルトで着ている服や靴を削除する
{
  "operation_type": "DELETE_OBJECT",
  "is_avatar_object": true,
  "target_object_list": [
    "avatar_cloth",
    "avatar_shoes"
  ]
}
  • 服側の帽子の左側を削除する
{
  "operation_type": "DELETE_OBJECT",
  "target_object_list": [
    "cloth_hat_left"
  ]
}
  • マテリアルを切り替える
cloht_folder/
  material/
    01.mat
    02.mat ←
  prefab/
    cloth.prefab
    Option.json
{
  "operation_type": "SET_MATERIAL",
  "argument": "../material/02.mat",
  "target_object_list": [
    "cloth"
  ]
}
  • オブジェクトを移動させる
{
  "operation_type": "MOVE_OBJECT",
  "move_object_list": [
    { /* MoveObject */ },
    { /* MoveObject */ }
  ]
}
  • exampleというオブジェクトのtest_shapeというブレンドシェイプ(シェイプキー)の値を100にセットする
{
  "operation_type": "SET_BLEND_SHAPE",
  "target_object_list": [
    "example"
  ],
  "argument": "test_shape:100"
}
  • exampleというオブジェクトのtest_shapeとexample_shapeとテストシェイプの値をそれぞれセットする
{
  "operation_type": "SET_BLEND_SHAPE",
  "target_object_list": [
    "example"
  ],
  "argument": "test_shape:100,example_shape:0,テストシェイプ:100"
}
  • 何もしない
{
  "operation_type": "NONE"
}
Clone this wiki locally