VRC Unity改変インシデントレポート#1
初見のトラブルに対してトラブルシュートを行ったので経緯と解決方法を纏めておく。
注意事項
できるだけ汎用的に書いたが、あくまで個別事案への対処なので細部の解決方法はアバター(Animator設定)によって異なる可能性がある。
発生事案
販売アバターの表情アニメーションを改変したが、目のみ表情が変化しない
当該アニメーションの目以外…口、眉などは変化する
他のアニメーションも正しく作動
デフォルト状態からの変更事項
当該Animation
デフォルトの表情Animation(顔つき改変)
髪、ケモ耳などの追加
解決経緯
確認事項
Avatars 3.0用のまばたきシェイプキーと表情用シェイプキーは分かれているか(今回は分かれていた)
Animationで目のシェイプキーがMissingになっていないか
Animatorで設定するVRC Animator Tracking ControlでEye & EyelidsはAnimationに設定されているか
Write Defaultsは統一されているか(今回はオフで統一)
この後、念のために当該Animation単体をアバターモデルに入れて再生。正しく作動したため、改めてAnimator側の問題に絞って原因を探った。
原因究明
今回は「同じシェイプキーを使う別の表情が後ろのレイヤーで再生されていた」が原因だった。
この表中のIdleでデフォルト表情を読み込むように設定されていた。この時に使用する目のシェイプキーが同じだったため、後に再生したアニメーションに目のシェイプキー数値が上書きされていた。
このときの動き:Left Handのジェスチャーで目を瞑る→Right HandのIdleで瞑った目がデフォルトに戻る→見た目変わっていないように見える
解決
Left/RightのIdle、及びExpression Menuでの表情変化のIdleに入っていた顔つき設定を削除
"Reset" Layer(初期状態読み込みレイヤー)には既に顔つきAnimationが設定されていたのでok(無ければ設定する)
以上をUnity上、及びVRChat上で確認して表情の変化を確認
AnimatorはLayersを上から下に順番に処理していくので、デフォルトの顔つきを変化させるときは一番上(All Partsの次)にLayerを作成して設定。Left Hand以降のLayerには入れないように注意。
おしまい
こんなところでどうだろうか。分かりづらいところや間違った表現があれば指摘していただけると幸い。