ユニティちゃん付属の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();
}



