LoginSignup
5
0

More than 1 year has passed since last update.

【Unity】VRMモデルの視線を動かそうとしたけど動かない!ってなった話

Last updated at Posted at 2023-03-12

VRMのブレンドシェイプで表情を変えられるが、目(瞳)の位置は変えられない。
何もしなければ正面を向いたままである。

作っているゲームの都合でどうしても目を特定方向に向かせたいのだけど、ブレンドシェイプじゃダメ。
じゃあ考え方を変えて、指定した物(位置)を見るようにすればいいのでは?
ググってみたら視点の指定はUniVRMに最初からある機能でした。
VRM Look At Headコンポーネントを使えばいいらしい。

・参考:VRMモデルの視線制御(目の可動範囲)の設定方法
https://qiita.com/OGOG_Ogura/items/46a1f82553c5f6501636

で、やってみたところ動きませんでした。
なので何となく対象のモデルのAnimator Controllerを外してみたら、視線が動くようになりました。

アニメーションに問題があるのかと思って、ヒューマノイドに適用する際の設定にある目のボーン指定を外してみたけど、それは関係無いらしい。(UniVRM以外のVRMモデルは知らないけど)
ググっても特に情報は無く、最終的にUniVRMのGitHubにバグとして投げてやろうかなとか考えていたところ、既にそういった質問は投げられていたらしい。
で、解決策も書かれていました。

・VRMLookAtHead and VRMLookAtBoneApplyer should prioritize over animator #612
(Google訳:VRMLookAtHead と VRMLookAtBoneApplyer はアニメーターよりも優先する必要があります)
https://github.com/vrm-c/UniVRM/issues/612

で、その中にこの投稿が。
「Animator overwrite all Transform between update and lateUpdate.Please try use lateUpdate.」
(Google訳:Animator は update と lateUpdate の間のすべての Transform を上書きします。lateUpdate を使用してみてください。)

というわけで、VRM Look At HeadのUpdate Typeを「Late Update」に変更したところ、Animator Controllerとかは関係なくちゃんと視線が動くようになりましたとさ。

これで半日潰れた。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0