lilxyzw / lilycalInventory

Modify avatar at build time.
MIT License
21 stars 3 forks source link

feat: add parameter default value options #72

Closed nekobako closed 1 month ago

nekobako commented 1 month ago

Resolves #64 です。 なくてもおそらく困りはしない設定なので Inspector の一番下に詳細設定の項目を追加してそこに入れました。

Expression Parameters がデフォルト値の設定に関わらず False や 0 になるかもしれない件については私の方では確認できていませんが、絶対にないとは言えないので注意文言を表示するようにしています。

nekobako commented 1 month ago

ItemToggler の処理が CostumeChanger と比べて特殊に感じるかもしれないのでその補足を書いておきます。

まず前提として、ItemToggler では

  1. アバターアップロード前の状態
  2. アバターリセット後の状態
  3. セーフティーでアニメーションが無効になっている状態

が一致することを保証したいというのがあります。 これは現在の LI でもそうで、CostumeChanger にはメニューの状態数 (= コスチュームの数) だけアバターの状態を指定できるのに対し、ItemToggler のアニメーション設定に指定できるのが 1 状態だけなのはこの思想からと認識しています。

この前提なしに「デフォルト値」の仕様を考えると、

の 2 パターンが考えられますが、A だと前述の前提を満たさなくなってしまう上に、本 PR で実現したかった #64 の「初期状態がアクティブなオブジェクトのアクティブ/非アクティブをメニューのオフ/オンではなくオン/オフに対応させたい」を実現できるのも B なので、B の仕様を採用しています。

補足は以上ですが、CostumeChanger も前述の前提に従った方がよいのではないかという issue が #68 になります。 本 PR がマージされた場合、#68 で「0 番目の衣装」と表記しているところは「デフォルト番目の衣装」と読み替えることになります。

lilxyzw commented 1 month ago

pull requestありがとうございます LIの思想的に安全寄りにしているので初期値は設定できないようにしていましたが、警告が表示される仕様ならありかなと思ったので取り込もうと思います!

nekobako commented 1 month ago

ありがとうございます!