
Godot XR Toolsを使った記録
概要
Godot XR Toolsを使った記録です。
前のNoteのWebXRを作った続きで行いました。
Godot XR Toolsの作者のYotubeを参照してほぼそのままです。
The Godot XR Tools library part 1 - introduction - YouTube
Godot XR Tools part 2 - Picking up objects - YouTube
Godot XR Toolsのインストールと設定
ウインドウ上側のAssetLibからインストールしました。

プロジェクト設定から有効化しました。

Godot XR Toolsが動くように下記を追加しました。
XRCamera3Dにvr_common_shader_cache.tscnを追加
XRController(LeftController)にleft_hand_low.tscnを追加
XRController(RightController)にright_hand_low.tscnを追加
XROrigin3Dにplayer_body.tscnを追加

Physics Layers | Godot XR Tools (godotvr.github.io)を参考にプロジェクト設定のLayer Names -> 3D物理にレイヤー名を付けました。

Picking up objects物をつかむ
Godot XR Tools作者のYotubeを参考にしました。
シーン->新しい継承シーン から res://addons/godot-xr-tools/objects/pickable.tscnを選択してシーンを作成しました。
出来たシーンにCollisionShape3DのShapeとMeshInstance3Dを足しました。
また手を近づけた時に光るようにXRToolsHighlightRingを足しました。

Materialは、Albedoで紫に、Flip Facesをオンで反転してます。

また、メインシーンに戻ってLeftControllerとRightControllerにfunction_pickup.tscnを足しました。

これで掴めるようになりました。

掴む位置の調整のためgrab_point_hand_left.tscnを追加しました。作者の動画のpart2の4:40秒あたりをそのまましました。バージョンアップで見た目が少し変わっていました。


res://addons/godot-xr-tools/hands/animations/left/Grip Shaft.resを選択しました。
Godot XR Toolsの衝突
Pick up ObjectsのCollisionは次の画像でした。

PlayerBody(player_body.tscn)のCollisionは次の画像でした。もしプレイヤーとぶつかりたく無い物を作りたかったらLayerを1~10以外にする必要があります。(VRで近づけなくてだいぶはまりました)
