(この記事の使用環境: Unity5.5.0f3 Personal、Windows10、SteamVR Plugin 1.2.0、VRTK3.0.1)


今回はひさしぶりにVRネタで。UnityでVRいじりをするのにとても役立つアセット「VRTK」ですが、最近リリースされたバージョン3.0.xでは以前とセットアップ方法が変わっていたので書き留めておきます。(HTC Viveユーザー向けの記事です。Oculus持っていないので・・・)

SnapCrab_NoName_2017-1-24_23-20-32_No-00

VRTK はこれ。Asset Store からダウンロードし、インポートしましょう。
   

SteamVR Plugin と一緒に使います。こちらもダウンロード&インポートしておきます。
   

ではさっそくセットアップ方法。ほぼVRTK公式サイトの説明どおりですが。
  1. VRTKとSteamVR Pluginをアセットストアからインポートする
    (※SteamVR Plugin 1.2.0 と VRTK 3.0.0 の組み合わせではエラーになるようです。VRTKを3.0.1(以降)にアップデートすれば解決するようです。公式FAQ参照のこと)
  2. SteamVR Pluginの[CameraRig]プレハブをシーンに配置する。シーン上にMain Cameraがあれば削除(または無効化)しておく
    SnapCrab_NoName_2017-1-24_23-22-52_No-003
  3. メニューの Edit>Project Settings>Player (または File>Build Settings...>Player Settings...) で、「Virtual Reality Supported」にチェックを入れる。(※SteamVR Pluginをインポートしたときにチェック入るけど)
    SnapCrab_NoName_2017-1-24_23-32-12_No-00
  4. その下の「Virtual Reality SDKs」には「OpenVR」が指定されていることを確認する
  5. 空のGameObjectを作って(VRTKのExamplesにならって[VRTK]という名前を付ける)、それにVRTK_SDKManagerスクリプトをアタッチする(ProjectビューでVRTK_SDKなどで検索して見つける)
    SnapCrab_NoName_2017-1-24_23-22-52_No-002
  6. インスペクタで、VRTK_SDKManagerの「SDK Selection」の各項目で「Steam VR」を選択する
  7. 「Auto Populate Linked Objects」ボタンを押すと、下の「Linked Objects」と「Controller Aliases」の項目が自動で埋まる(下2つを除く)
  8. Examplesにならって、[VRTK]の下に「LeftController」と「RightController」という空のゲームオブジェクトを作る(ここにVRTKのスクリプトをアタッチする。ここは以前のバージョンと違うところ)
    SnapCrab_NoName_2017-1-24_23-22-52_No-001
  9. 手順7で埋まらなかった2つの空欄に、手順8で作った「LeftController」と「RightController」をアタッチするSnapCrab_NoName_2017-1-24_23-22-52_No-00
これでセットアップ完了。UnityをプレイモードにしてViveのHMDをかぶると、VR化された世界に入ることができます。

あとは用途に応じてVRTKのスクリプトを使わせてもらいましょう。

とりあえず例として、物を掴むための設定はこんな感じ。物を掴んだり投げたりできるようになります。
  1. 上で作成したゲームオブジェクト「LeftController」または「RightController」に「VRTK_InteractGrab」スクリプトをアタッチする(その他必要なスクリプトも自動的にアタッチされる)
    SnapCrab_NoName_2017-1-24_23-34-2_No-00
  2. テキトーに作成した掴みたいオブジェクト(Cubeとか)に、「VRTK_InteractableObject」スクリプトをアタッチし、インスペクタで「IsGrabbable」にチェックを入れる
    SnapCrab_NoName_2017-1-24_23-36-27_No-00
設定は以上です。

こんな感じで、VR空間で物を掴めるようになります。

 
以前のバージョンではSteamVRの[CameraRig]プレハブに直接VRTKスクリプトをアタッチする仕様でしたが、新バージョンではスクリプトをアタッチするためのオブジェクトを自分で指定できるようになっているって感じですね。

なおテレポート等のスクリプトは作成した[VRTK]オブジェクトに直接アタッチしてやればOKでした。これもまた別の記事で紹介したいと思います。

今回は以上です。