VRTK4.0Beta インタラクションの追加

ひとまずVRTK4.0 Betaの最終回。バーチャル空間で物を持てるように設定を進めていきます。長かったVRTKチュートリアルもひとまず終了です。

前回の記事「FloatをBooleanへ変換」の続きとなります。
前回の記事はこちら

今回は以下のドキュメントをもとに進めていきます
https://academy.vrtk.io/Documentation/HowToGuides/Interactions/AddingAnInteractable/

テーブルの作成

まずはインタラクションオブジェクト(VR空間でつかむことができるオブジェクト)を設置するためのテーブルを準備します。
Cubeオブジェクトを設置し、名前を「Table」にします

インタラクションオブジェクトの追加

インタラクションオブジェクトを追加します。
すでにプレハブが用意されているので、そのプレハブをシーン内に追加します

プレハブは
VRTK > Prefabs > Interactions > Interactables
配下に準備されています

配置したプレハブのメッシュがデフォルトだと大きいため、
X = 0.2, Y = 0.2, Z = 0.2 へ調整を行います
メッシュの場所は
Interactable.Primary_Grab.Secondary_Swap > Meshes > DefaultMesh
になります

わかりやすいように、インタラクション用オブジェクトのマテアリルを作成し、適用してみました(緑色のオブジェクトがインタラクションオブジェクト)
また、インタラクションオブジェクトは作成したTableオブジェクトの上にくるように移動させておきます。
この時、「Interactable.Primary_Grab.Secondary_Swap」プレハブを選択した状態で移動させます。
メッシュだけ選択した状態で移動させてしまうと、物をつかんだ時に緑色のCubeの位置がめちゃくちゃになります

以上!!・・・とその前に

インタラクションオブジェクトの設定自体は以上で終了です。
現在、トリガーボタンには余計な処理(トリガー時に床を消す処理)が入っているため、その処理を削除します

以上の設定が終わったら、改めてUnityのプレイボタンを押して、動作を確認してみましょう

設定がうまくいっていれば、左右のコントローラで物を掴むことができ、さらに、物を掴んでいる状態で、空いているコントローラのトリガーボタンを押せばオブジェクトを持ち替えることもできます。
オブジェクトを投げれば、腕を振り下ろした強さに応じてオブジェクトを投げることもできます

以上です!

以上で、本シリーズで目標としていた
・テレポートを行う
・物を掴む
という一連の動作を実現することができました。

ただ、これはVRTK4の出発点に過ぎず、サンプルのFarmを見渡せば、まだまだできることが多くあります。
ドキュメントが整備されていない状態で処理を作成することは、なかなか骨の折れる作業ではありますが、本記事がVRTKの世界に足を踏み入れるきっかけになったのであれば、作成した甲斐もあるというものです。