modular-avatar icon indicating copy to clipboard operation
modular-avatar copied to clipboard

BlendShape Sync でマッピング範囲を定義したい

Open Narazaka opened this issue 2 years ago • 14 comments

BlendShape Sync は主要な目的として体型変更BlendShapeへの適用を想定したものであると思うが、体型変更BlendShapeの衣装対応は往々にして0-50, 50-100と分割して設定されることがある(胸が大きいアバターにおいて頻出)。 このため素体の0-50を0-100にマッピングする等の指定が出来ると多くのケースが劇的に簡単になるはずです。

  • 体型変更BlendShapeの範囲を分けた上でさらにメッシュまで分かれていてsmallとbigが存在することもあるので、BlendShape SyncでそこのActive制御まで制御出来るとより便利。だが、どこまでを責任範囲とするかが難しい。
  • ……という事もあって簡単なケースしかサポートしないという判断はありうると思う。が、アバターによってはかなり(3、4個衣装を買ったら1つはある位の体感で)頻出するケースであるので、機械的に対応出来そうなのにもかかわらずわざわざ1からアニメーションを組んで素体BlendShape値と同期するか気を配らなければならない(curveの設定等)のはしんどく感じる。

Narazaka avatar Aug 18 '23 14:08 Narazaka

うーん、これは考えたことがあるけど、ユースケース的にはちょっと微妙かも?以下の二通として考えています。

1)衣装作者なら、素体のブレンドシェープに合わせたり、マルチフレームのブレンドシェープを応用することで既存の仕様でも問題ないはず 2)MA未設定服(あるいはアバターに非対応の服)を導入しているエンドユーザーの場合は、そもそもそこまで汎用的な設定が必要かが疑問なので、複雑なマッピング・カーブ指定設定よりは将来通り一回手動でブレンドシェープを設定をしたほうが手っ取り早い。バンバン胸のサイズをいじる人なら別だけど、それこそレアケースだと考えています。

なので現時点で必要性をあまり感じないけど、どのようなユースケースを想定していますか?

bdunderscore avatar Aug 18 '23 16:08 bdunderscore

1で素体のBlendShapeに1フレーム?であわせられる場合はもちろん問題ないですし、主にはこれになるのはたしかです。 問題はそう出来ない場合で、これがよく使われている主に胸が大きいアバターにおいて無視出来ない程度に多く(少なくとも1割くらいはありそう肌感)の衣装で見受けられると思っています。

  • 1について、衣装作者はブレンドシェイプのフレームという概念をそもそも知っていない可能性があり、対応不能または知ったとしても過去に作ったモノのMA対応で手間がかかる場合が多くありそう。

    • なんなら私もその概念を今初めて知ったし、それをblenderモデリングから設定する方法が調べても分からない
    • 衣装は3Dモデル素人が作っている割合も高いと思われるのでその知識は十分普及していない気がする
    • 実際0-50,50-100などの分割した2つ以上のblendshape設定がよく使われている
  • 2について、BlendShape Syncは素体側の体型変更を如何にやっても服側を変更する必要がない点で胸のサイズをいじる人にとって大変便利

    • たしかに比較的レアケースではあると思う
    • ただしアバターに胸可変ギミックが付いているのがある程度通例化しているのもあり、利用者が多い場所もある(数十オーダーみたいな話では無いと思われる)

Narazaka avatar Aug 19 '23 01:08 Narazaka

ニッチだとしても勝手にMA対応コンポーネント増やせそうな仕組みとかになっていれば自分で勝手に実装して配布するとかはありっぽいと思ってるんですが、現状そうでも無いので公式に凸ってしまっているという感じも有りますね。

Narazaka avatar Aug 19 '23 01:08 Narazaka

なんかMAの実行タイミングの前にMAのコンポーネントを付けてしまうみたいな事が出来れば勝手にanimation生成してMerge Animatorをつける処理を書けば行けるか……?

Narazaka avatar Aug 19 '23 02:08 Narazaka

衣装作者なら、素体のブレンドシェープに合わせたり、マルチフレームのブレンドシェープを応用することで既存の仕様でも問題ないはず

に関してはBlenderを使用している場合にマルチフレームが使用できないので問題が残ると思います

anatawa12 avatar Aug 19 '23 12:08 anatawa12

Blenderでマルチフレームは不可能か・・・それなら確かに対応したほうがよさげですね。

bdunderscore avatar Aug 20 '23 04:08 bdunderscore

Blenderだからどこかにあるのかもとも思ったがやっぱないのか(

Narazaka avatar Aug 20 '23 22:08 Narazaka

Blender のシェーブキーの概念が微妙にFBXとちがうっぽいので仕方ないかもね

bdunderscore avatar Aug 21 '23 06:08 bdunderscore

LIにも関連するリクエストが来たので以前と比較して需要が高くなっているかもしれません。アニメーションで体型変更しない場合はメッシュのBlendShapeを直接操作したほうが楽ですが、現在はアバターに体型変更アニメーションがついていることが多くなっています。それに対応させる場合はアバター本体のアニメーションを直接編集する必要がありますが、BlendShape Syncからマッピングできるとアバター本体のデータを変更せずに改変できます。また、アバター本体のデータを改変しなければアバターのアップデート時に上書きして改変データがなくなってしまう事故も防げます。

関連: https://github.com/lilxyzw/lilycalInventory/issues/91

lilxyzw avatar Sep 01 '24 16:09 lilxyzw

マッピング(カーブ)設定があったもしても、アバター本体を操作するアニメーションに効果はなさそうな気がする…?

bdunderscore avatar Sep 01 '24 17:09 bdunderscore

カーブでは無理ですが線形であれば、blendshapeを結合してmulti frame blendshapeを生成したり(素体のが一つで服が複数のに分かれていむ場合)、分割したり(素体のが複数で服のが一つにまとまってるとき)してアニメーションもマッピング可能ではありそう

anatawa12 avatar Sep 01 '24 18:09 anatawa12

curveは設定が難しいのとアニメーションの対応が困難なのでlinearを想定しています。 anatawa12さんの言うように

  • 素体がBreastBigだけ、衣装がBreastBigとBreastSmallに分かれているパターン → 衣装のBlendShapeをマルチフレームで1つに結合
  • 素体がBreastBigとBreastSmallに分かれていて、衣装がBreastBigだけのパターン → 衣装のBlendShapeを2つに分割

を行えばそこから先は現在のBlendShape Sync同様に処理できると思います

lilxyzw avatar Sep 01 '24 23:09 lilxyzw

なるほど・・・検討します (カーブは実はBlendTreeで頑張ればワンチャン実装可能かも?)

bdunderscore avatar Sep 01 '24 23:09 bdunderscore