lilxyzw / lilycalInventory

Modify avatar at build time.
MIT License
40 stars 9 forks source link

複数コンポーネントから同一オブジェクトの操作がうまくいかない場合がある #67

Closed nekobako closed 4 months ago

nekobako commented 5 months ago

複数コンポーネントから同一オブジェクトを操作する際によく分からない遷移が生成されるので報告です。

おそらく安全側に倒して「デフォルト状態から変更するときの条件を AND にする」が正かなと思いますが、「オブジェクトをアクティブにするときの条件を AND にする」というのが混じった (?) 結果、どちらでもないようになってしまっている感じがします。 正しい仕様が分かっていないので何とも言えないのですが、とりあえず現状では絶対に満たさない条件 (A == 2 && A == 3) や意図が分からない条件の遷移が生成されている状態です。 また、CostumeChanger が複数ある場合の条件の網羅の仕方もおかしそうです。

なお、Use Direct Blend Tree のチェックを外していても ItemToggler のパラメータが Float になり、遷移には Greater 0.5 か Less 0.5 の条件が設定されていますが、分かりやすさのためにここでは True/False で表記します。

また、単体の ItemToggler のときに生成されるステートの名前はパラメータの True/False と対応した On / Off ですが、複数コンポーネントのときに生成されるステートの名前はオブジェクトのアクティブ/非アクティブと対応した On / Off になっており、ここも混乱の元な気がしています。(変数名と合わせて Default と Changed とかがよさそうかも)

(長々とすみません…!)

パターン 0 (正しそう)

Hierarchy の状態

生成される遷移

パターン 1 (パターン 0 の逆の場合、正しくなさそう)

Hierarchy の状態

生成される遷移

正しいであろう遷移

パターン 2 (CostumeChanger が複数ある場合、正しくなさそう)

Hierarchy の状態

生成される遷移

正しいであろう遷移

パターン 3

ItemToggler の GatherConditions が ObjectToggler の value を見ていないなど気になる点があるのですが、正しい仕様が分かっていないので未検証です。