糖質制限を始めてから生活習慣が改善され体調がすこぶるよくなったVR室の@daybysayです。
さて、今回も懲りずにHTC Vive向けのコンテンツ開発について勉強したいと思います。
今回紹介するのは VRTK というOSSのVRコンテンツ開発用ライブラリです。
開発したアプリは↓で公開しています。
目次
VRTKとは
VRTKは、VRコンテンツ開発を支援するコンポーネント、およびサンプルを多数備えたライブラリです。
SteamVRのSDKに依存しており、現状はHTC Viveのみ対応です。
が、現状でもGearVR対応のPRが出ていたり、今後ほかのプラットフォームに対応していこうという姿勢も伺えます。
また、ドキュメントあるのと、各所に動画で説明が入っているので初心者にもやさしい(英語だけど)感じになっています。
私が前回実装したような、オブジェクトをつかんで投げる、という実装も簡単にできたり、テレポートや壁に上る機能やサンプルもあったりするので、 このライブラリを使いこなすだけでVRの表現力がかなり向上すると思われます。
ちなみに今、マスコットの豚の名前を募集しているので、アイデアがある方は投稿してみてはいかがでしょうか。
VRTKの使い方
さっそくですが、VRTKを使う準備をしましょう。
VRTKはUnityのアセットストアで提供されているのでそちらをインストールします。
また、SteamVRプラグインに依存しているので、そちらもアセットストアからインストールしておきましょう。
SteamVRのプラグインの推奨設定はこちらをご参照ください。
サンプルを動作させる
VRTKを使うことで実装できるようになる機能は多くありますが、ベースになる部分としてまずは下記を体験してみる + コードを追ってみるのが良いのではないかなと思います。
005_Controller_BasicObjectGrabbing
009_Controller_BezierPointer
023_Controller_ChildOfControllerOnGrab
037_CameraRig_ClimbingFalling
どこかで見たことあるようなアクションが再現されています!
これらを実装するのが容易にできてしますVRTK、末恐ろしい子・・!
使ってみる
せっかくなので、VRTKを使って簡単な射的ゲームを実装してみたいと思います。 細かい設定などはリポジトリを参照してください。
まずは銃のアセットをこちらからダウンロード。
今回はAK47にしましょう。
まずは銃を置く台を適当に作り、その上に銃をおきます。銃にはRigidBodyとBoxColliderコンポーネントをいい感じにセットしましょう。
このときにテクスチャも設定しておくと気分が乗ってよいです!!
次にコントローラに VRTK_InteractGrabを追加します。このときVRTK_InteractTouch, VRTK_ControllerActions, VRTK_ControllerEventが自動で追加されます。
そしてVRTK_InteractUseも追加します。これをすることで銃を持つことと、持っているときのコントローラに対するアクション(トリガーを引くなど)を取得できるようになります。
最後に、銃にGunスクリプトを追加します。Gunスクリプトはサンプルで用意されている銃のスクリプトになります。
このGunスクリプトは、自身についているBulletという名前のオブジェクトを弾として認識し、トリガーがひかれたときにForwardの方向に力をかけるような実装になっています。
ということで、Bulletという名前でSphereを作成し、サイズを調整したうえで銃口の手前にセットし、Activeを切ります。
これで銃側の設定はOKです。
あとはいい感じに的を用意します。
早速撃ってみましょう!
うん、ちょっとしょぼいけど撃ててます!もうちょっと工夫すればかなりきもちいことになるぞこれは!!
まとめ
- VRTKを使うと簡単にVR内アクションを実装できる
- 豚の名前募集中
VRTKを使うと簡単に実装が行なえますが、内部的にはSteamVRプラグインに依存しているので、プラグイン側の実装を理解することで全体的なパフォーマンスの向上など可能になるかもしれませんね。
簡単ですが今週は以上です。