UniVRM
UniVRM copied to clipboard
即座にアニメーションを開始する AnimationController を付与した Prefab VRM 1.0 モデルで目線がおかしくなる
環境情報
- UniVRM version:
0.129.3 - Unity version:
Unity-2022.3 - OS:
Windows 11
バグについて
- シーンの状態
- VRM 1.0 モデル Prefab
- Bone Transform
- Rotation はすべて 0
- LookAt
- Bone Type
- Vrm10Instance Component
- LookAt Target Type
- Specified Transform
- LookAt Target
- 適当なシーン中の GameObject
- LookAt Target Type
- Animator Component
- AnimationController
- AnimationClip を初期ステートの遷移先として追加
- 最初のフレームで T ポーズ以外のポーズをとる
- AnimationClip を初期ステートの遷移先として追加
- AnimationController
- Bone Transform
- VRM 1.0 モデル Prefab
- 再現手順
- シーンを Play する
- Animation が適用される
- 目線が LookAt Target を向かない
おそらく LookAt の基準となる状態の計算が Animator の制御の後にあり、負けているようです。 Vrm10Instance 自体の ExecutionOrder が正の値にあるのは Update の都合上、また歴史的な互換性等からしょうがないと思われますが、Start() のセットアップはなるべく早くに行われた方が良いと思われます。
https://docs.unity3d.com/ja/2022.3/Manual/ExecutionOrder.html
MonoBehaviour.Start で間に合いそうではある。
https://github.com/vrm-c/UniVRM/blob/master/Assets/VRM10/Runtime/Components/Vrm10Instance/Vrm10Instance.cs#L204
手元で問題を再現できず。