Oculus Questで3Dアバターを動かしたい



はじめに

  • VRChatっぽい感じで3Dアバターを動かしたいです
  • Final IK(知らない方はスルーで構いません)は使わず、無料でやっていきたいです(90ドルはなかなか気合い入れないと買えないですね...)
  • 3点(頭と両手)が追従され、自分の動きに合わせて動くことをゴールとします
  • 結論から言うと、OVRPlayerControllerの下にunitychanのオブジェクトを入れるだけでした...
  • ので、下はまじめに読まず読み飛ばすことをお勧めします。

環境

  • Windows 10
  • Unity 2019.3.6
  • ユニティちゃん 1.2.1
  • XR Mecanim IK Plus
  • Oculus Integration ver.15

まずは3点の追従

(補足)そもそもユニティちゃんとは...
「ユニティちゃん」はUnity Technologies Japanが
提供する開発者のためのオリジナルキャラクターです。(公式サイトより引用)

開発者のために無料配布されています(規約あり)。開発がはかどりますね。

本筋の3点追従ですが、こちらの記事などがとてもとても参考になりました。

注意点としては、
こちらの記事で登場する○○AnchorというGameObjectは自分でCreate Emptyして生成しなければならないということくらいですかね

できた!あれ...?

このままだと鏡の前で直立しているところから一生動けません。(たぶん)

OculusのSDKのOVRCameraRigというものを使っているからですね。
動きたい場合には、代わりに、OVRPlayerControllerというPrefabを使います。

このPrefab、よくみるとOVRCameraRigを内包しています。

ので、このPreafabをScene上に生成したうえで、上の記事で見たやり方と全く同じことをここのOVRCameraRigでやればいいわけですね。
もう一度やるのが面倒な人はすり替えるだけでもokだと思います。

できた!あれあれ...?

グロいのでスクショは控えますが、PlayerControllerとユニティちゃんが分離してしまう瞬間が出てしまいます。悲しい...
ユニティちゃんの体もControllerについてくるようにしたいです。

ので、以下のようにOVRPlayerControllerの中にunitychan_VRAvatarを置きます。

これで、自分の体の動きに合わせてユニティちゃんの身体も追従してくれるようになりました。
(微妙に身体の位置がずれる場合は、CameraRigの高さを変えるなど地道なパラメータ調整がむばってください

動きが微妙に変...

追記します。

追記1

↑このあと紆余曲折あり、ユニティちゃんがまともに動くようになるまで1日溶かしました。。。
最終的な構成は以下です。

また、MechanimIKK Plusのスクリプトは「unitychan_VRAvatar」以外にはつけないのがポイントです。
unitychan_VRAvatarにつけたMechanimのスクリプトはこんな感じです。

今後追記したいこと
- 足の動きが微妙に変なのでなおす
- idleやrunのアニメーションをつける

参考

OculusQuestでXR Mecanim IK Plusを使用してユニティちゃんを動かしてみる
Mechanim IK Plus