この動画を見て同じようなことをやってみたいと思いました。
HTCViveは研究室にあるやつを使います。
とりあえずサンプルや公開されているものを動かすところまでやって見ます。
SteamVR Plugin
ViveをUnityで使うのに必要なプラグインです。これがないと始まらないので、アセットストからダウンロードしました。
サンプル
SteamVR>Scenes>exampleにあるサンプルを実行したら、すぐにヘッドセットとコントローラーが同期しました。すっごーい
次に新しいシーンを作って、デフォルトのカメラを消して、プレハブの中にあるCameraRigを入れると、サンプルと同じようにヘッドセットとコントローラーが同期します。もうこれだけでとりあえず、CGで作った部屋の中をVRで見渡すということはできるね。
VRTK
コントローラーをノーコーディングでいろいろ動かしたい人向けのアセット。最初の動画もこれを使っている。
https://www.assetstore.unity3d.com/jp/#!/content/64131
ものをつかんだり、移動したりできる。
入れたらサンプルを動かしてみる。
注意点
①ものをつかむのは裏のトリガーではなく、サイドのグリップボタン
②Unity5.6ではコントローラーが表示されないが、CameraRig>Camera(head)>Camera(Eye)に「Steam VR_UpdatePoses」スクリプトをつけると表示される。スクリプトはSteamVR>Scriptの中にある。検索でposeと打つと見つけやすい。
サンプルとかを試すときもいちいちつけないといけないのでめんどくさい。Unity5.5とかでやったほうがいいのかも?
③VRTK3.0になって使い方が変わったので、過去の記事とかを参考にするときはその記事が使っているバージョンをよく確かめたほうがいいかも。
作り方
サンプルを触ったら、オリジナルのシーンを作ってみる。SteamVRからCameraRigを入れておいた上で、
CreateEmptyで適当に空のオブジェクトを作り(VRTKと名前をつけた)
そこにVRTK>Script>UtilitiesにあるVRTK_SDKManagerをつける。
インスペクターのSDK4つを選択からSteamVRにする。
下にあるAuto~ボタンを押す。
VRTKオブジェクトの下に、また空のオブジェクトを作り(Leftと名前をつけた)、そこにコントローラーに実装したいスクリプトをつけていく。
左右同じなら、一つに全部つけてからゲームオブジェクトをコピペしてrightなどの名前に複製する。
例えば
つかむ動作ならコントローラーにVRTK_InteractGrab
移動ならコントローラーに
コントローラを使う為の「VRTK_ControllerEvents」と、ポインタを使う為の「VRTK_SimplePointer」
そして移動できるようにするため最初のVRTKにVRTK_BasicTelepor
スクリプトを付け終えたら、最初のSDKManagerの空いているところにrightとleftのゲームオブジェクトをつける。
これでできるはず
参考記事
新しいバージョンで「掴む」negilab-unity.comテレポートの仕方(この方サーバルちゃん動画の人だった!)takoyakiroom.hatenablog.com下の記事にはリファレンス記事もあります。ありがたや。blog.d-yama7.com
最後に
最初に紹介したサーバルちゃんVRを再現しようとしました。
スクリプトが公開されていました。https://gist.github.com/takoyakiroom/4e7d8e4c2179bf1945b76b7777ce80e7
ありがたい
でも、動かす用の球は表示できたし、コントローラーで移動もできるのですが、球に体がついてきません。
なんでだろう?