ユニティちゃん付属のSpringManangerがVRIKと相性が悪かった問題の解決メモ。
ViveやVRIKに関してはこちらを
https://qiita.com/halne369/items/daadf0e00330a1019830
ユニティちゃんの髪揺れに関してはこちらを参照のこと
http://tsubakit1.hateblo.jp/entry/2014/11/08/233000
ユニティちゃん+SpringBone+VRIK
SpringBone
付きのユニティちゃんを動かすと
こんな感じで髪が揺れる。
ところが、VRIK
をアタッチした状態だと
このようにSpringBone
が動作しない。
SpringManagerの修正
SpringBone
の更新がVRIK
の更新より前に行われてしまっているのが原因らしいので、SpringManager
のScript Execution OrderをVRIK
より後に設定すれば解決する。
結果
もしくはVRIK
の更新を自前で行なう。例えばSpringManager
のLateUpdate
で
private void LateUpdate ()
{
var solver = GetComponent<RootMotion.FinalIK.VRIK > ();
solver.UpdateSolverExternal();
...
}
とすれば正常に動作する。
真面目に考えるとSpringBoneの更新前にtransformが上書きされるのが問題っぽいので、Update
で更新してしまっても良い。
private void Update ()
{
var solver = GetComponent<RootMotion.FinalIK.VRIK > ();
solver.UpdateSolverExternal();
}