開発入門 > Unity > HTC VIVE > HTC VIVEで一人称視点First Person Controllerを使う

HTC VIVEで一人称視点First Person Controllerを使う

HTC VIVE、ルームスケールで移動できて楽しいです。

ただ、コントローラーを使って一人称視点でゲームを作ろうとすると工夫が必要です。ルームスケール+一人称視点でのキャラクター操作は酔いやすいので注意が必要です。またUnityのStandard AssetのFirst Person Controllerはそのままではうまく動きません。

今回はHTC VIVEを用いて

  • X-Boxコントローラーおよびキーボードでの操作に対応
    VIVEのHMDで向いている先を中心にコントロール
  • VIVEコントローラーではトリガーを引くと視線の先に移動する

を実装します。(もっと適切な仕様もあるかも)

20160423_165716

1、まずはSteamVR Pluginをインポートします。(Unity5.4からVirtualReality SupportだけでVIVEの利用が可能になりましたがコントローラーが使えません。)

fpc1

2,UnityのStandard AssetのCharactersをインポートします。First Person Controllerが利用可能になります。

fpc2

3,インポートしたスタンダードアセットからRigidBodyFPSControllerをシーンに追加します。

fpc3

4,先ほど追加したRigidBodyFPSControllerの子オブジェクトとしてSteamVRの[CameraRig]をシーンに追加します。

fpc4

5,不要なカメラを削除します。シーンに初めからあるMainCameraとRigidBodyFPSController内のMainCameraを削除

インスペクタービューでRigidBodyFPSControllerのRigidbodyFirstPersonControllerスクリプトのCamに[CameraRig]内のカメラCamera(eye)を設定します。

 

fpc5

6,Unityのゲームビューでマウスによる誤動作防止のため、InspectorでRigidbodyFirstPersonControllerのMouseLookのSensitivityを0に設定しておきます。

fpc6

これで、XBOXコントローラーおよびキーボードを用いたFirst Person ControllerがVIVEで利用可能になりました。

 

7,では次にVIVEのコントローラーでも移動できるようにしましょう。今回は、トリガーを引くことで前方に移動するという機能を実装します。

(トラックパッドでの移動など誰か実装したら教えてください)

上記コードをvive_firstpersoncontroller.csとして保存し、Controllerにアタッチします。

Inspectorビューで
・VIVE Camera HeadにCameraを
・FPS ControllerにRigidBodyFPSControllerを
を設定します。

ここで要注意なのが

Unity5.3系ではCamera(head)
Unity5.4系ではCamera(eye)
を設定してください。

(Unity5.4では実行時にCamera(head)が消えるという謎仕様)

fpc7

パッケージダウンロード

上記をまとめたパッケージを用意しました。SteamVRを手動でインポートした後にパッケージのインポートを行ってください。(Unityスタンダードアセットは再配布OKとのことで下記パッケージに含めています)

RigidBodyFPSController_VIVE_5.3.unitypackage

RigidBodyFPSController_VIVE_5.4.unitypackage

 

カテゴリー: HTC VIVE, Unity

コメントを残す

メールアドレスが公開されることはありません。