すだちキャンパス

すだちキャンパス

やってみたこと、学んだことなどのメモ。

あ が降ってくる空間

unityとsteamVRの入門として、あ が降ってくる空間を作りました。

steamVRは何回か使っているのですが、使うたびに忘れていていちいち調べているので、まとめメモ的に書いておきます。

 

 

環境

  • unity 2018.2.1f1
  • HTC VIVE

出来たこと

  • unityで作った世界にviveで入れる
  • blenderで立体文字を作れる
  • unityで作った世界のものに触れる

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の準備 (あ に触れるようになる)

まず、このようになるように空のゲームオブジェクトを作ります。それから、スクリプトアタッチ祭りです。
f:id:sweetgohan:20181009153754p:plain

  • 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です。
f:id:sweetgohan:20181009155350p:plain
f:id:sweetgohan:20181009155429p:plain
f:id:sweetgohan:20181009155523p:plain

これで掴む側の設定は完了です。最後に掴まれる側の設定です。

掴まれるオブジェクト- VRTK > Scripts > Interactions > VRTK_InteractableObject をアタッチ インスペクタで Is Grabbable にチェックを入れる

これで物をつかめるようになったはずです!!どうでもいいですが、Grabbableってb多すぎませんか。

!注意!

2018/9/30現在、steamVR plugin を2.0以上にアップデートしてしまうと、VRTKが動かなくなります。古いバージョンを使いましょう!

また、importした時に必ず出るエラーがあるのでそこはコメントアウトしてしまいましょう。

VRTK > Scripts > Interactions > Highlighters > VRTK_MaterialColorSwapHighlighter.cs の146行目(renderer.material.SetTexture("_MainTex", new Texture());)をコメントアウト

完成したもの