![見出し画像](https://assets.st-note.com/production/uploads/images/123590909/rectangle_large_type_2_8aa9b15043d9918c7b68669bc5ca415f.png?width=1200)
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からインストールしました。
![](https://assets.st-note.com/img/1700914423604-VBvWh4WRnD.png?width=1200)
プロジェクト設定から有効化しました。
![](https://assets.st-note.com/img/1700914562383-GmmKFxCVlB.png?width=1200)
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を追加
![](https://assets.st-note.com/img/1700930001558-Nv0T32mfd2.png)
Physics Layers | Godot XR Tools (godotvr.github.io)を参考にプロジェクト設定のLayer Names -> 3D物理にレイヤー名を付けました。
![](https://assets.st-note.com/img/1700929962340-OAZNEwa7nn.png?width=1200)
Picking up objects物をつかむ
Godot XR Tools作者のYotubeを参考にしました。
シーン->新しい継承シーン から res://addons/godot-xr-tools/objects/pickable.tscnを選択してシーンを作成しました。
出来たシーンにCollisionShape3DのShapeとMeshInstance3Dを足しました。
また手を近づけた時に光るようにXRToolsHighlightRingを足しました。
![](https://assets.st-note.com/img/1700963178098-jGYJAoaBj9.png)
Materialは、Albedoで紫に、Flip Facesをオンで反転してます。
![](https://assets.st-note.com/img/1700963200763-MVoZfipN3h.png)
また、メインシーンに戻ってLeftControllerとRightControllerにfunction_pickup.tscnを足しました。
![](https://assets.st-note.com/img/1700962593857-JjMBwjAL05.png)
これで掴めるようになりました。
![](https://assets.st-note.com/img/1700963349387-o4t9ikWZdS.png)
掴む位置の調整のためgrab_point_hand_left.tscnを追加しました。作者の動画のpart2の4:40秒あたりをそのまましました。バージョンアップで見た目が少し変わっていました。
![](https://assets.st-note.com/img/1700964399608-NFMNCifZf7.png)
![](https://assets.st-note.com/img/1700964555166-uJwhcPpiKx.png)
res://addons/godot-xr-tools/hands/animations/left/Grip Shaft.resを選択しました。
Godot XR Toolsの衝突
Pick up ObjectsのCollisionは次の画像でした。
![](https://assets.st-note.com/img/1700967546805-7EIUvr7q6z.png)
PlayerBody(player_body.tscn)のCollisionは次の画像でした。もしプレイヤーとぶつかりたく無い物を作りたかったらLayerを1~10以外にする必要があります。(VRで近づけなくてだいぶはまりました)
![](https://assets.st-note.com/img/1700967576275-OYzbOlXmnk.png)
この記事が気に入ったらサポートをしてみませんか?