Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

XR Mecanim IK Plusというアセットを使用してOculusQuestでユニティちゃんを動かしてみます。
com.oculus.vrshell-20191120-222330_Trim_300x300_fps10.gif

XR Mecanim IK Plus
XR Mecanim IK Plus 作者さんのページです。

unity-chan offical website
ユニティちゃんのページです。

XR Mecanim IK Plusに含まれているデモシーンは、UnityのVRサポート機能を使用しているので、Oculus Integrationなしで動作させることができます。
また、いくつか設定を変更することで、スクリプトを修正することなしにOculus Integrationでも動作させることができます。

開発環境

Unity 2019.2.11f1
XR_MecanimIKPlus.unitypackage
UnityChan_1_2_1.unitypackage
Oculus Integration for Unity - 1.42

ビルド手順

  1. 3Dで新規プロジェクトを作成します。
  2. Build Settings から Platform を Android に Switch Platformします。
  3. "XR_MecanimIKPlus.unitypackage"をXR Mecanim IK Plus 作者さんのページからダウンロードし、インポートします。
  4. "UnityChan_1_2_1.unitypackage"をユニティちゃんのページからダウンロードし、インポートします。
  5. Oculus Integrationを使用しない場合は、プロジェクト内の"SettingFiles.zip"を解凍し、"InputManager.asset"と"ProjectSettings.asset"を上書きします。その後、デモシーンを開くと動作させることができます。ビルドする場合は手順9を実施します。
  6. Oculus Integrationを使用する場合は、手順5は実施せずOculus Integrationをアセットストアからダウンロードし、インポートします。
  7. デモシーンに配置されている[XR CameraRig]は無効にして、代わりにOVRCameraRigを配置し、以下写真のように設定します。 image.png
  8. unitychan_VRAvatarを以下写真のように設定します。 image.png
  9. ビルドする際の設定は、以下写真のようなOculusQuest向けのいつもの設定です。 image.png

追記1

Oculus TouchでUnityちゃんの指を動かして遊ぼう
n_ryotaさんが公開されているスクリプトを使うとこんな感じで動かせます。
com.oculus.vrshell-20191120-225350_Trim_300x300.gif

追記2

@yunagi_nagiさんが公開されている記事をみてDynamicBoneをつけてみたのですが、なぜか揺れません。
IK制御を外してエディタ上で動かしてみると揺れるので、IK制御と相性が悪い?

追記3

当たり判定をつけたくてSAColliderBuilderを使ってみたところ、足の挙動がおかしくなります。
IK_Foot_Linkage_CS.cs内の地面を判定する処理Physics.Raycastで、追加したコライダーにあたっているためのようです。
Unityちゃんのレイヤー設定で"Ignore Raycast"を設定してあげると、とりあえずは回避できました。

追記4

追記5

位置によっては顔の内側にカメラが入ってしまって周りが見えなくなる対策として、カメラのレイヤー設定してみました。
@Raspberlyさんが公開されている記事を見て、カメラに映る対象をレイヤーで制御できることに気が付いたので、この機能を使えば対策としてよさそうと思い試してみました。
Unityちゃんの場合、Character1_Head以下の階層にレイヤー設定して対象外にするとちょうどよい感じになりました。
image.png

ライセンス表記

ユニティちゃんライセンス

この作品はユニティちゃんライセンス条項の元に提供されています

Satoshi_Takahama
組込ソフトウェアエンジニアです/趣味はOculus Quest+Unity or UE4でのVRアプリ開発
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away