環境
Unity2020.3.36f1
MotionBuilder 2020
問題
Unityでアニメーション再生中、SkinnedMeshRendererのブレンドシェイプ値をスクリプトから変更できない。厳密には変更できるが、変更した次のフレームで0など固定値に戻ってしまう。
※ 大前提として再生中のAnimationClipにブレンドシェイプ値を変化させるキーフレームが存在しないこととする。
原因
AnimatorにImport BlendShapesがONなAnimationClipが含まれている。
再生中のAnimationClipが問題なくても、一つでも含まれている場合同様の結果となる。
補足
Import BlendShapesの有無はMayaなどから出力されたFBXでは有効に機能した気がするが、他の環境では0値扱いされたりあまり有効に機能しない。(うろ覚え)
また、このキーフレームはUnity内で可視化されていないため、一見してブレンドシェイプキー指定がないにも関わらず、値が固定されてしまうなど、混乱につながった。
参考リンク
Animatorで全身のアニメーション再生しながらブレンドシェイプで表情だけ変えたい
Why is my Mechanim Animator overriding my BlendShapes?
同じ現象を取り扱った内容ですが、両方ともBlenderから出力した場合のお話です。
私の場合はMotionBuilder2020だったので、解決方法が少し違いました。
コメントを残す