VRM1.0でFirstPersonの設定を呼び出す方法探し
これをVRM1.0でする方法
VRM1.0って実装方法のドキュメント全然ないの・・・?
中身の仕様とかを見ないといけないのか・・・?
こちらの記事でFirstPerson周りのことを書いているがよくわからない
VRM0.xのときのVRMFirstPerson.Setup()に当たるものはどれなんだろう。
構成的にはVrm10Instanceの下?中?
VRMInstanceコンポーネントの中にFirstPerson関連の何かがあるわけではない。関係ないけどFinalIKの文字があった
FirstPerson関連のコンポーネントを調べたらVRM10ObjectFirstPersonというのがあった
頭部を取り除いたモデルを複製している!?
これのSetupAsyncを呼び出すのか?
VRM1.0のFirstPerson使って頭だけカメラから消す方法解決できた!
— ほそけん (@hosoken11) 2023年7月16日
結局FirstPerson.SetupAsync()使うとなぜか動くときと動かないときがあったから、中の処理を読んでそれを自作して頭と髪のレイヤーを変更することにした
多分足りないところとかあるだろうけど、動かしたい通りに動いているのでヨシ!
SetupAsyncでググったら出てきた!
FirstPersonを取得する場合はVRM1.0からはinstance.Vrm.FirstPerson.SetupAsync()で取得できます。
こんな感じか?
using UniVRM10;
でもawaitCallerの部分がわからない
あとレイヤー名ももしかしてvrm0.xと設定違うのだろうか
サンプル
サンプルあった。。。
実行して、vrm1.0を読み込んだらFirstPersonには何も表示されなかった。vrm0.xから1.0にuniVRMでアップグレートしたモデルだと、FirstPersonなどのレイヤーの設定引き継がれないのか?
実行中、モデルのすべてのメッシュがTHIRD Person Only layerになってる
もともとはDefalt
この配布モデルでもだめだった
公式がvrm1.0のモデルを配布しているはず・・・
ここから直接ダウンロードできた
https://github.com/vrm-c/vrm-specification/blob/master/samples/Seed-san/vrm/Seed-san.vrm
これだとちゃんと首だけ消えた!モデルの設定なのか・・・
ちなみにsamples/VRM1_Constraint_Twist_Sample/vrm/VRM1_Constraint_Twist_Sample.vrm
のほうは消えなかった。
サンプルのスクリプトになんか書いてた。
あとSetupAsync()はVRMをロードしているところでやっていたけど、↑のほうの参考記事と全く同じ・・・
ロードするときはそれでいいのかもだけど、初めからシーンにあるVRMモデルのFirstPersonのセットはどうするんだ?
あ、レイヤーをあらかじめセットしておけばいいのか・・・
すごい遠回りした;;
vrm1.0でのFirstPerson設定
vrm1.0のタブの一番上にある_vrm1_の中に設定する場所がある。
これ
Select GUIをMetaからFirstpersonに変更
あった。Autoには設定されているのか。vrm0.xではこれでよかったはずなのだが・・・
Autoとかの意味合いは0.xと同じかな
Autoによる自動分割は重めの処理なんだ・・・知らなかった
以下が推奨
頭に ThirdPersonOnly を指定
体に Both を指定
公式サンプルもちゃんと設定してた。
この設定を自分のvrmにもする
これで書き出して、さっきのサンプルシーンで読み込むと・・・
あれ?
あれ~~Bodyの一部なんだ~。
vrm0.xでSetup()したモデルうまくいってたと思ってたけど気のせいか・・・と思ったが気のせいではない。VRで見たらちゃんと顔消えてる。
え~~~なんで~~
マテリアル非表示にしているのか??