Unity3dでのVR統合



時間は経過し、ゲーム、より正確には、作成へのアプローチなど、すべてが変化します。 現在、仮想現実ヘルメットOculus Rift、Sony Morpheus、Razer Hydraなどのさまざまなモーションコントローラー、Sixense STEM、および仮想現実に没頭するのに役立つその他の多くの手段など、新しい機能が追加されています。 この記事では、Unity3dでのOculus RiftとRazer Hydraの統合について説明します。



ヘッダーから、次のことがわかります。



  1. オクルスの裂け目
  2. Razer hydra
  3. Unity3d 4.3.4f




まえがき



そこで、2011年にかなりの価格でリリースされたRazer Hydraコントローラーについての話から始めますが、このデバイスにより、ジョイスティックの傾きと偏差に関する情報だけでなく、宇宙でのそれらの座標も取得できました。 当時、ヒドラの機能を考慮した実際のゲームは開発されておらず、多くの人がそれを忘れていましたが、時間が経ち、Oculus Riftが表示されました。 そして、より大きな感覚のために、少なくとも手の動きを制御することが必要でした、そして、ここで忘れられたRazer Hydraは救助に来ます。



準備する



おそらく、デバイスにドライバーをインストールするプロセスから始めます。 そして再び、私はヒドラから始めます。 そもそも、Razerは既にデバイスを忘れており、ドライバーを非常に長い間更新しておらず、SDKを提供していないことを理解する価値がありますが、実際にこのテクノロジーを開発したSixenseが、必要なフォーラムに行くために必要な最新のドライバーをダウンロードしますMotion Creatorの最新バージョンを選択し、ダウンロードしてインストールします。



Oculus Riftを使用すると、より簡単になり、ドライバーは不要になりますが、SDKの最新バージョンをダウンロードする必要があります。 リンクをクリックしてこれを行うことができますが、ダウンロードするには登録が必要です。



統合



すべてのソフトウェアをインストールしたら、Unity3dでデバイスを動作させる必要があります。 伝統的に、Razer Hydraから始めます。 Unity3dを実行し、プロジェクトを開くか、新しいプロジェクトを作成し、アセットストア(Ctrl + 9ホットキー)に移動して、SixenseUnityPluginを見つけ、ダウンロードしてインポートする必要があります。









Oculus SDKをインポートしましょう。このために、フォルダー\{" SDK"}\ovr_unity_{ }_lib\OculusUnityIntegration



OculusUnityIntegration.unitypackage



からOculusUnityIntegration.unitypackage



というファイルをドラッグする必要があります。





プロジェクトには、次のファイルが必要です。

わかりました、私たちはそれをしました、今あなたはすべてを実際に試す必要があります。 これを行うには、開始するシーンを作成し、 Terrain



First Person Controller







そこで、最初にヒドラを試すために小さなスケッチをスケッチしました。





また、ヒドラ自体が機能するためには、プロジェクトの/SixenseInput



フォルダーからSixenseInput



オブジェクトをシーンに追加する必要があります





ここで、シーンに手を追加する必要がありますSixenseInput/DemoScenes/Models



Hand



というオブジェクトを見つけます。 これは単なるチュートリアルであるため、これがただの右手であることを考慮していません=)。 したがって、手を失うことのないように、空のオブジェクトに入れて、 FirstPersonController



オブジェクトの階層で修正することをお勧めします。 次のようなものが得られます。





次に、ヒドラからの値を処理するスクリプトを作成する必要があります。 これを行うには、C#スクリプトを作成し、HandsControllerと呼び、次のコードを追加します。

HandsController.cs
 using UnityEngine; using System.Collections; public class HandsController : MonoBehaviour { float m_sensitivity = 0.003f; public GameObject leftHand; public GameObject rightHand; void Update () { leftHand.transform.localPosition = SixenseInput.Controllers[0].Position * m_sensitivity; rightHand.transform.localPosition = SixenseInput.Controllers[1].Position * m_sensitivity; leftHand.transform.localRotation = SixenseInput.Controllers [0].Rotation; rightHand.transform.localRotation = SixenseInput.Controllers [1].Rotation; } }
      
      









このスクリプトをFirstPersonController



eのMainCamera



に掛けて、適切なフィールドに手を割り当て、何が起こったかを確認します。作業を示すビデオを添付します。







Oculus Riftのターンです。特に問題はありませんOVRPlayerController



OVR/Prefabs



OVRPlayerController



慎重に置き換えるだけです。 また、 HandsController.cs



HandsController.cs



に追加することを忘れないでください。また、手を割り当てることを忘れないでください。



これは次のようなものです。





結局、作成をテストできますが、歩くことはできません。この問題を解決する必要があります。 MoveController.cs



スクリプトを作成して、 MoveController.cs



コードをMoveController.cs



ましょう。

MoveController.cs
 using UnityEngine; using System.Collections; public class MoveController : MonoBehaviour { void Update () { float X = SixenseInput.Controllers[1].JoystickX * 5; float Y = SixenseInput.Controllers[1].JoystickY * 5; X*=Time.deltaTime; Y*=Time.deltaTime; transform.Translate(X, 0, Y); } }
      
      









このスクリプトをOVRPlayerController



割り当て、確認することができます。 ビデオの低フレームレートをおforびします。





まとめ



その結果、プロジェクトでこれらの新しい小さなものを使用する価値があるかどうかを理解できる、わずかにプレイ可能なシーンを得ました。 そのようなゲームを作成する場合、あらゆる小さなことを熟考する必要があると思います。 あなたの注意に感謝します。



All Articles