みかづきメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Unity + SteamVR + VRIK でプレイヤーモデルを動かしたい

VRChat で使っているアバターは実は VRChat 意外にも使えるので、
有効活用していきたいシリーズ。
目標は VRChat みたいに良い感じに動かしたい。

今日は VRIK を使って、自分の動きに合わせてアバターも動かしてみます。


前提環境

  • Unity Personal 2019.2.14f
  • Windows 10
  • SteamVR が対応している HMD
  • SteamVR 関連が設定済みの Unity Scene

使用するアセットは次の通り

また、前回設置した鏡 も、動作確認の為に設置してあります。
この記事ではアバターを操作する人間とアバターとの体格差は未解決です。

SteamVR と VRIK を使って動かす方法は、チュートリアルを参考にします。
まず、任意の 3D モデルを Hierarchy 上に読み込み、 Root に VRIK をアタッチします。
Humanoid に従っているならば、 References のところが全て自動設定されているので、
設定されているかを確認しておきます。

設定されていたら、次に読み込んだ 3D モデルのボーンを遡ります。
ボーンの中から、頭 (Head)、 手 (腕じゃないよ) をそれぞれ複製します。 次に、複製したオブジェクトをそれぞれ [CameraRig] オブジェクトの中にある、
Camera および Controller (left / right) の子として設置します。

f:id:MikazukiFuyuno:20191202233758p:plain
こんな感じになっているはず (名前はそれらしいものに変更済み)

次に、それぞれのオブジェクトの Position を (0, 0, 0) に設定します。
ずれたままだと、なんとも言えない感じの動作をします。

私の使っていた 3D モデルの場合、 Rotation もいじりましたが、
今のままだと手首がうまく動いていないので、後で (いつか) 修正します。

最後に、 VRIK の Spine の Head Target、 Left / Right Arm の Target に、
先ほど設定したオブジェクトを設定してあげれば良い感じに動きます。

といった具合で Final IK の設定でした。