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

UpperChestが衣装にないが素体にある場合への対応

Open Sayamame-beans opened this issue 1 year ago • 4 comments

現状のSetupOutfitでは、(確か、)UpperChestボーンが衣装にあるが素体にない場合に対応しています。 (これはMA Merge Armatureを複数付けて対処するものであり、Merge Armature自体の機能ではありません(改善の余地はあるかも))

逆に、衣装にないが素体にある場合も存在するはずなので、そちらにも対応した方が良さそうだと思いました。

Sayamame-beans avatar Sep 14 '24 13:09 Sayamame-beans

素体側にUpperChestがあって衣装側にない場合、UpperChest部分に貫通が目立ちそうだけど実際どうでしょうか? 衣装側にUpperChestがある場合は対応済みです。

bdunderscore avatar Sep 15 '24 00:09 bdunderscore

そこですよね〜 全く動かないものが動くようになるだけで+ではあると考えていますが、どこまでしっかり動くかについてはUpperChestのあるアバターの使用者に(既存ツール使用者とかでOK)聞いてみたいところです

Sayamame-beans avatar Sep 15 '24 00:09 Sayamame-beans

具体例を見てちゃんと動くなら対応を検討してもいいのですが、検証用アバターの引き出しがないので今は保留かな・・・

bdunderscore avatar Sep 15 '24 00:09 bdunderscore

メモ: BoneProxyのUpperChest指定、UpperChestが無い場合に移動先が不定になりそう

Sayamame-beans avatar Jan 26 '25 02:01 Sayamame-beans

追記: NDMF Discordのdev-chat-jpチャンネルで何度かやり取りがあり、最終的に、「衣装のChestボーンをアバターのUpperChestに紐付ける」形になるように対処するのが良さそうとなっています(未実装)

Sayamame-beans avatar Jul 15 '25 04:07 Sayamame-beans

いつもお世話になっております。 検証用アバターの引き出しがないとのことですが、購入費用の負担が発生してしまうということが理由でしたら、私からいくつかアバターと衣装をギフトさせていただくというのはいかがでしょうか。 普段からUpperChestのあるアバターを使っている人の意見が必要ということでしたらご放念ください。

planaria avatar Jul 15 '25 14:07 planaria

こちらとしては ・再現できるアバターと衣装 ・手動対処した人の主観で、UpperChestとChestを連動させることで突き抜けの問題が起きることが多いか、の情報

の2点があれば動けると思いますので、その辺手伝っていただけると助かります

bdunderscore avatar Jul 15 '25 17:07 bdunderscore

ご検討ありがとうございます。

再現できるアバターと衣装

こちらが意図しているのは、UpperChest の存在によって現状では紐づけができないアバターと衣装の情報という認識で合っているでしょうか。

手動対処した人の主観で、UpperChestとChestを連動させることで突き抜けの問題が起きることが多いか、の情報

こちらは、Modular Avatar の機能を使うのではなく、例えば以下のような方法で対応したとき、突き抜ける問題が発生するか確認するという認識で合っているでしょうか。

https://x.com/yukariAide/status/1944964668440895627

認識と合っていれば、私の方でいくつか UpperChest があるアバターを購入してこちらの手順で作業を行い、動いたときに突き抜ける問題が発生するかどうかを報告させて頂こうと思います。

planaria avatar Jul 15 '25 22:07 planaria

こちらが意図しているのは、UpperChest の存在によって現状では紐づけができないアバターと衣装の情報という認識で合っているでしょうか。

そうですね。

認識と合っていれば、私の方でいくつか UpperChest があるアバターを購入してこちらの手順で作業を行い、動いたときに突き抜ける問題が発生するかどうかを報告させて頂こうと思います。

お願いします!VRChatにおいてUpperChestが個別に動いているかあまり把握していないので、安易に結び付けていいかわからないのが今の主な問題ですので、固定してそうならSetup Outfitで対応できるかと思います。

bdunderscore avatar Jul 16 '25 00:07 bdunderscore

承知しました。ではこちらで上の手順で検証して報告させていただきます。 今週末には作業できると思います。

アバターや衣装について指定があるでしょうか。 なければ、UpperChest があるアバターを人気なものから何体か購入しようと思います。 衣装についても指定がなければ手持ちのものから UpperChest がないものを試してみようと思います。

planaria avatar Jul 16 '25 00:07 planaria

アバター側のほうが重要ですね。UpperChestが動くのであれば、上半身で密着するような衣装はすぐ突き抜けるかと思います。 ただ、トラッキング環境にもよって変わるかもなので、できれば胸トラッカー環境を持っている人にも動作確認してほしいかもです。

bdunderscore avatar Jul 16 '25 02:07 bdunderscore

(その辺り、以前Misskeyの方で少し情報を貰った記憶があるので、後で持ってきますね)

Sayamame-beans avatar Jul 16 '25 02:07 Sayamame-beans

トラッカーを追加注文したので届き次第ですが確認いたします。 いわゆるフルトラ(左足、右足、腰)+胸トラッカーがあれば十分ですよね?

planaria avatar Jul 16 '25 02:07 planaria

from: https://misskey.niri.la/notes/9y6sh2ty2s

・3点トラッキングの場合 Hip⇔Neck間は基本不動のため、Upper Chestの有無による貫通度合いは変わらない

・フルトラッキングの場合(このあたりの記事で色々考察してます)

条件1:腰固定でのトラッキングの場合、HipとHeadの奥行座標がずれていれば、Headの座標をHipまで動かす。この時角度が変わるのはNeck直上のボーン。(Upper Chestがある場合はUpper Chest、ない場合はChest)

条件2:頭固定、両方固定の場合、HeadとNeckの奥行座標がずれていれば、Headの座標をNeckまで動かす。この時角度が変わるのはNeckボーン。

条件3:屈む姿勢などをとった場合、ChestもUpper Chestも可動する

推測 ①条件1により、腰固定でのトラッキングを実施した際にHeadとHipの奥行座標が異なる場合、素体側のUpper Chestが角度を変えるため衣装を貫通する可能性がある

②条件3により、屈む姿勢などをとった時曲がり方が異なるため、素体が衣装を貫通する可能性がある

Sayamame-beans avatar Jul 16 '25 03:07 Sayamame-beans

from: https://misskey.niri.la/notes/9y6vpwlzgd

ひとまずUpper Chestあり素体FBXみたいなの作りましたのでよければお使いください(Hip-Head間の奥行座標はわざとそろえてない状態です) https://media.niri.la/misskey/a109e208-9637-47f6-b2c0-4b7002e45207

Sayamame-beans avatar Jul 16 '25 03:07 Sayamame-beans

この情報をいただいていた方から追加検証による情報がいただけました。 from: https://misskey.niri.la/notes/aa90rbf5fb

素体のUpperChestに衣装のChestを追従させると素体のUpperChestと衣装のChestの座標ずれが大きいことからボーンが動いた時の貫通に弱くなる可能性が高い

理由は先の画像で述べたとおりですが、衣装のChestボーンが素体のUpperChestを起点に動くため軸がずれやすく、動いた時のシルエット異常や素体メッシュ貫通が発生しやすくなります。 今回テストで作成したアバターでは胴回りでかなりマージンを稼ぎましたが、3点でのしゃがみ込みで貫通の発生を確認しました。 胸トラッキングやFBTでの操作時は貫通確認できませんでしたが、基本的にUpperChestがある場合胸IKはUpperChestに適用されていると思わしい挙動をしているので、UpperChestが可動する時点で(衣装の作りによっては)胸を動かすような動作を行う時にシルエットの破綻やメッシュの崩れ、素体貫通が発生する可能性は高いです。 より貫通に対してシビアに設定するのであれば、ChestはChestに追従させたまま、ShoulderとNeckにMerge Armatureをセットするようにしてあげたほうがよいかと思います。 Image

ChestはChestのまま、ShoulderとNeckをMergeする方式は問題が解消されるものの、「Rig上でUpperChestが参照されている以上UpperChestは可動域として動いてしまう」とも仰っていました。 そのため、この方の検証からは

  • 現状のMAのままで行くならShoulderとNeckにMerge Armatureを付与するようにする(恐らくこれでも十分な(UpperChestが衣装にあって素体にない場合に同じような)精度は得られると推測?)
  • 更に改善するのであれば、専用の対処を何か検討

となりそうです。(今更の情報ですみません)

Sayamame-beans avatar Jul 16 '25 09:07 Sayamame-beans

私が予定していた検証内容もこちらの内容から変更したほうが良いでしょうか。

https://x.com/yukariAide/status/1944964668440895627

planaria avatar Jul 16 '25 09:07 planaria

悩ましいところです… 上記検証では"可能性が高い"とはされていますが、実例は確認出来ていないようですので、同方式での検証も意味があると考えます。 また、これと比較して、提案いただいている"ShoulderとNeckにMerge Armatureを付与するようにする"がより安定するようであれば、少なくとも第一対応としてはそちらの方式での実装も選択肢として十分ありだと考えられます。

どちらも微妙であれば、別の新しい方法を考える必要性が高いと思いますので、私個人としてはこの2方式を検証いただけると大変ありがたいです🙏

Sayamame-beans avatar Jul 16 '25 09:07 Sayamame-beans

ではまず最初に予定されていた「Chest直下にUpperChestを作成」の方法で、指摘いただいている現象が発生することを確認する作業からやってみます。 指摘していただいている現象が確認できたら、提案いただいている方法でどの程度改善しているかを確認しようと思います。

planaria avatar Jul 16 '25 10:07 planaria

確認作業についてですが、こちらに確認した内容の画像を全て貼り付けていくのが良いでしょうか。 結構大量の画像になってしまうかもしれません。 貫通などがあった場合だけ画像を貼り付けるほうが良いでしょうか。 もしくは、スプレッドシートなどにまとめたほうが良いでしょうか。

planaria avatar Jul 18 '25 08:07 planaria

とりあえず Google ドキュメントに書いてみました。 まだ胸トラッカーの準備ができていないので VR での結果はお待ち下さい。

https://docs.google.com/document/d/1jGe_4SnQYaa-CRdcjaPGG0Nzq06thiNE3gLWEsBj498/edit?usp=sharing

「Neck, Shoulder に Merge Armature を設定する方法」について、アバターに衣装が追従しなかったのですが、なにか設定を間違えているでしょうか。

planaria avatar Jul 18 '25 23:07 planaria

ドキュメント作成ありがとうございます

Unity 上で UpperChest だけを回転すると背中上部が追従しない。 (この現象は、UpperChest, Chest の手動移動を行わなくても発生した)

これに関しては、オブジェクトを追加しただけだとメッシュとのバインドが無いので当然そうなるだろうなと思いますね 本格的に対応するなら衣装側のChestを割り当てられている頂点ウェイトを良きところでUpperChestに書き換えて追加したUpperChestオブジェクトをボーンとしてバインドする必要があるかと思います

Neck, Shoulder に Merge Armature を設定する方法 この状態でアバターの LeftShoulder, RightShoulder を回転させたが、衣装は追従しなかった。

これに関しては名前合わせを行っていないからじゃないからじゃないかと思います

また、衣装側のChestにMAMargeArmatureをつけて対象をアバター側のUpperChestにするという手法が一般に浸透しているやり方だと思うのでそちらもドキュメントに追加して貰えると助かります 個人的に見ている限りでは、この手法ではお腹の辺りが突き抜けやすくはなるのですが、その部分は曲げた時に隠れやすくなる範囲でもあるので多少は目をつぶれる所かなと思ってみています

c-colloid avatar Jul 19 '25 00:07 c-colloid

これに関しては名前合わせを行っていないからじゃないからじゃないかと思います

ありがとうございます。 名前合わせを行ったのですが、まだ Shoulder は追従しないようです。

Image

名前合わせは、接尾語の設定、「ボーン名をアバターに合わせてリセット」を実行後、Shoulder の名前をそれぞれ変更しました。

Image

今気がついたのですが、Upper Arm は追従しているようです。

Image

planaria avatar Jul 19 '25 00:07 planaria

もしかするとそちらはプレビュー機能のバグかも?(元々アーマチュアにつける想定のコンポーネントなので)

実行してマージされたあとの動きがどうなっているか確認してみてください

c-colloid avatar Jul 19 '25 00:07 c-colloid

もしかするとそちらはプレビュー機能のバグかも?(元々アーマチュアにつける想定のコンポーネントなので)

実行してマージされたあとの動きがどうなっているか確認してみてください

なるほど、そうだったんですね。 実行モードに遷移すれば問題なく追従していることを確認できました。 ありがとうございます。

この内容で調査内容を更新します。

また、衣装側のChestにMAMargeArmatureをつけて対象をアバター側のUpperChestにするという手法が一般に浸透しているやり方だと思うのでそちらもドキュメントに追加して貰えると助かります

こちらも追記いたします。

planaria avatar Jul 19 '25 00:07 planaria

ボーン名を合わせ、実行モードに遷移した状態での確認を追記しました。 衣装側の Chest に Merge Armature をつけて対象をアバター側の UpperChest にする方法についても追記しました。

planaria avatar Jul 19 '25 01:07 planaria

胸トラッカーが準備でき次第、他のアバターでも調査しようと思います。 調べる内容について方針変更が必要であればご連絡ください。

planaria avatar Jul 19 '25 01:07 planaria

胸トラッカーが届いたので追記しているところなのですが、 VRChat の仕様か設定か分かりませんが、胸トラッカーについては上下方向の角度を利用できていないように見えました。 https://photos.app.goo.gl/frAMTUwWSF7YvehPA

planaria avatar Jul 20 '25 09:07 planaria

フルトラ+胸トラ での結果を追記しました。 https://docs.google.com/document/d/1jGe_4SnQYaa-CRdcjaPGG0Nzq06thiNE3gLWEsBj498/edit?usp=sharing

ポーズはこんなもので大丈夫でしょうか。

planaria avatar Jul 20 '25 09:07 planaria

おそらくIKのポールに割り当てられているのでそういう動きになっているように見受けられますね

c-colloid avatar Jul 20 '25 10:07 c-colloid