UnityでVRM1.0モデルのブレンドシェイプが動かない時の対処法メモ

VRM1 ブレンドシェイプ 動かない unity Unityトラブルシューティング
※記事内に広告が含まれています。

バーチャル3Dクリエイター神部まゆみです(*^_^*)

この記事はUnityでVRM1.0モデルのブレンドシェイプが動かない時の対処法メモです。

動作環境はUnity2022.3.22、VRoid Studio v2.1.0でエクスポートしたVRM1.0モデルです。

●PRスペース●
■PR■

現在、TPSシステム系アセットが50%オフで買える Unityパブリッシャーセール をやってるみたいです(2025/09/12 23:59まで)。

Unity パブリッシャーセール 50%オフ

クーポンコード FANTACODESTUDIOS を使うと、↓のロープスイングシステムがタダで貰えます(決済時にクーポンコード入力適用で0円に)。

unity ロープスイングシステム

無料アセットだけでも貰っておくと良いかも。

〇まゆみマート|BOOTH

BOOTHでVRoidテクスチャやVRChat向けオブジェクトなどを販売しています。いいねしてくれると励みになります(*^-^*)

症状:シーンエディタではちゃんと設定したブレンドシェイプ(表情)が動いたが、実行画面を押すと真顔になる

シーン画面のアニメーションプレビューやVeryAnimationの編集画面ではちゃんと表情がついているんだけど、

実行ボタンを押すと突然真顔になりますΣ(゚Д゚)

どうも実行中はブレンドシェイプが無効になってるっぽい?

VRM1 ブレンドシェイプ 動かない unity

VRM0.0でエクスポートしたモデルはちゃんと動くんですけどね…。

【解決?】VRM InstanceのRuntimeのUpdate Type なし にしたら動いた

ここがデフォルトではLate Updateになっていたのだけど、なしにしたら動きました。

VRM1 ブレンドシェイプ 動かない

こちらの先輩のポストで解決しました!ありがとうございます(*^_^*)

んーでも良いのかなこれ…。

Updateされないことで何か不具合が出る可能性があるかもしれない。

ブレンドシェイプ周りはVRM0.xのほうが扱いやすいか…?

VRM1.0とVRM0.xはブレンドシェイプ周りの動作がちょっと違うっぽいので、VRM1.0で動かなければVRM0.xでやったほうがスムーズに動くかも?

VRM1.0は2022年9月に出た比較的新しい規格ですが、検索すると出てくる情報はまだVRM0.xのほうが多かったりするし。

というかあんまり意識してない人も多いかも…?一応コンポーネントに若干違いがあるんですけど、一度unityにインポートしちゃうと分かりづらいですからね。

VRoid Studioならエクスポートする時に選べるので、VRM1.0でダメならVRM0.0でエクスポートしたモデルを使ってみるのも良いかもしれない。

最近のUniVRMだとVRM0.0のモデルを読み込んでも、VRM1.0のモデルも自動で生成されるっぽい? ※VRoidの場合

あくまでVRoid Studioでエクスポートしたモデルの話で、他のVRMモデルについては分からないけど。

VRM0.0のモデルをインポートしたら、VRM1.0のモデルも一緒に生成されてました。

vrm1 univrm migrated

VRM0.0のモデルは横にあるやつで残ってるんだけど、間違えやすいから注意した方が良いです。

VRoid StudioでエクスポートしたVRM0.0とVRM1.0モデルのunityでの見分け方

VRM1.0のほうは拡張子が .vrm で、コンポーネントにVRM Instanceってのがあります。

vrm1 univrm migrated

VRM0.0のほうは拡張子が .prefab で、↓コンポーネントにVRM Blend Shape Proxyってやつがあります。

VRM Blend Proxy

コンポーネントが違うことで特にブレンドシェイプ周りの制御方法が違ってくるため、どちらを使っているかは一応把握しておいたほうが良いです。

UniVRMのバージョンによっても挙動が違う可能性も?

UniVRMのバージョンによっても挙動が変わってくる可能性があるかもしれない。

たまにバージョンアップで挙動が変わることは確かにあるような気がする。

もしかしたらUniVRMのバージョン変えればまた違ってくるかも?

まぁ今度不具合出たら試してみます。

追記:UniVRMのバージョンを変えたらLate Updateでも普通に動いた

これやはりUniVRMのバージョンの問題なのかな?或いはUniVRMバージョンとUnityバージョンの相性の問題かもしれない。

UniVRM 0.128.3とUnity6000.0.32f1の組み合わせだとVRM1のLate Updateでも普通にブレンドシェイプ動きました。

vrm1 ブレンドシェイプ 動かない

一旦UniVRMを削除して別のバージョンを入れ直してみたら直る可能性があるかも?

UniVRMを削除して入れ直す方法は↓の記事で書きましたが、マテリアルエラーになって設定し直す羽目になる可能性があるので自己責任で(^_^;)

UniVRMはバージョンによって挙動が安定しなくて結構こういう不具合は遭遇してますね…。

結構UniVRMのバージョンを変えてみると直ることが多い気がします。

まぁ無料で使わせてもらってるから文句は言えないけども(^_^;)

更に追記:アニメーターコントローラーを新規に作り直したら動いたこともあった

↓にも書いたけど、このスクリプトを動かそうとしたらブレンドシェイプが動かなくて、結局アニメーターコントローラーを新規に作り直したら正常に動きました。

アニメーターコントローラーのファイルが壊れていたのか?原因は不明だけど、ChatGPTに聞いてもよくわかりませんでした。

ブレンドシェイプは色々な要因で動かないことがあるようなので、一つ一つ試してみるしかありませんね(-_-;)

おわりに

今のところとりあえず動いたけど、不具合がある可能性もあるか…。

Updateされない設定だからなぁ。

対症療法に過ぎないと思うので、UniVRMのバージョン変更で直る可能性があるならそのほうがいいかな?

まぁ色々な要因でなる可能性があるかもしれないけど。

まぁまた何かあれば追記します(*^_^*)

タイトルとURLをコピーしました