あ が降ってくる空間
unityとsteamVRの入門として、あ が降ってくる空間を作りました。
steamVRは何回か使っているのですが、使うたびに忘れていていちいち調べているので、まとめメモ的に書いておきます。
steamVRの準備
アセットストアで「steamVR plugin」と検索し、download→import します。
(メインカメラを削除し、) prehabs> camera rig を置きます。
この時点でviveに繋がった状態で実行すると、viveで何もない景色が見えます。
あ の準備
別にCubeなどでやってもいいのですが、デザインあ展に影響されたので あ を用意します。
blenderを立ち上げ、x>delete でcubeを削除します。
その後、textを挿入し、編集モードにします。右側の「フォント」の部分から、日本語に対応しているフォントに変更し、左側の「テキスト」ボックスに入力したい日本語を入力(またはコピペ)します。そしてジオメトリから厚みなどを設定すれば完了です。
3Dファイルとして保存した後、unityにimportしたら、AddComponent > physics > rigid body で物理の影響を受けるようにします。
ついでに、せっかくなので、AddComponent > Rendering > Light を追加すると光るようになります。
この時点で床代わりのplaneを配置し、その上に あ を配置すれば降ってくるのですが、せっかくなのでたくさんふってきてほしいです。
VRTKの準備 (あ に触れるようになる)
まず、このようになるように空のゲームオブジェクトを作ります。それから、スクリプトアタッチ祭りです。
- SteamVR_SDK- VRTK > Scripts > Utilities > SDK > VRTK_SDKSetup.cs をアタッチ その後、SDK_Selection > Quick Select > SteamVR を選択
- VRTK- VRTK > Scripts > Utilities > SDK > VRTK_SDKManager.cs をアタッチ その後、VRTK_SDK Manager のインスペクタ > Setups > +ボタンを押してそこにSteamVR_SDK(ゲームオブジェクト)をD&D さらに、インスペクタ > Script Aliases に Left / Right Controller(ゲームオブジェクト)をD&D
- Left / Right Controller- VRTK > Scripts > Interactions > VRTK_ControllerEvents.cs, VRTK_InteractGrab.cs, VRTK_InteractTouch.cs の3つをアタッチ さらに VRTK_Interact Grab > Controller Events, Interact Touch の各箇所に同じインスペクタ内のスクリプトをアタッチ
各インスペクタが、このようになっていればOKです。
これで掴む側の設定は完了です。最後に掴まれる側の設定です。
掴まれるオブジェクト- VRTK > Scripts > Interactions > VRTK_InteractableObject をアタッチ インスペクタで Is Grabbable にチェックを入れる
これで物をつかめるようになったはずです!!どうでもいいですが、Grabbableってb多すぎませんか。
!注意!
2018/9/30現在、steamVR plugin を2.0以上にアップデートしてしまうと、VRTKが動かなくなります。古いバージョンを使いましょう!
#VRTK V3 (current unity asset store and github master version) are not compatible with the new SteamVR 2.0 unity plugin. Don't update your SteamVR unity plugin within your VRTK project otherwise it will cease to work. You can still download SteamVR unity plugin v1.2.3 from github
— VRTK (@VR_Toolkit) September 23, 2018
また、importした時に必ず出るエラーがあるのでそこはコメントアウトしてしまいましょう。
VRTK > Scripts > Interactions > Highlighters > VRTK_MaterialColorSwapHighlighter.cs の146行目(renderer.material.SetTexture("_MainTex", new Texture());)をコメントアウト
完成したもの
— たけのこ (@kabostrawberry) September 17, 2018