2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity VR開発で3Dモデルをシミュレーターで動かす

Posted at

はじめに

UnityでVR開発をしていて、プレイヤーの位置にアバターを表示する方法と、
VRデバイスではなく、PC操作により、VR操作をするための方法を調べたので記事にします。

シミュレーターについて

シミュレーターだけ知りたいという方のために、先にシミュレータについて書きます。

調べたところ、以下の二つが該当しました。

今回の記事では、XR Interaction Toolkitを使う方法を紹介します。

手順

  • Package Manager - Unity Registry - XR Interaction Toolkitをインストール
    スクリーンショット 2024-07-05 182631.png
  • SamplesのStarter AssetsとXR Device Simulationをインポート
    スクリーンショット 2024-07-05 182643.png
  • Assets/Samples/XR Interaction Toolkit/{version}/Starter Assets/Prefabs/XR Interaction Setup.prefabをシーンに配置する
  • Assets/Samples/XR Interaction Toolkit/{version}/XR Device Simulator/XR Device Simulator.prefabをシーンに配置する

これで実行するとシミュレーション操作ができます。
(シーンにMainCameraが配置されている場合は消しておきましょう)

VRで3Dモデルを動かす

VRで3Dモデルを動かす方法で、ヒットしたのがFinalIKという有料のアセットを使用する記事でした。
本格的に開発するにはFinalIKを使用するのがよさそうでしたが、私の場合、VR開発の学習をしたいだけなので、有料のものを買うのは嫌だなと思いました。

FinalIKについての参考記事

さらに調べたところ、以下の記事を見つけました。

これはよさそうと思い、試させていただいたところ、動作確認まで出来たました!(感謝)
本記事では、上記の参照記事をベースにしつつ、

  • 3年前の記事なので、多少変わっている部分があること
  • ユニティちゃんで試したかった
  • 詰まったところがあった
    など、整理も兼ねて記事にしました。

実装方法

XR Interaction Toolkitをインポートする

シミュレータについてを参照し、XR Interaction ToolkitのStarter AssetsとXR Device Simulationをプロジェクトにインポートします。

ユニティちゃんをインポート

  • アセットストアからユニティちゃんの3Dモデルをダウンロードし、プロジェクトにインポートします

Animation Riggingをインポート

Package ManagerからAnimation Riggingをインポートします
スクリーンショット 2024-07-05 170446.png

シーンに配置

  • Assets/Samples/XR Interaction Toolkit/2.5.4/XR Device Simulator/XR Device Simulator.prefabをシーンに配置します
  • Assets/Samples/XR Interaction Toolkit/2.5.4/Starter Assets/Prefabs/XR Interaction Setup.prefabをシーンに配置します
  • Assets/unity-chan!/Unity-chan! Model/Prefabs/unitychan.prefabをXR Interaction Setup - XR Origin(XR Rig)の下に配置します
    image.png

アバターの設定

アバター(本記事ではUnityちゃん)の設定を行います。

  • まずアタッチされているスクリプトとAnimatorを削除します
    image.png

  • 続いて、アバターにRig BuilderをAdd Componentします
    スクリーンショット 2024-07-05 170601.png

  • 続いて、Bone RenderをAdd Componentします(Boneを視覚化してわかりやすくするためです)

スクリーンショット 2024-07-05 170757.png

  • 続いて、Avatarのルートを右クリックし、Select Childrenを選択します
    image.png
  • 選択したら、Bone RenderのTransformsにドラッグアンドドロップします

image.png

右腕の設定

  • 次にアバターの子オブジェクトとして、空のオブジェクトを作成します。名前は、VR Constraintsとします

image.png

  • VR ConstraintsにRigをAdd Componentします
  • アバターを選択し、Rig BuilderのRig Layersに、VR Constraintsを設定します
    image.png
  • VR Constraintsの子オブジェクトとして、空のオブジェクトを作成し、名前をRight Arm IKとします
    image.png
  • Right Arm IKにTwo Bone IK ContraintをAdd Componentし、以下のようにUnityChanのBoneを設定します
    image.png

他の3Dモデルでも、腕は以下のように三か所のボーンで構成されているとおもいますので、下記の画像を参照に設定すれば問題なく動作するかと思います。
image.png

image.png

image.png

  • 続いて、Right Arm IKの子オブジェクトに、TargetとHintという空のオブジェクトを作成し、Two Bone IK ContraintのTargetとHintにそれぞれ設定します

image.png

  • 続いて、TargetとTwo Bone IK ConstraintのTipに選択した部位を選択し、Animation Rigging - Align Transformを押下します

image.png

この設定を行うことで、Targetに右手が追従することになります。

  • 続いて、HintとTwo Bone IK ConstraintのMidに選択した部位を選択し、Animation Rigging - Align Transformを押下します

image.png

頭の設定

  • VR Constraintsの子オブジェクトに空のオブジェクトを追加し、Head Constraintという名前にします
  • Head ConstraintにMulti Parent ConstraintをAdd Componentし、Constrainted Objectにアバターの頭を設定します

image.png

Source ObjectsにHead Constraintを,アタッチします
image.png

  • Head Constraintとアバターの頭を選択してAlign Transformします
    image.png

スクリプトの設定

  • こちらの参照記事のVR Rigというスクリプトをコピーして、アバターにAdd Componentします
    ― 下記のように設定します(Offsetについては適宜調整してください)
    image.png
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?