commit
971eac3ce0
|
@ -16,19 +16,19 @@ Immersive Home is project to bring Smart Home and Mixed Reality technologies tog
|
|||
|
||||
Right now you can try out the app for free using either of the following pages:
|
||||
|
||||
<a href="https://www.oculus.com/experiences/quest/7533875049973382/">
|
||||
<a href="https://www.oculus.com/experiences/quest/7533875049973382/" target="_blank">
|
||||
<img height="32" src="assets/badges/meta.svg" alt="Badge linking to Meta App Lab" />
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/Nitwel/Immersive-Home/releases/latest/download/Android.zip">
|
||||
<a href="https://github.com/Nitwel/Immersive-Home/releases/latest/download/Android.zip" target="_blank">
|
||||
<img height="32" src="assets/badges/github.svg" alt="Badge linking to GitHub" />
|
||||
</a>
|
||||
|
||||
<a href="https://nitwel.itch.io/immersive-home">
|
||||
<a href="https://nitwel.itch.io/immersive-home" target="_blank">
|
||||
<img height="32" src="assets/badges/itch.svg" alt="Badge linking to itch.io" />
|
||||
</a>
|
||||
|
||||
<a href="https://sidequestvr.com/app/26827/immersive-home">
|
||||
<a href="https://sidequestvr.com/app/26827/immersive-home" target="_blank">
|
||||
<img height="32" src="assets/badges/sidequest.svg" alt="Badge linking to sidequest" />
|
||||
</a>
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ac3ac3647171c53e2f47564df2e25eff19fbfab8bf763d0078fe1c82476d8761
|
||||
size 1291264
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cggrrnkgc7ufo"]
|
||||
|
||||
[ext_resource path="res://addons/godot-xr-tools/audio/surface_audio.gd" type="Script" id=1]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/surface_audio.gd" id="1"]
|
||||
|
||||
[node name="SurfaceAudio" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
script = ExtResource("1")
|
||||
|
|
|
@ -6,10 +6,11 @@
|
|||
[sub_resource type="ArrayMesh" id="ArrayMesh_yyajy"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-2, -2, 0, 4, 4, 1e-05),
|
||||
"format": 4097,
|
||||
"format": 34359742465,
|
||||
"index_count": 192,
|
||||
"index_data": PackedByteArray(32, 0, 33, 0, 1, 0, 32, 0, 1, 0, 0, 0, 33, 0, 34, 0, 2, 0, 33, 0, 2, 0, 1, 0, 34, 0, 35, 0, 3, 0, 34, 0, 3, 0, 2, 0, 35, 0, 36, 0, 4, 0, 35, 0, 4, 0, 3, 0, 36, 0, 37, 0, 5, 0, 36, 0, 5, 0, 4, 0, 37, 0, 38, 0, 6, 0, 37, 0, 6, 0, 5, 0, 38, 0, 39, 0, 7, 0, 38, 0, 7, 0, 6, 0, 39, 0, 40, 0, 8, 0, 39, 0, 8, 0, 7, 0, 40, 0, 41, 0, 9, 0, 40, 0, 9, 0, 8, 0, 41, 0, 42, 0, 10, 0, 41, 0, 10, 0, 9, 0, 42, 0, 43, 0, 11, 0, 42, 0, 11, 0, 10, 0, 43, 0, 44, 0, 12, 0, 43, 0, 12, 0, 11, 0, 44, 0, 45, 0, 13, 0, 44, 0, 13, 0, 12, 0, 45, 0, 46, 0, 14, 0, 45, 0, 14, 0, 13, 0, 46, 0, 47, 0, 15, 0, 46, 0, 15, 0, 14, 0, 47, 0, 48, 0, 16, 0, 47, 0, 16, 0, 15, 0, 48, 0, 49, 0, 17, 0, 48, 0, 17, 0, 16, 0, 49, 0, 50, 0, 18, 0, 49, 0, 18, 0, 17, 0, 50, 0, 51, 0, 19, 0, 50, 0, 19, 0, 18, 0, 51, 0, 52, 0, 20, 0, 51, 0, 20, 0, 19, 0, 52, 0, 53, 0, 21, 0, 52, 0, 21, 0, 20, 0, 53, 0, 54, 0, 22, 0, 53, 0, 22, 0, 21, 0, 54, 0, 55, 0, 23, 0, 54, 0, 23, 0, 22, 0, 55, 0, 56, 0, 24, 0, 55, 0, 24, 0, 23, 0, 56, 0, 57, 0, 25, 0, 56, 0, 25, 0, 24, 0, 57, 0, 58, 0, 26, 0, 57, 0, 26, 0, 25, 0, 58, 0, 59, 0, 27, 0, 58, 0, 27, 0, 26, 0, 59, 0, 60, 0, 28, 0, 59, 0, 28, 0, 27, 0, 60, 0, 61, 0, 29, 0, 60, 0, 29, 0, 28, 0, 61, 0, 62, 0, 30, 0, 61, 0, 30, 0, 29, 0, 62, 0, 63, 0, 31, 0, 62, 0, 31, 0, 30, 0, 63, 0, 32, 0, 0, 0, 63, 0, 0, 0, 31, 0),
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 64,
|
||||
"vertex_data": PackedByteArray(0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 123, 63, 194, 197, 71, 190, 0, 0, 0, 0, 94, 131, 108, 63, 22, 239, 195, 190, 0, 0, 0, 0, 49, 219, 84, 63, 218, 57, 14, 191, 0, 0, 0, 0, 243, 4, 53, 63, 243, 4, 53, 191, 0, 0, 0, 0, 218, 57, 14, 63, 49, 219, 84, 191, 0, 0, 0, 0, 21, 239, 195, 62, 94, 131, 108, 191, 0, 0, 0, 0, 196, 197, 71, 62, 190, 20, 123, 191, 0, 0, 0, 0, 46, 189, 59, 179, 0, 0, 128, 191, 0, 0, 0, 0, 194, 197, 71, 190, 190, 20, 123, 191, 0, 0, 0, 0, 20, 239, 195, 190, 95, 131, 108, 191, 0, 0, 0, 0, 217, 57, 14, 191, 50, 219, 84, 191, 0, 0, 0, 0, 243, 4, 53, 191, 243, 4, 53, 191, 0, 0, 0, 0, 50, 219, 84, 191, 217, 57, 14, 191, 0, 0, 0, 0, 94, 131, 108, 191, 23, 239, 195, 190, 0, 0, 0, 0, 191, 20, 123, 191, 193, 197, 71, 190, 0, 0, 0, 0, 0, 0, 128, 191, 46, 189, 187, 51, 0, 0, 0, 0, 191, 20, 123, 191, 189, 197, 71, 62, 0, 0, 0, 0, 94, 131, 108, 191, 21, 239, 195, 62, 0, 0, 0, 0, 48, 219, 84, 191, 219, 57, 14, 63, 0, 0, 0, 0, 244, 4, 53, 191, 242, 4, 53, 63, 0, 0, 0, 0, 221, 57, 14, 191, 47, 219, 84, 63, 0, 0, 0, 0, 26, 239, 195, 190, 94, 131, 108, 63, 0, 0, 0, 0, 198, 197, 71, 190, 190, 20, 123, 63, 0, 0, 0, 0, 46, 222, 76, 50, 0, 0, 128, 63, 0, 0, 0, 0, 200, 197, 71, 62, 190, 20, 123, 63, 0, 0, 0, 0, 27, 239, 195, 62, 93, 131, 108, 63, 0, 0, 0, 0, 215, 57, 14, 63, 51, 219, 84, 63, 0, 0, 0, 0, 242, 4, 53, 63, 245, 4, 53, 63, 0, 0, 0, 0, 49, 219, 84, 63, 219, 57, 14, 63, 0, 0, 0, 0, 95, 131, 108, 63, 21, 239, 195, 62, 0, 0, 0, 0, 191, 20, 123, 63, 188, 197, 71, 62, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 251, 63, 194, 197, 199, 190, 0, 0, 0, 0, 94, 131, 236, 63, 22, 239, 67, 191, 0, 0, 0, 0, 49, 219, 212, 63, 218, 57, 142, 191, 0, 0, 0, 0, 243, 4, 181, 63, 243, 4, 181, 191, 0, 0, 0, 0, 218, 57, 142, 63, 49, 219, 212, 191, 0, 0, 0, 0, 21, 239, 67, 63, 94, 131, 236, 191, 0, 0, 0, 0, 196, 197, 199, 62, 190, 20, 251, 191, 0, 0, 0, 0, 46, 189, 187, 179, 0, 0, 0, 192, 0, 0, 0, 0, 194, 197, 199, 190, 190, 20, 251, 191, 0, 0, 0, 0, 20, 239, 67, 191, 95, 131, 236, 191, 0, 0, 0, 0, 217, 57, 142, 191, 50, 219, 212, 191, 0, 0, 0, 0, 243, 4, 181, 191, 243, 4, 181, 191, 0, 0, 0, 0, 50, 219, 212, 191, 217, 57, 142, 191, 0, 0, 0, 0, 94, 131, 236, 191, 23, 239, 67, 191, 0, 0, 0, 0, 191, 20, 251, 191, 193, 197, 199, 190, 0, 0, 0, 0, 0, 0, 0, 192, 46, 189, 59, 52, 0, 0, 0, 0, 191, 20, 251, 191, 189, 197, 199, 62, 0, 0, 0, 0, 94, 131, 236, 191, 21, 239, 67, 63, 0, 0, 0, 0, 48, 219, 212, 191, 219, 57, 142, 63, 0, 0, 0, 0, 244, 4, 181, 191, 242, 4, 181, 63, 0, 0, 0, 0, 221, 57, 142, 191, 47, 219, 212, 63, 0, 0, 0, 0, 26, 239, 67, 191, 94, 131, 236, 63, 0, 0, 0, 0, 198, 197, 199, 190, 190, 20, 251, 63, 0, 0, 0, 0, 46, 222, 204, 50, 0, 0, 0, 64, 0, 0, 0, 0, 200, 197, 199, 62, 190, 20, 251, 63, 0, 0, 0, 0, 27, 239, 67, 63, 93, 131, 236, 63, 0, 0, 0, 0, 215, 57, 142, 63, 51, 219, 212, 63, 0, 0, 0, 0, 242, 4, 181, 63, 245, 4, 181, 63, 0, 0, 0, 0, 49, 219, 212, 63, 219, 57, 142, 63, 0, 0, 0, 0, 95, 131, 236, 63, 21, 239, 67, 63, 0, 0, 0, 0, 191, 20, 251, 63, 188, 197, 199, 62, 0, 0, 0, 0)
|
||||
}]
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ec74b5b5948e76d01115d7ff959610515e97aca1c42870f36b4a747f2dc4cb70
|
||||
oid sha256:b55738edba8fcdaab47c5e40cf4b900b10c86ea67f9d40dc041f84f4e76ec484
|
||||
size 2416
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:46cdd3222390fdf4b7e6f591958bbf30944df088a71cab919ba54a49ace2baf8
|
||||
oid sha256:3a3e64d9a45c8ab58180b00eae7ed8e306c22686656fca4ed854b87283ed4c09
|
||||
size 2424
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://bpdj5njb8nhot"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dhaqth6q5yw4n" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvkh1gxbhwri4" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_x4lr3"]
|
||||
[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="4"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_rtx6p")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_y01rx")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://nqiyqnx42m61"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dhaqth6q5yw4n" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvkh1gxbhwri4" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_0aa1r"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_g5ps2")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_v8isy")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_2ssci")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_narw6")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://cy03d57iyrci"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://q1l3fknstir2" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://bh786yhm5v4fh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_fye1l"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_40ncn")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_fjpy6")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://ddsj74hpt1kgb"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bu07alt6vkbaq" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bd7h22w1o77fp" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_rnhp7"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_2ih7n")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_02eq5")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("6")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://hpr0v012ghsb"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bu07alt6vkbaq" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bd7h22w1o77fp" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_s33di"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_kjpaa")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_kisbg")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://d1tl07geqm5xq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://ds1t8vc0kxoeo" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://ytv5cbt6dbeg" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_xmpie"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_gm5ny")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_3o6s4")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://cigx2gnf4tg4d"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://ds1t8vc0kxoeo" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://ytv5cbt6dbeg" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_23oai"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4mwbe")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_x7ees")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://raeeicvvindd"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c6s5nvekg0isa" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://duffm8pu8ask7" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_lydk3"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_0hd6d")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_okkj6")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://kcqomcjq52np"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://c6s5nvekg0isa" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://duffm8pu8ask7" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_gqplw"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4bb4h")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_b8ks0")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://b6xesntm4qeo5"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://w7th3d2hl7b5" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://iwqh6hhdhhdk" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_h0fv3"]
|
||||
[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_dc0m1")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_guoth")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("6")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://dup2vp8v5rpi5"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://w7th3d2hl7b5" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://iwqh6hhdhhdk" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_3ih8a"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="4"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4vdom")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_hef27")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://bq86r4yll8po"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://16colgxrw27d" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://g510kgsy5u72" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_wyae6"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="5"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_470u2")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_fhgyt")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://b4kad2kuba1yn"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c4nba0qpi0uls" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://w87o4l6qhsmd" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_ry7qg"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_c3h37")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ihxeh")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://b8hc2ex21u8xj"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://16colgxrw27d" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://g510kgsy5u72" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_4017m"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_fvmpw")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_a1c3t")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://bdwmserhqai5h"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4nba0qpi0uls" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://w87o4l6qhsmd" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_t17lq"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_3l13i")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ms3kw")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://bj1aas6kty3qx"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnx4hithcij6y" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://dokq2yjsxpofc" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="2"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_oehre"]
|
||||
[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_vkt4w")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_1yhw8")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("6")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://bx1xdisoqo1f6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bnx4hithcij6y" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dokq2yjsxpofc" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_iq5xt"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_csu2l")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_akg52")
|
||||
nodes/Trigger/position = Vector2(-360, 20)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="LeftHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://xqimcf20s2jp"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjrac51wst3tu" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://c6rnlihkm44f0" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
|
||||
[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_r4xyu"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="4"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l50hj")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_vrc3g")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightHand" type="Node3D"]
|
||||
script = ExtResource("4")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://l2n30mpbkdyw"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dunu03tc5vdbh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://cgobg2isk3rk1" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_f67ka"]
|
||||
[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="4"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_covtt")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_h5uio")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://bkdeegb8w3oah"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjrac51wst3tu" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://c6rnlihkm44f0" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
|
||||
[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_e8slj"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_1fjc2")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ai2qv")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("4")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://btf05hjpw6k05"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dunu03tc5vdbh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://cgobg2isk3rk1" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_b86a5"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l0mk4")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_it0su")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://c2uvwvdlsfuep"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://csgsp0wuw8ucy" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://cacrvwhji2ibw" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="2"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_xodao"]
|
||||
[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"]
|
||||
|
@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_8kdoe")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_5qnsq")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightPhysicsHand" type="Node3D"]
|
||||
script = ExtResource("6")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://chumpejwiub7f"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://csgsp0wuw8ucy" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cacrvwhji2ibw" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
|
||||
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_2wryo"]
|
||||
|
@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4o3a2")
|
|||
nodes/OpenHand/position = Vector2(-600, 100)
|
||||
nodes/Trigger/node = SubResource("AnimationNodeBlend2_5v4fm")
|
||||
nodes/Trigger/position = Vector2(-360, 40)
|
||||
node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
|
||||
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
|
||||
|
||||
[node name="RightHand" type="Node3D"]
|
||||
script = ExtResource("3")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bwqiturebyt3h"]
|
||||
|
||||
[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" type="Script" id=1]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" id="1"]
|
||||
|
||||
[node name="InteractableHinge" type="Spatial"]
|
||||
script = ExtResource( 1 )
|
||||
script = ExtResource("1")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cnfk38alyp72q"]
|
||||
|
||||
[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" type="Script" id=1]
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" id="1"]
|
||||
|
||||
[node name="InteractableJoystick" type="Spatial"]
|
||||
script = ExtResource( 1 )
|
||||
script = ExtResource("1")
|
||||
|
|
|
@ -10,9 +10,9 @@ resource_local_to_scene = true
|
|||
render_priority = 0
|
||||
shader = ExtResource("2")
|
||||
shader_parameter/albedo = Color(1, 1, 1, 1)
|
||||
shader_parameter/value = 0.2
|
||||
shader_parameter/fade = 0.05
|
||||
shader_parameter/radius = 0.8
|
||||
shader_parameter/value = 0.2
|
||||
shader_parameter/width = 0.2
|
||||
|
||||
[node name="HoldButton" type="Node3D"]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=8 format=3]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://cjccb67fjl4aw"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.gd" id="1"]
|
||||
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/teleport.tres" id="2_6822k"]
|
||||
[ext_resource type="Material" uid="uid://bk72wfw25ff0v" path="res://addons/godot-xr-tools/materials/teleport.tres" id="2_6822k"]
|
||||
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/target.tres" id="3_agvdv"]
|
||||
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/capsule.tres" id="4_gxjsg"]
|
||||
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/pointer.tres" id="5_12251"]
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
[ext_resource type="Script" path="res://addons/godot-xr-tools/staging/loading_screen.gd" id="2"]
|
||||
[ext_resource type="Shader" uid="uid://4i0pwdtfmtsv" path="res://addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://clbtsf0ahb3fm" path="res://addons/godot-xr-tools/assets/misc/progress_bar.png" id="4"]
|
||||
[ext_resource type="Texture2D" uid="uid://ocyj01x5mtt7" path="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://b77u06jwo4l5y" path="res://addons/godot-xr-tools/assets/misc/progress_bar.png" id="4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dbbxlk5acoxfg" path="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" id="5"]
|
||||
[ext_resource type="PackedScene" uid="uid://cymteydkxagpp" path="res://addons/godot-xr-tools/misc/hold_button.tscn" id="6"]
|
||||
|
||||
[sub_resource type="Curve" id="21"]
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="PackedScene" uid="uid://bqumugyvkct4r" path="res://addons/godot-xr-tools/staging/loading_screen.tscn" id="2"]
|
||||
[ext_resource type="Environment" uid="uid://ckiwtcdsam7ed" path="res://addons/godot-xr-tools/staging/staging_env.tres" id="3_40x3a"]
|
||||
[ext_resource type="Shader" path="res://addons/godot-xr-tools/staging/fade.gdshader" id="4"]
|
||||
[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.tscn" id="5"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjccb67fjl4aw" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.tscn" id="5"]
|
||||
[ext_resource type="PackedScene" uid="uid://clc5dre31iskm" path="res://addons/godot-xr-tools/xr/start_xr.tscn" id="6_balvx"]
|
||||
|
||||
[sub_resource type="QuadMesh" id="4"]
|
||||
|
|
30
addons/godotopenxrvendors/GodotOpenXRVendors_CHANGES.md
Normal file
30
addons/godotopenxrvendors/GodotOpenXRVendors_CHANGES.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Change history for the Godot OpenXR loaders asset
|
||||
|
||||
## 2.0.0
|
||||
- Update to the new Godot 4.2 Android plugin packaging format
|
||||
- Update the plugin to Godot v2 Android plugin
|
||||
- Update to the Godot 4.2 Android library
|
||||
- Add warning when multiple loaders are selected
|
||||
- Add configs for the OpenXR Eye gaze interaction extension
|
||||
- Add the ability to customize supported Meta devices
|
||||
- Add support for Quest 3 devices
|
||||
- Update the directory structure for the v2 plugin
|
||||
- Update Meta OpenXR mobile SDK to version 57
|
||||
- Update the java version to 17
|
||||
- Rename the plugin to 'Godot OpenXR Vendors'
|
||||
- Add godot-cpp dependency
|
||||
- Add OpenXR 1.0.30 headers
|
||||
- Add support for the Meta scene capture API (Donated by [Migeran](https://migeran.com))
|
||||
|
||||
## 1.1.0
|
||||
- Update Meta OpenXR loader to version 54
|
||||
- Update PICO OpenXR loader to version 2.2.0
|
||||
- Bump dependencies versions to match the latest Godot 4.x stable version (v4.0.3)
|
||||
|
||||
## 1.0.0
|
||||
- First version
|
||||
- Added support for Meta Quest loader
|
||||
- Added support for Pico loader
|
||||
- Added support for Khronos loader (Magic Leap 2, HTC, etc.)
|
||||
- Added support for Lynx loader
|
||||
- Add logic to automatically publish the Godot OpenXR loaders libraries to mavencentral on release
|
19
addons/godotopenxrvendors/globals.gd
Normal file
19
addons/godotopenxrvendors/globals.gd
Normal file
|
@ -0,0 +1,19 @@
|
|||
@tool
|
||||
|
||||
# Set of supported vendors
|
||||
const META_VENDOR_NAME = "meta"
|
||||
const PICO_VENDOR_NAME = "pico"
|
||||
const LYNX_VENDOR_NAME = "lynx"
|
||||
const KHRONOS_VENDOR_NAME = "khronos"
|
||||
|
||||
const VENDORS_LIST = [
|
||||
META_VENDOR_NAME,
|
||||
PICO_VENDOR_NAME,
|
||||
LYNX_VENDOR_NAME,
|
||||
KHRONOS_VENDOR_NAME,
|
||||
]
|
||||
|
||||
# Set of custom feature tags supported by the plugin
|
||||
const EYE_GAZE_INTERACTION_FEATURE = "XR_EXT_eye_gaze_interaction"
|
||||
|
||||
const OPENXR_MODE_VALUE = 1
|
186
addons/godotopenxrvendors/godot_openxr_export_plugin.gd
Normal file
186
addons/godotopenxrvendors/godot_openxr_export_plugin.gd
Normal file
|
@ -0,0 +1,186 @@
|
|||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
var globals = preload("globals.gd")
|
||||
|
||||
# A class member to hold the export plugin during its lifecycle.
|
||||
var meta_export_plugin : GodotOpenXREditorExportPlugin
|
||||
var pico_export_plugin : GodotOpenXREditorExportPlugin
|
||||
var lynx_export_plugin : GodotOpenXREditorExportPlugin
|
||||
var khronos_export_plugin : GodotOpenXREditorExportPlugin
|
||||
|
||||
|
||||
func _enter_tree():
|
||||
var plugin_version = get_plugin_version()
|
||||
|
||||
# Initializing the export plugins
|
||||
meta_export_plugin = preload("meta/godot_openxr_meta_editor_export_plugin.gd").new()
|
||||
meta_export_plugin._setup(globals.META_VENDOR_NAME, plugin_version)
|
||||
|
||||
pico_export_plugin = preload("pico/godot_openxr_pico_editor_export_plugin.gd").new()
|
||||
pico_export_plugin._setup(globals.PICO_VENDOR_NAME, plugin_version)
|
||||
|
||||
lynx_export_plugin = preload("lynx/godot_openxr_lynx_editor_export_plugin.gd").new()
|
||||
lynx_export_plugin._setup(globals.LYNX_VENDOR_NAME, plugin_version)
|
||||
|
||||
khronos_export_plugin = preload("khronos/godot_openxr_khronos_editor_export_plugin.gd").new()
|
||||
khronos_export_plugin._setup(globals.KHRONOS_VENDOR_NAME, plugin_version)
|
||||
|
||||
add_export_plugin(meta_export_plugin)
|
||||
add_export_plugin(pico_export_plugin)
|
||||
add_export_plugin(lynx_export_plugin)
|
||||
add_export_plugin(khronos_export_plugin)
|
||||
|
||||
|
||||
func _exit_tree():
|
||||
# Cleaning up the export plugins
|
||||
remove_export_plugin(meta_export_plugin)
|
||||
remove_export_plugin(pico_export_plugin)
|
||||
remove_export_plugin(lynx_export_plugin)
|
||||
remove_export_plugin(khronos_export_plugin)
|
||||
|
||||
meta_export_plugin = null
|
||||
pico_export_plugin = null
|
||||
lynx_export_plugin = null
|
||||
khronos_export_plugin = null
|
||||
|
||||
|
||||
class GodotOpenXREditorExportPlugin extends EditorExportPlugin:
|
||||
|
||||
## Base class for the vendor editor export plugin
|
||||
|
||||
var globals = preload("globals.gd")
|
||||
|
||||
var _vendor: String
|
||||
var _plugin_version: String
|
||||
|
||||
func _setup(vendor: String, version: String):
|
||||
_vendor = vendor
|
||||
_plugin_version = version
|
||||
|
||||
|
||||
func _get_name() -> String:
|
||||
return "GodotOpenXR" + _vendor.capitalize()
|
||||
|
||||
|
||||
# Path to the Android library aar file
|
||||
# If this is not available, we fall back to the maven central dependency
|
||||
func _get_android_aar_file_path(debug: bool) -> String:
|
||||
var debug_label = "debug" if debug else "release"
|
||||
return "res://addons/godotopenxrvendors/" + _vendor + "/.bin/" + debug_label + "/godotopenxr" + _vendor + "-" + debug_label + ".aar"
|
||||
|
||||
|
||||
# Maven central dependency used as fall back when the Android library aar file is not available
|
||||
func _get_android_maven_central_dependency() -> String:
|
||||
return "org.godotengine:godot-openxr-vendors-" + _vendor + ":" + _plugin_version
|
||||
|
||||
|
||||
func _get_vendor_toggle_option_name(vendor_name: String = _vendor) -> String:
|
||||
return "xr_features/enable_" + vendor_name + "_plugin"
|
||||
|
||||
|
||||
func _get_vendor_toggle_option(vendor_name: String = _vendor) -> Dictionary:
|
||||
var toggle_option = {
|
||||
"option": {
|
||||
"name": _get_vendor_toggle_option_name(vendor_name),
|
||||
"class_name": "",
|
||||
"type": TYPE_BOOL,
|
||||
"hint": PROPERTY_HINT_NONE,
|
||||
"hint_string": "",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": false,
|
||||
"update_visibility": false,
|
||||
}
|
||||
return toggle_option
|
||||
|
||||
|
||||
func _is_openxr_enabled() -> bool:
|
||||
return _get_int_option("xr_features/xr_mode", 0) == globals.OPENXR_MODE_VALUE
|
||||
|
||||
|
||||
func _get_export_options(platform) -> Array[Dictionary]:
|
||||
if not _supports_platform(platform):
|
||||
return []
|
||||
|
||||
return [
|
||||
_get_vendor_toggle_option(),
|
||||
]
|
||||
|
||||
|
||||
func _get_export_option_warning(platform, option) -> String:
|
||||
if not _supports_platform(platform):
|
||||
return ""
|
||||
|
||||
if option != _get_vendor_toggle_option_name():
|
||||
return ""
|
||||
|
||||
if not(_is_openxr_enabled()) and _get_bool_option(option):
|
||||
return "\"Enable " + _vendor.capitalize() + " Plugin\" requires \"XR Mode\" to be \"OpenXR\".\n"
|
||||
|
||||
if _is_vendor_plugin_enabled():
|
||||
for vendor_name in globals.VENDORS_LIST:
|
||||
if (vendor_name != _vendor) and _is_vendor_plugin_enabled(vendor_name):
|
||||
return "\"Disable " + _vendor.capitalize() + " Plugin before enabling another. Multiple plugins are not supported!\""
|
||||
|
||||
return ""
|
||||
|
||||
|
||||
func _supports_platform(platform) -> bool:
|
||||
if platform is EditorExportPlatformAndroid:
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
func _get_bool_option(option: String) -> bool:
|
||||
var option_enabled = get_option(option)
|
||||
if option_enabled is bool:
|
||||
return option_enabled
|
||||
return false
|
||||
|
||||
|
||||
func _get_int_option(option: String, default_value: int) -> int:
|
||||
var option_value = get_option(option)
|
||||
if option_value is int:
|
||||
return option_value
|
||||
return default_value
|
||||
|
||||
|
||||
func _is_vendor_plugin_enabled(vendor_name: String = _vendor) -> bool:
|
||||
return _get_bool_option(_get_vendor_toggle_option_name(vendor_name))
|
||||
|
||||
|
||||
func _is_android_aar_file_available(debug: bool) -> bool:
|
||||
return FileAccess.file_exists(_get_android_aar_file_path(debug))
|
||||
|
||||
|
||||
func _get_android_dependencies(platform, debug) -> PackedStringArray:
|
||||
if not _supports_platform(platform):
|
||||
return PackedStringArray()
|
||||
|
||||
if _is_vendor_plugin_enabled() and not _is_android_aar_file_available(debug):
|
||||
return PackedStringArray([_get_android_maven_central_dependency()])
|
||||
|
||||
return PackedStringArray()
|
||||
|
||||
|
||||
func _get_android_libraries(platform, debug) -> PackedStringArray:
|
||||
if not _supports_platform(platform):
|
||||
return PackedStringArray()
|
||||
|
||||
if _is_vendor_plugin_enabled() and _is_android_aar_file_available(debug):
|
||||
return PackedStringArray([_get_android_aar_file_path(debug)])
|
||||
|
||||
return PackedStringArray()
|
||||
|
||||
|
||||
func _get_android_dependencies_maven_repos(platform, debug) -> PackedStringArray:
|
||||
var maven_repos = PackedStringArray()
|
||||
|
||||
if not _supports_platform(platform):
|
||||
return maven_repos
|
||||
|
||||
if _is_vendor_plugin_enabled() and not _is_android_aar_file_available(debug) and _plugin_version.ends_with("-SNAPSHOT"):
|
||||
maven_repos.append("https://s01.oss.sonatype.org/content/repositories/snapshots/")
|
||||
|
||||
return maven_repos
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
@tool
|
||||
extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
|
||||
|
||||
|
||||
func _get_android_manifest_activity_element_contents(platform, debug) -> String:
|
||||
if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
|
||||
return ""
|
||||
|
||||
var contents = """
|
||||
<intent-filter>\n
|
||||
<action android:name=\"android.intent.action.MAIN\" />\n
|
||||
<category android:name=\"android.intent.category.LAUNCHER\" />\n
|
||||
\n
|
||||
<!-- OpenXR category tag to indicate the activity starts in an immersive OpenXR mode. \n
|
||||
See https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category. -->\n
|
||||
<category android:name=\"org.khronos.openxr.intent.category.IMMERSIVE_HMD\" />\n
|
||||
\n
|
||||
<!-- Enable VR access on HTC Vive Focus devices. -->\n
|
||||
<category android:name=\"com.htc.intent.category.VRAPP\" />\n
|
||||
</intent-filter>\n
|
||||
"""
|
||||
|
||||
return contents
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,20 @@
|
|||
@tool
|
||||
extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
|
||||
|
||||
|
||||
func _get_android_manifest_activity_element_contents(platform, debug) -> String:
|
||||
if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
|
||||
return ""
|
||||
|
||||
var contents = """
|
||||
<intent-filter>\n
|
||||
<action android:name=\"android.intent.action.MAIN\" />\n
|
||||
<category android:name=\"android.intent.category.LAUNCHER\" />\n
|
||||
\n
|
||||
<!-- OpenXR category tag to indicate the activity starts in an immersive OpenXR mode. \n
|
||||
See https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category. -->\n
|
||||
<category android:name=\"org.khronos.openxr.intent.category.IMMERSIVE_HMD\" />\n
|
||||
</intent-filter>\n
|
||||
"""
|
||||
|
||||
return contents
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:412fb9932adf31a0db9adbefb190ac9241003ed9166abb2714e9065dec3f0767
|
||||
size 719904
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fc9c79f67a780456530834388a9112bb5d0aec70775e051c211bde30912ec805
|
||||
size 711152
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7cee1054aae5929644ebe34ee27870f5d5b75a9062c45c2ff650573e68adea89
|
||||
size 1533440
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6acd70ae65a48332a57014b8d8998bd486fe514df96bcff80bbe6488a86e7772
|
||||
size 1529344
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7cee1054aae5929644ebe34ee27870f5d5b75a9062c45c2ff650573e68adea89
|
||||
size 1533440
|
|
@ -0,0 +1,300 @@
|
|||
@tool
|
||||
extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
|
||||
|
||||
const EYE_TRACKING_NONE_VALUE = 0
|
||||
const EYE_TRACKING_OPTIONAL_VALUE = 1
|
||||
const EYE_TRACKING_REQUIRED_VALUE = 2
|
||||
|
||||
const PASSTHROUGH_NONE_VALUE = 0
|
||||
const PASSTHROUGH_OPTIONAL_VALUE = 1
|
||||
const PASSTHROUGH_REQUIRED_VALUE = 2
|
||||
|
||||
const HAND_TRACKING_NONE_VALUE = 0
|
||||
const HAND_TRACKING_OPTIONAL_VALUE = 1
|
||||
const HAND_TRACKING_REQUIRED_VALUE = 2
|
||||
|
||||
const HAND_TRACKING_FREQUENCY_LOW_VALUE = 0
|
||||
const HAND_TRACKING_FREQUENCY_HIGH_VALUE = 1
|
||||
|
||||
const EYE_TRACKING_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/eye_tracking",
|
||||
"class_name": "",
|
||||
"type": TYPE_INT,
|
||||
"hint": PROPERTY_HINT_ENUM,
|
||||
"hint_string": "None,Optional,Required",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": EYE_TRACKING_NONE_VALUE,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const HAND_TRACKING_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/hand_tracking",
|
||||
"class_name": "",
|
||||
"type": TYPE_INT,
|
||||
"hint": PROPERTY_HINT_ENUM,
|
||||
"hint_string": "None,Optional,Required",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": HAND_TRACKING_NONE_VALUE,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const HAND_TRACKING_FREQUENCY_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/hand_tracking_frequency",
|
||||
"class_name": "",
|
||||
"type": TYPE_INT,
|
||||
"hint": PROPERTY_HINT_ENUM,
|
||||
"hint_string": "Low,High",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": HAND_TRACKING_FREQUENCY_LOW_VALUE,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const PASSTHROUGH_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/passthrough",
|
||||
"class_name": "",
|
||||
"type": TYPE_INT,
|
||||
"hint": PROPERTY_HINT_ENUM,
|
||||
"hint_string": "None,Optional,Required",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": PASSTHROUGH_NONE_VALUE,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const USE_ANCHOR_API_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/use_anchor_api",
|
||||
"class_name": "",
|
||||
"type": TYPE_BOOL,
|
||||
"hint": PROPERTY_HINT_NONE,
|
||||
"hint_string": "",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": false,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const SUPPORT_QUEST_1_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/quest_1_support",
|
||||
"class_name": "",
|
||||
"type": TYPE_BOOL,
|
||||
"hint": PROPERTY_HINT_NONE,
|
||||
"hint_string": "",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": false,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const SUPPORT_QUEST_2_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/quest_2_support",
|
||||
"class_name": "",
|
||||
"type": TYPE_BOOL,
|
||||
"hint": PROPERTY_HINT_NONE,
|
||||
"hint_string": "",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": true,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const SUPPORT_QUEST_3_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/quest_3_support",
|
||||
"class_name": "",
|
||||
"type": TYPE_BOOL,
|
||||
"hint": PROPERTY_HINT_NONE,
|
||||
"hint_string": "",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": true,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
const SUPPORT_QUEST_PRO_OPTION = {
|
||||
"option": {
|
||||
"name": "meta_xr_features/quest_pro_support",
|
||||
"class_name": "",
|
||||
"type": TYPE_BOOL,
|
||||
"hint": PROPERTY_HINT_NONE,
|
||||
"hint_string": "",
|
||||
"usage": PROPERTY_USAGE_DEFAULT,
|
||||
},
|
||||
"default_value": true,
|
||||
"update_visibility": false,
|
||||
}
|
||||
|
||||
func _get_export_options(platform) -> Array[Dictionary]:
|
||||
if not _supports_platform(platform):
|
||||
return []
|
||||
|
||||
return [
|
||||
_get_vendor_toggle_option(),
|
||||
EYE_TRACKING_OPTION,
|
||||
HAND_TRACKING_OPTION,
|
||||
HAND_TRACKING_FREQUENCY_OPTION,
|
||||
PASSTHROUGH_OPTION,
|
||||
USE_ANCHOR_API_OPTION,
|
||||
SUPPORT_QUEST_1_OPTION,
|
||||
SUPPORT_QUEST_2_OPTION,
|
||||
SUPPORT_QUEST_3_OPTION,
|
||||
SUPPORT_QUEST_PRO_OPTION,
|
||||
]
|
||||
|
||||
|
||||
func _get_supported_devices() -> PackedStringArray:
|
||||
var supported_devices = PackedStringArray()
|
||||
|
||||
if _get_bool_option("meta_xr_features/quest_1_support"):
|
||||
supported_devices.append("quest")
|
||||
if _get_bool_option("meta_xr_features/quest_2_support"):
|
||||
supported_devices.append("quest2")
|
||||
if _get_bool_option("meta_xr_features/quest_3_support"):
|
||||
supported_devices.append("quest3")
|
||||
if _get_bool_option("meta_xr_features/quest_pro_support"):
|
||||
supported_devices.append("questpro")
|
||||
|
||||
return supported_devices
|
||||
|
||||
|
||||
func _is_eye_tracking_enabled() -> bool:
|
||||
var eye_tracking_project_setting_enabled = ProjectSettings.get_setting_with_override("xr/openxr/extensions/eye_gaze_interaction")
|
||||
if not(eye_tracking_project_setting_enabled):
|
||||
return false
|
||||
|
||||
var eye_tracking_option_value = _get_int_option("meta_xr_features/eye_tracking", EYE_TRACKING_NONE_VALUE)
|
||||
return eye_tracking_option_value > EYE_TRACKING_NONE_VALUE
|
||||
|
||||
|
||||
func _get_export_features(platform, debug) -> PackedStringArray:
|
||||
var features = PackedStringArray()
|
||||
|
||||
if not _supports_platform(platform):
|
||||
return features
|
||||
|
||||
# Add the eye tracking feature if necessary
|
||||
if _is_eye_tracking_enabled():
|
||||
features.append(globals.EYE_GAZE_INTERACTION_FEATURE)
|
||||
|
||||
return features
|
||||
|
||||
|
||||
func _get_export_option_warning(platform, option) -> String:
|
||||
if not _supports_platform(platform):
|
||||
return ""
|
||||
|
||||
var warning = ""
|
||||
var openxr_enabled = _is_openxr_enabled()
|
||||
match (option):
|
||||
"meta_xr_features/eye_tracking":
|
||||
var eye_tracking_project_setting_enabled = ProjectSettings.get_setting_with_override("xr/openxr/extensions/eye_gaze_interaction")
|
||||
var eye_tracking_option_value = _get_int_option("meta_xr_features/eye_tracking", EYE_TRACKING_NONE_VALUE)
|
||||
if eye_tracking_option_value > EYE_TRACKING_NONE_VALUE and not(eye_tracking_project_setting_enabled):
|
||||
warning = "\"Eye Tracking\" project setting must be enabled!\n"
|
||||
|
||||
"meta_xr_features/hand_tracking":
|
||||
if not(openxr_enabled) and _get_int_option(option, HAND_TRACKING_NONE_VALUE) > HAND_TRACKING_NONE_VALUE:
|
||||
warning = "\"Hand Tracking\" requires \"XR Mode\" to be \"OpenXR\".\n"
|
||||
|
||||
"meta_xr_features/passthrough":
|
||||
if not(openxr_enabled) and _get_int_option(option, PASSTHROUGH_NONE_VALUE) > PASSTHROUGH_NONE_VALUE:
|
||||
warning = "\"Passthrough\" requires \"XR Mode\" to be \"OpenXR\".\n"
|
||||
|
||||
"meta_xr_features/use_anchor_api":
|
||||
if not(openxr_enabled) and _get_bool_option(option):
|
||||
warning = "\"Use anchor API\" is only valid when \"XR Mode\" is \"OpenXR\"."
|
||||
|
||||
_:
|
||||
warning = super._get_export_option_warning(platform, option)
|
||||
|
||||
return warning
|
||||
|
||||
|
||||
func _get_android_manifest_element_contents(platform, debug) -> String:
|
||||
if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
|
||||
return ""
|
||||
|
||||
var contents = ""
|
||||
|
||||
# Check for eye tracking
|
||||
if _is_eye_tracking_enabled():
|
||||
contents += " <uses-permission android:name=\"com.oculus.permission.EYE_TRACKING\" />\n"
|
||||
|
||||
var eye_tracking_value = _get_int_option("meta_xr_features/eye_tracking", EYE_TRACKING_NONE_VALUE)
|
||||
if eye_tracking_value == EYE_TRACKING_OPTIONAL_VALUE:
|
||||
contents += " <uses-feature android:name=\"oculus.software.eye_tracking\" android:required=\"false\" />\n"
|
||||
elif eye_tracking_value == EYE_TRACKING_REQUIRED_VALUE:
|
||||
contents += " <uses-feature android:name=\"oculus.software.eye_tracking\" android:required=\"true\" />\n"
|
||||
|
||||
|
||||
# Check for hand tracking
|
||||
var hand_tracking_value = _get_int_option("meta_xr_features/hand_tracking", HAND_TRACKING_NONE_VALUE)
|
||||
if hand_tracking_value > HAND_TRACKING_NONE_VALUE:
|
||||
contents += " <uses-permission android:name=\"com.oculus.permission.HAND_TRACKING\" />\n"
|
||||
if hand_tracking_value == HAND_TRACKING_OPTIONAL_VALUE:
|
||||
contents += " <uses-feature tools:node=\"replace\" android:name=\"oculus.software.handtracking\" android:required=\"false\" />\n"
|
||||
elif hand_tracking_value == HAND_TRACKING_REQUIRED_VALUE:
|
||||
contents += " <uses-feature tools:node=\"replace\" android:name=\"oculus.software.handtracking\" android:required=\"true\" />\n"
|
||||
|
||||
# Check for passthrough
|
||||
var passthrough_mode = _get_int_option("meta_xr_features/passthrough", PASSTHROUGH_NONE_VALUE)
|
||||
if passthrough_mode == PASSTHROUGH_OPTIONAL_VALUE:
|
||||
contents += " <uses-feature tools:node=\"replace\" android:name=\"com.oculus.feature.PASSTHROUGH\" android:required=\"false\" />\n"
|
||||
elif passthrough_mode == PASSTHROUGH_REQUIRED_VALUE:
|
||||
contents += " <uses-feature tools:node=\"replace\" android:name=\"com.oculus.feature.PASSTHROUGH\" android:required=\"true\" />\n"
|
||||
|
||||
# Check for anchor api
|
||||
var use_anchor_api = _get_bool_option("meta_xr_features/use_anchor_api")
|
||||
if use_anchor_api:
|
||||
contents += " <uses-permission android:name=\"com.oculus.permission.USE_ANCHOR_API\" />\n"
|
||||
|
||||
return contents
|
||||
|
||||
|
||||
func _get_android_manifest_application_element_contents(platform, debug) -> String:
|
||||
if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
|
||||
return ""
|
||||
|
||||
var contents = ""
|
||||
|
||||
var supported_devices = "|".join(_get_supported_devices())
|
||||
contents += " <meta-data tools:node=\"replace\" android:name=\"com.oculus.supportedDevices\" android:value=\"%s\" />\n" % supported_devices
|
||||
|
||||
var hand_tracking_enabled = _get_int_option("meta_xr_features/hand_tracking", HAND_TRACKING_NONE_VALUE) > HAND_TRACKING_NONE_VALUE
|
||||
if hand_tracking_enabled:
|
||||
var hand_tracking_frequency = _get_int_option("meta_xr_features/hand_tracking_frequency", HAND_TRACKING_FREQUENCY_LOW_VALUE)
|
||||
var hand_tracking_frequency_label = "LOW" if hand_tracking_frequency == HAND_TRACKING_FREQUENCY_LOW_VALUE else "HIGH"
|
||||
contents += " <meta-data tools:node=\"replace\" android:name=\"com.oculus.handtracking.frequency\" android:value=\"%s\" />\n" % hand_tracking_frequency_label
|
||||
contents += " <meta-data tools:node=\"replace\" android:name=\"com.oculus.handtracking.version\" android:value=\"V2.0\" />\n"
|
||||
|
||||
return contents
|
||||
|
||||
func _get_android_manifest_activity_element_contents(platform, debug) -> String:
|
||||
if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
|
||||
return ""
|
||||
|
||||
var contents = """
|
||||
<intent-filter>\n
|
||||
<action android:name=\"android.intent.action.MAIN\" />\n
|
||||
<category android:name=\"android.intent.category.LAUNCHER\" />\n
|
||||
\n
|
||||
<!-- Enable access to OpenXR on Oculus mobile devices, no-op on other Android\n
|
||||
platforms. -->\n
|
||||
<category android:name=\"com.oculus.intent.category.VR\" />\n
|
||||
\n
|
||||
<!-- OpenXR category tag to indicate the activity starts in an immersive OpenXR mode. \n
|
||||
See https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category. -->\n
|
||||
<category android:name=\"org.khronos.openxr.intent.category.IMMERSIVE_HMD\" />\n
|
||||
</intent-filter>\n
|
||||
"""
|
||||
|
||||
return contents
|
20
addons/godotopenxrvendors/meta/plugin.gdextension
Normal file
20
addons/godotopenxrvendors/meta/plugin.gdextension
Normal file
|
@ -0,0 +1,20 @@
|
|||
[configuration]
|
||||
|
||||
entry_symbol = "plugin_library_init"
|
||||
compatibility_minimum = "4.2"
|
||||
android_aar_plugin = true
|
||||
|
||||
[libraries]
|
||||
|
||||
android.debug.arm64 = "res://addons/godotopenxrvendors/meta/.bin/debug/arm64-v8a/libgodotopenxrmeta.so"
|
||||
android.release.arm64 = "res://addons/godotopenxrvendors/meta/.bin/release/arm64-v8a/libgodotopenxrmeta.so"
|
||||
macos.debug = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_debug.framework"
|
||||
macos.release = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_release.framework"
|
||||
windows.debug.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_debug.x86_64.dll"
|
||||
windows.release.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_release.x86_64.dll"
|
||||
linux.debug.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.x86_64.so"
|
||||
linux.release.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.x86_64.so"
|
||||
linux.debug.arm64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.arm64.so"
|
||||
linux.release.arm64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.arm64.so"
|
||||
linux.debug.rv64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.rv64.so"
|
||||
linux.release.rv64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.rv64.so"
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,20 @@
|
|||
@tool
|
||||
extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
|
||||
|
||||
|
||||
func _get_android_manifest_activity_element_contents(platform, debug) -> String:
|
||||
if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
|
||||
return ""
|
||||
|
||||
var contents = """
|
||||
<intent-filter>\n
|
||||
<action android:name=\"android.intent.action.MAIN\" />\n
|
||||
<category android:name=\"android.intent.category.LAUNCHER\" />\n
|
||||
\n
|
||||
<!-- OpenXR category tag to indicate the activity starts in an immersive OpenXR mode. \n
|
||||
See https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category. -->\n
|
||||
<category android:name=\"org.khronos.openxr.intent.category.IMMERSIVE_HMD\" />\n
|
||||
</intent-filter>\n
|
||||
"""
|
||||
|
||||
return contents
|
7
addons/godotopenxrvendors/plugin.cfg
Normal file
7
addons/godotopenxrvendors/plugin.cfg
Normal file
|
@ -0,0 +1,7 @@
|
|||
[plugin]
|
||||
|
||||
name="GodotOpenXRVendors"
|
||||
description="Godot OpenXR Vendors plugin"
|
||||
author="https://github.com/GodotVR/godot_openxr_vendors/blob/master/CONTRIBUTORS.md"
|
||||
version="2.0.2-stable"
|
||||
script="godot_openxr_export_plugin.gd"
|
|
@ -1 +1 @@
|
|||
4.1.3.stable
|
||||
4.2.stable
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
[config]
|
||||
|
||||
name="GodotOpenXRKHR"
|
||||
binary_type="local"
|
||||
binary="godotopenxrkhr/godotopenxrkhr-release.aar"
|
||||
|
||||
[dependencies]
|
|
@ -1,14 +0,0 @@
|
|||
# Change history for the Godot OpenXR loaders asset
|
||||
|
||||
## 1.1.0
|
||||
- Update Meta OpenXR loader to version 54
|
||||
- Update PICO OpenXR loader to version 2.2.0
|
||||
- Bump dependencies versions to match the latest Godot 4.x stable version (v4.0.3)
|
||||
|
||||
## 1.0.0
|
||||
- First version
|
||||
- Added support for Meta Quest loader
|
||||
- Added support for Pico loader
|
||||
- Added support for Khronos loader (Magic Leap 2, HTC, etc.)
|
||||
- Added support for Lynx loader
|
||||
- Add logic to automatically publish the Godot OpenXR loaders libraries to mavencentral on release
|
|
@ -1,7 +0,0 @@
|
|||
[config]
|
||||
|
||||
name="GodotOpenXRLynx"
|
||||
binary_type="local"
|
||||
binary="godotopenxrlynx/godotopenxrlynx-release.aar"
|
||||
|
||||
[dependencies]
|
|
@ -1,7 +0,0 @@
|
|||
[config]
|
||||
|
||||
name="GodotOpenXRMeta"
|
||||
binary_type="local"
|
||||
binary="godotopenxrmeta/godotopenxrmeta-debug.aar"
|
||||
|
||||
[dependencies]
|
|
@ -1,7 +0,0 @@
|
|||
[config]
|
||||
|
||||
name="GodotOpenXRPico"
|
||||
binary_type="local"
|
||||
binary="godotopenxrpico/godotopenxrpico-release.aar"
|
||||
|
||||
[dependencies]
|
Binary file not shown.
Binary file not shown.
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2912c7c12f5c81475ac3e28ed67e8a7828a947418c5d5a2f892acba91ca60e3a
|
||||
size 4101566
|
||||
oid sha256:3782adb5391dac4872890ccd7c7820c6c4eb20d56031598c1f3c4d978438a914
|
||||
size 12684397
|
||||
|
|
|
@ -19,3 +19,4 @@ generate_tangents=true
|
|||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
||||
|
|
|
@ -19,3 +19,4 @@ generate_tangents=true
|
|||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
||||
|
|
|
@ -19,3 +19,4 @@ generate_tangents=true
|
|||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -3,25 +3,27 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://q4va5chi4k7f"
|
||||
path="res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.ctex"
|
||||
path.s3tc="res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.etc2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/logo-background.png"
|
||||
dest_files=["res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.ctex"]
|
||||
dest_files=["res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.s3tc.ctex", "res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
|
@ -31,4 +33,4 @@ process/normal_map_invert_y=false
|
|||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:97ebf636b842f381a15cecbfbbf8128e5ffb7171b2b3dd24e6bef7ab036a67a7
|
||||
oid sha256:9bac0d498144e58cd467f8db75da57f71b519523ac08799d2e3d75b22ba2401f
|
||||
size 361
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
3
assets/models/hands_steam/left_hand_file3.jpg
Normal file
3
assets/models/hands_steam/left_hand_file3.jpg
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a424f719450ca9bce29ba28e90712dab4e40b56e67642150379b5359475eb868
|
||||
size 9524998
|
37
assets/models/hands_steam/left_hand_file3.jpg.import
Normal file
37
assets/models/hands_steam/left_hand_file3.jpg.import
Normal file
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cru4vxblikgyo"
|
||||
path.s3tc="res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/models/hands_steam/left_hand_file3.jpg"
|
||||
dest_files=["res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.s3tc.ctex", "res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a424f719450ca9bce29ba28e90712dab4e40b56e67642150379b5359475eb868
|
||||
size 9524998
|
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhm4cfuyhv74t"
|
||||
path.s3tc="res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg"
|
||||
dest_files=["res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.s3tc.ctex", "res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
|
@ -22,6 +22,7 @@ meshes/generate_lods=true
|
|||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
|
@ -29,4 +30,5 @@ animation/trimming=false
|
|||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
3
assets/models/hands_steam/right_hand_file3.jpg
Normal file
3
assets/models/hands_steam/right_hand_file3.jpg
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a424f719450ca9bce29ba28e90712dab4e40b56e67642150379b5359475eb868
|
||||
size 9524998
|
37
assets/models/hands_steam/right_hand_file3.jpg.import
Normal file
37
assets/models/hands_steam/right_hand_file3.jpg.import
Normal file
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ddau0sqisjbpr"
|
||||
path.s3tc="res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/models/hands_steam/right_hand_file3.jpg"
|
||||
dest_files=["res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.s3tc.ctex", "res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user