5 Commits

107 changed files with 20242 additions and 252 deletions

BIN
assets/models/low_poly_weapon/g17_gen5_mos_non_texture.glb (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_0.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_0.png.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_1.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_1.png.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_2.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_2.png.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_3.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_3.png.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_4.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/gawk_p80_g17_gen1_4.png.import (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_imi_uzi.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_imi_uzi.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_kriss_vector.glb (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_m1_garand.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_m1_garand.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_sa-58_osw.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_sa-58_osw.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/low_poly_weapon/low-poly_sjogren_inertia.glb (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/models/maps/lowpoly_tdm/lowpoly_tdm_1.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/maps/lowpoly_tdm/lowpoly_tdm_1.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/maps/lowpoly_tdm/lowpoly_tdm_2.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/maps/lowpoly_tdm/lowpoly_tdm_2.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

18
godot-jolt/LICENSE.txt Normal file
View File

@ -0,0 +1,18 @@
Copyright (c) Mikael Hermansson and Godot Jolt contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

91
godot-jolt/THIRDPARTY.txt Normal file
View File

@ -0,0 +1,91 @@
Godot Jolt incorporates third-party material from the projects listed below.
Godot Engine (https://github.com/godotengine/godot)
Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md).
Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
godot-cpp (https://github.com/godot-jolt/godot-cpp)
Copyright (c) 2017-present Godot Engine contributors.
Copyright (c) 2022-present Mikael Hermansson.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
Jolt Physics (https://github.com/godot-jolt/jolt)
Copyright (c) 2021 Jorrit Rouwe.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
mimalloc (https://github.com/godot-jolt/mimalloc)
Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,41 @@
[godot-jolt]
version = "0.14.0-stable"
build = "3392156fab"
[configuration]
entry_symbol = "godot_jolt_main"
compatibility_minimum = "4.3"
compatibility_maximum = "4.3"
[libraries]
windows.release.single.x86_64 = "windows/godot-jolt_windows-x64.dll"
windows.debug.single.x86_64 = "windows/godot-jolt_windows-x64_editor.dll"
windows.release.single.x86_32 = "windows/godot-jolt_windows-x86.dll"
windows.debug.single.x86_32 = "windows/godot-jolt_windows-x86_editor.dll"
linux.release.single.x86_64 = "linux/godot-jolt_linux-x64.so"
linux.debug.single.x86_64 = "linux/godot-jolt_linux-x64_editor.so"
linux.release.single.x86_32 = "linux/godot-jolt_linux-x86.so"
linux.debug.single.x86_32 = "linux/godot-jolt_linux-x86_editor.so"
macos.release.single = "macos/godot-jolt_macos.framework"
macos.debug.single = "macos/godot-jolt_macos_editor.framework"
ios.release.single = "ios/godot-jolt_ios.framework"
ios.debug.single = "ios/godot-jolt_ios_editor.framework"
android.release.single.arm64 = "android/libgodot-jolt_android-arm64.so"
android.debug.single.arm64 = "android/libgodot-jolt_android-arm64_editor.so"
android.release.single.arm32 = "android/libgodot-jolt_android-arm32.so"
android.debug.single.arm32 = "android/libgodot-jolt_android-arm32_editor.so"
android.release.single.x86_64 = "android/libgodot-jolt_android-x64.so"
android.debug.single.x86_64 = "android/libgodot-jolt_android-x64_editor.so"
android.release.single.x86_32 = "android/libgodot-jolt_android-x86.so"
android.debug.single.x86_32 = "android/libgodot-jolt_android-x86_editor.so"

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>godot-jolt_ios</string>
<key>CFBundleName</key>
<string>Godot Jolt</string>
<key>CFBundleDisplayName</key>
<string>Godot Jolt</string>
<key>CFBundleIdentifier</key>
<string>org.godot-jolt.godot-jolt</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) Mikael Hermansson and Godot Jolt contributors.</string>
<key>CFBundleVersion</key>
<string>0.14.0</string>
<key>CFBundleShortVersionString</key>
<string>0.14.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>CSResourcesFileMapped</key>
<true/>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>MinimumOSVersion</key>
<string>12.0</string>
<!--
HACK(mihe): This is to work around a bug in Godot 4.3-beta1, where it treats Framework
bundles the same as XCFramework bundles, and expects there to be an `AvailableLibraries`
entry, which is really only a thing in XCFramework bundles. Note that we also lie about the
binary path having a `.dylib` extension in order for Godot to correctly identify this as a
dynamically linked bundle.
-->
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>godot-jolt_ios.dylib</string>
</dict>
</array>
</dict>
</plist>

Binary file not shown.

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>godot-jolt_ios_editor</string>
<key>CFBundleName</key>
<string>Godot Jolt</string>
<key>CFBundleDisplayName</key>
<string>Godot Jolt</string>
<key>CFBundleIdentifier</key>
<string>org.godot-jolt.godot-jolt</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) Mikael Hermansson and Godot Jolt contributors.</string>
<key>CFBundleVersion</key>
<string>0.14.0</string>
<key>CFBundleShortVersionString</key>
<string>0.14.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>CSResourcesFileMapped</key>
<true/>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>MinimumOSVersion</key>
<string>12.0</string>
<!--
HACK(mihe): This is to work around a bug in Godot 4.3-beta1, where it treats Framework
bundles the same as XCFramework bundles, and expects there to be an `AvailableLibraries`
entry, which is really only a thing in XCFramework bundles. Note that we also lie about the
binary path having a `.dylib` extension in order for Godot to correctly identify this as a
dynamically linked bundle.
-->
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>godot-jolt_ios_editor.dylib</string>
</dict>
</array>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>godot-jolt_macos</string>
<key>CFBundleName</key>
<string>Godot Jolt</string>
<key>CFBundleDisplayName</key>
<string>Godot Jolt</string>
<key>CFBundleIdentifier</key>
<string>org.godot-jolt.godot-jolt</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) Mikael Hermansson and Godot Jolt contributors.</string>
<key>CFBundleVersion</key>
<string>0.14.0</string>
<key>CFBundleShortVersionString</key>
<string>0.14.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CSResourcesFileMapped</key>
<true/>
<key>DTPlatformName</key>
<string>macosx</string>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
</dict>
</plist>

View File

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
et0C7sxAlu4eIDcq2ihFQ2BhDSk=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
ZnG0hD4DciikOVWrf1Ai1Qedz9hESuIFvUujZAebHRY=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>godot-jolt_macos_editor</string>
<key>CFBundleName</key>
<string>Godot Jolt</string>
<key>CFBundleDisplayName</key>
<string>Godot Jolt</string>
<key>CFBundleIdentifier</key>
<string>org.godot-jolt.godot-jolt</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) Mikael Hermansson and Godot Jolt contributors.</string>
<key>CFBundleVersion</key>
<string>0.14.0</string>
<key>CFBundleShortVersionString</key>
<string>0.14.0</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CSResourcesFileMapped</key>
<true/>
<key>DTPlatformName</key>
<string>macosx</string>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
</dict>
</plist>

View File

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
oIAzxlQz4Hun6JnLVOu9jafYxGE=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
FA6I/u5+Ww0DzXAvawYXs792eum+8Bim8uHBbg98jqY=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -11,8 +11,9 @@ config_version=5
[application]
config/name="Open Strike"
run/main_scene="res://scenes/utils/Menu.tscn"
run/main_scene="res://scenes/utils/menus/main/main_menu.tscn"
config/features=PackedStringArray("4.3", "Forward Plus")
run/max_fps=120
config/icon="res://icon.svg"
[autoload]
@ -25,6 +26,9 @@ window/size/viewport_width=1920
window/size/viewport_height=1964
window/size/mode=4
window/size/borderless=true
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
window/vsync/vsync_mode=2
[filesystem]
@ -34,6 +38,7 @@ import/blender/enabled=false
body=""
target=""
player_placeholder=""
[input]
@ -90,6 +95,7 @@ crouch={
[physics]
3d/physics_engine="JoltPhysics3D"
3d/default_gravity=15.0
[rendering]

View File

@ -1,8 +1,11 @@
extends Node3D
var owner_placeholder: CharacterBody3D = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$Body/Armature/Skeleton3D.physical_bones_start_simulation()
owner_placeholder = _get_owner()
pass # Replace with function body.
@ -12,5 +15,27 @@ func _process(delta: float) -> void:
func _on_head_collision_body_part_hit(dam: Variant) -> void:
print("head is hit")
#print("head is hit" + str(dam))
#print(owner_placeholder)
#if owner_placeholder.has_method("take_damage"):
if owner_placeholder:
owner_placeholder.take_damage(dam)
pass # Replace with function body.
func _get_owner() -> CharacterBody3D:
var owner_placeholder := find_parent("PlayerPlaceholder*")
return owner_placeholder
func die():
for child in $Body/Armature/Skeleton3D/PhysicalBoneSimulator3D.get_children():
if child is PhysicalBone3D:
child.collision_layer = 1
child.collision_mask = 1
$Body/Armature/Skeleton3D.physical_bones_stop_simulation()
$Body/Armature/Skeleton3D/PhysicalBoneSimulator3D.physical_bones_start_simulation()
func make_invisible():
$Body/Armature/Skeleton3D/Alpha_Joints.set_layer_mask_value(1, false)
$Body/Armature/Skeleton3D/Alpha_Surface.set_layer_mask_value(1, false)
$Body/Armature/Skeleton3D/Alpha_Joints.set_layer_mask_value(2, true)
$Body/Armature/Skeleton3D/Alpha_Surface.set_layer_mask_value(2, true)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=4 uid="uid://1txob6jskn5s"]
[gd_scene load_steps=28 format=4 uid="uid://1txob6jskn5s"]
[ext_resource type="Script" path="res://scenes/characters/blue/dummy.gd" id="1_cyeub"]
[ext_resource type="Script" path="res://scenes/characters/blue/head_collision.gd" id="1_lianf"]
@ -258,9 +258,70 @@ blend_shape_mode = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_j3emx"]
albedo_color = Color(0, 0, 1, 1)
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_k5bjr"]
radius = 11.245
height = 27.8
[sub_resource type="SphereShape3D" id="SphereShape3D_axep3"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0ptuo"]
radius = 11.7055
height = 28.953
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_126jt"]
radius = 3.944
height = 12.926
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1gw5y"]
radius = 10.779
height = 24.58
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_krlof"]
radius = 2.74047
height = 27.4047
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_2k34c"]
radius = 2.76145
height = 27.6145
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_5fgdh"]
radius = 5.286
height = 20.647
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_8vkyv"]
radius = 2.74047
height = 27.4047
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_fh1k4"]
radius = 2.76144
height = 27.6144
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1m8r5"]
radius = 5.286
height = 20.647
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3cygo"]
radius = 4.05994
height = 40.5994
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_vwdij"]
radius = 4.2099
height = 42.099
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_qyg6j"]
radius = 1.57216
height = 15.7216
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_a81km"]
radius = 4.05995
height = 40.5995
[sub_resource type="CylinderShape3D" id="CylinderShape3D_2binp"]
height = 42.0
radius = 3.0
[sub_resource type="CylinderShape3D" id="CylinderShape3D_l2il6"]
height = 27.0
radius = 1.75
[sub_resource type="SphereShape3D" id="SphereShape3D_wnhib"]
radius = 1.2
[sub_resource type="Animation" id="Animation_6g1lc"]
resource_name = "Run Forward"
@ -867,7 +928,7 @@ _data = {
}
[node name="Dummy" type="Node3D"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, 0, 0, 0)
script = ExtResource("1_cyeub")
[node name="Body" type="Node3D" parent="."]
@ -1048,7 +1109,7 @@ bones/24/name = "mixamorig_LeftHandRing2"
bones/24/parent = 23
bones/24/rest = Transform3D(1, 1.61871e-05, -9.45085e-08, -1.61871e-05, 1, 3.29224e-06, 9.45618e-08, -3.29224e-06, 1, 6.3543e-07, 3.60118, -1.47875e-05)
bones/24/enabled = true
bones/24/position = Vector3(-3.30613e-06, 3.60119, 1.50863e-07)
bones/24/position = Vector3(-3.30613e-06, 3.60119, 1.50864e-07)
bones/24/rotation = Quaternion(0.563924, -3.30111e-07, -0.0577891, 0.823803)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "mixamorig_LeftHandRing3"
@ -1077,7 +1138,7 @@ bones/28/parent = 27
bones/28/rest = Transform3D(1, 0.000736602, -7.57697e-07, -0.000736602, 1, 9.24707e-06, 7.64508e-07, -9.24651e-06, 1, 1.0844e-06, 4.13666, 1.41886e-05)
bones/28/enabled = true
bones/28/position = Vector3(-9.08385e-06, 4.13665, 5.47372e-06)
bones/28/rotation = Quaternion(0.433129, -6.53828e-07, -0.0443853, 0.900239)
bones/28/rotation = Quaternion(0.433129, -6.53827e-07, -0.0443853, 0.900239)
bones/28/scale = Vector3(1, 1, 1)
bones/29/name = "mixamorig_LeftHandPinky3"
bones/29/parent = 28
@ -1126,7 +1187,7 @@ bones/35/parent = 34
bones/35/rest = Transform3D(0.894428, 0.447212, -8.12113e-07, -0.387297, 0.774597, -0.500001, -0.223606, 0.447215, 0.866025, 3.00297, 3.7888, 2.16716)
bones/35/enabled = true
bones/35/position = Vector3(3.00297, 3.7888, 2.16716)
bones/35/rotation = Quaternion(0.227577, -0.0598799, -0.162411, 0.958252)
bones/35/rotation = Quaternion(0.227577, -0.0598799, -0.162411, 0.958251)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "mixamorig_RightHandThumb2"
bones/36/parent = 35
@ -1210,14 +1271,14 @@ bones/47/parent = 34
bones/47/rest = Transform3D(1, 9.66599e-06, -1.40744e-07, -9.66599e-06, 1, -2.81994e-06, 1.40717e-07, 2.81994e-06, 1, -2.21663, 12.147, -0.00999829)
bones/47/enabled = true
bones/47/position = Vector3(-2.21664, 12.147, -0.00998812)
bones/47/rotation = Quaternion(0.0911117, 0.11369, 0.100504, 0.984211)
bones/47/rotation = Quaternion(0.0911117, 0.11369, 0.100504, 0.984212)
bones/47/scale = Vector3(1, 1, 1)
bones/48/name = "mixamorig_RightHandRing2"
bones/48/parent = 47
bones/48/rest = Transform3D(1, -1.60845e-05, 3.26056e-09, 1.60845e-05, 1, 1.32059e-06, -3.2818e-09, -1.32059e-06, 1, -2.50026e-07, 3.6012, -7.75122e-07)
bones/48/enabled = true
bones/48/position = Vector3(-2.50026e-07, 3.6012, -7.75122e-07)
bones/48/rotation = Quaternion(0.836665, 8.70473e-07, 0.068157, 0.543457)
bones/48/rotation = Quaternion(0.836665, 8.70474e-07, 0.068157, 0.543457)
bones/48/scale = Vector3(1, 1, 1)
bones/49/name = "mixamorig_RightHandRing3"
bones/49/parent = 48
@ -1301,14 +1362,14 @@ bones/60/parent = 0
bones/60/rest = Transform3D(-0.999981, -0.00611455, -7.52684e-05, 0.00611501, -0.999901, -0.0126672, 2.1931e-06, -0.0126674, 0.99992, -9.12503, -6.6556, -0.0553527)
bones/60/enabled = true
bones/60/position = Vector3(-9.12503, -6.6556, -0.0553527)
bones/60/rotation = Quaternion(-0.0339456, 0.334676, 0.92684, -0.166754)
bones/60/rotation = Quaternion(-0.0339455, 0.334676, 0.92684, -0.166754)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "mixamorig_RightLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(0.99993, -0.0118315, -0.000580536, 0.0118448, 0.999271, 0.0362854, 0.000150802, -0.0362897, 0.999341, 3.28565e-07, 40.5995, 1.49012e-08)
bones/61/enabled = true
bones/61/position = Vector3(3.28565e-07, 40.5995, 1.49012e-08)
bones/61/rotation = Quaternion(-0.581827, -0.0846291, -0.0166473, 0.808727)
bones/61/rotation = Quaternion(-0.581827, -0.0846291, -0.0166473, 0.808726)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "mixamorig_RightFoot"
bones/62/parent = 61
@ -1344,7 +1405,7 @@ surface_material_override/0 = SubResource("StandardMaterial3D_j3emx")
[node name="HitCollisions" type="Node3D" parent="Body/Armature/Skeleton3D"]
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Body/Armature/Skeleton3D"]
transform = Transform3D(0.978017, -0.176546, -0.110972, 0.15839, 0.282801, 0.94601, -0.135631, -0.942791, 0.304547, -11.8203, 17.7472, -135.936)
transform = Transform3D(0.978017, -0.176546, -0.110973, 0.15839, 0.282801, 0.946011, -0.135631, -0.942791, 0.304547, -11.8203, 17.7472, -135.936)
bone_name = "mixamorig_Head"
bone_idx = 5
@ -1352,10 +1413,265 @@ bone_idx = 5
transform = Transform3D(9.90229, 1.3945, -6.09554e-08, 0, -4.37114e-07, -10, -1.3945, 9.90229, -4.32843e-07, 0.58762, 7.43451, 1.4646)
script = ExtResource("1_lianf")
[node name="Collision" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/BoneAttachment3D/HeadCollision"]
shape = SubResource("CapsuleShape3D_k5bjr")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/BoneAttachment3D/HeadCollision"]
shape = SubResource("SphereShape3D_axep3")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Body/Armature/Skeleton3D/BoneAttachment3D"]
[node name="PhysicalBoneSimulator3D" type="PhysicalBoneSimulator3D" parent="Body/Armature/Skeleton3D"]
[node name="Physical Bone mixamorig_Hips" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.8195, 12.756, -10.5629, 98.619, 1.31498, 0.290624, -87.4646)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.35312e-08, -5.58794e-09, 0.0499956)
body_offset = Transform3D(100, -0.0695305, -0.00860751, -1.19209e-05, 12.2744, -99.2438, 0.0700493, 99.2438, 12.2744, 0.00043869, 4.96175, -0.613665)
mass = 20.0
bone_name = "mixamorig_Hips"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_Hips"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0.0161502, -2.32831e-11, 1.01774e-18)
shape = SubResource("CapsuleShape3D_0ptuo")
[node name="Physical Bone mixamorig_Spine" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(80.9412, -58.546, -4.56913, 57.6046, 80.6695, -13.1964, 11.4119, 8.0493, 99.0201, 2.40599, 0.973749, -98.2036)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2222e-09, 2.2377e-09, 0.05866)
body_offset = Transform3D(100, 7.62939e-06, 9.05991e-06, 4.76837e-06, -1.90735e-06, -100, -1.52588e-05, 100, -3.8147e-06, -9.53674e-07, 5.866, 0)
mass = 20.0
bone_name = "mixamorig_Spine"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_Spine"]
transform = Transform3D(0.0318071, 3.86358e-14, 4.9738e-14, -2.13163e-14, -1.62981e-09, 0.0318071, -4.26326e-14, -0.0318071, -1.62981e-09, -0.00245133, -5.91656e-09, -0.223859)
shape = SubResource("CapsuleShape3D_126jt")
[node name="Physical Bone mixamorig_Head" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-97.8019, 4.47329, 20.366, -15.8369, -79.4709, -58.5966, 13.5638, -60.5339, 78.4325, -13.8193, 23.4986, -143.635)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.90306e-08, -1.39698e-07, 0.0981531)
body_offset = Transform3D(-100, -0.00220013, -0.000778198, -5.24521e-06, 33.8066, -94.1122, 0.00232792, -94.1122, -33.8066, 7.24792e-05, 9.23741, 3.31821)
mass = 7.0
bone_name = "mixamorig_Head"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_Head"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_1gw5y")
[node name="Physical Bone mixamorig_LeftArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(86.1165, 14.0252, -48.8594, -45.4995, 64.1262, -61.787, 22.6659, 75.4396, 61.6046, 16.1942, 31.0309, -132.592)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.65892e-08, 2.39336e-07, 0.137023)
body_offset = Transform3D(100, -3.05176e-05, -2.67029e-05, 2.09808e-05, 100, -7.62939e-06, 1.71661e-05, -3.8147e-06, 100, 0, -2.28882e-05, -13.7023)
mass = 3.0
bone_name = "mixamorig_LeftArm"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_LeftArm"]
transform = Transform3D(0.01, 0, 0, 0, 0.00997432, -0.000716193, 0, 0.000716193, 0.00997432, 4.61853e-15, 0.165399, 0.142978)
shape = SubResource("CapsuleShape3D_krlof")
[node name="Physical Bone mixamorig_LeftForeArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-48.2566, -12.058, 86.752, -78.7312, -37.4258, -48.997, 38.3757, -91.9452, 8.56699, 1.36485, 46.9033, -104.66)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.47239e-07, 6.31263e-08, 0.138072)
body_offset = Transform3D(100, 3.05176e-05, -4.19617e-05, -3.8147e-05, 0, -100, -3.8147e-06, 100, 9.53674e-06, 3.05176e-05, 13.8072, -7.62939e-06)
mass = 3.0
bone_name = "mixamorig_LeftForeArm"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_LeftForeArm"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_2k34c")
[node name="Physical Bone mixamorig_LeftHand" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(9.11563, -98.6768, 13.4089, 23.9481, -10.8976, -96.4766, 96.6612, 12.0056, 22.6379, -10.9685, 56.2242, -106.442)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.24797e-07, -1.22003e-07, 0.0264902)
body_offset = Transform3D(-58.5197, 57.9894, 56.6805, 1.62125e-05, 69.899, -71.5132, -81.0891, -41.8493, -40.9047, -1.50148, 1.89441, 1.08356)
bone_name = "mixamorig_LeftHand"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_LeftHand"]
transform = Transform3D(0.01, 0, 0, 0, 0.00697578, 0.00716509, 0, -0.00716509, 0.00697578, 9.31323e-12, 0.0631712, -0.0648856)
shape = SubResource("CapsuleShape3D_5fgdh")
[node name="Physical Bone mixamorig_RightArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(30.7246, 72.8896, 61.1809, 93.7855, -34.092, -6.48192, 16.1331, 59.3704, -78.8345, -27.5296, -1.29566, -110.13)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.63344e-08, 1.16326e-07, 0.137023)
body_offset = Transform3D(100, -5.72205e-06, 1.19209e-05, 6.67572e-06, 1.07288e-05, -100, -1.90735e-06, 100, 2.64645e-05, 0, 13.7023, -1.52588e-05)
mass = 3.0
bone_name = "mixamorig_RightArm"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_RightArm"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_8vkyv")
[node name="Physical Bone mixamorig_RightForeArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(24.3552, 37.4063, 89.4852, -25.0101, 91.5653, -31.4688, -93.7087, -14.716, 31.6563, -48.2682, 3.93749, -103.698)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40737e-07, -2.80688e-08, 0.138072)
body_offset = Transform3D(100, -1.14441e-05, 8.58307e-06, -3.8147e-06, 100, 9.53674e-06, 5.72205e-06, -5.72205e-06, 100, -1.52588e-05, 1.49012e-06, -13.8072)
mass = 3.0
bone_name = "mixamorig_RightForeArm"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_RightForeArm"]
transform = Transform3D(0.01, 0, 0, 0, 0.00999714, -0.000239087, 0, 0.000239087, 0.00999714, 2.23821e-15, 0.145694, 0.138911)
shape = SubResource("CapsuleShape3D_fh1k4")
[node name="Physical Bone mixamorig_RightHand" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(89.0767, -24.8074, -38.0781, 5.05123, 88.6726, -45.9527, 45.1645, 39.0097, 80.2397, -24.5746, 26.0951, -105.517)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.86265e-08, 2.31434e-07, 0.0264903)
body_offset = Transform3D(-58.5197, -57.9893, -56.6805, -1.19209e-05, 69.8991, -71.5131, 81.0891, -41.8492, -40.9048, 1.5015, 1.89439, 1.08359)
bone_name = "mixamorig_RightHand"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_RightHand"]
transform = Transform3D(0.01, 0, 0, 0, 0.00693402, 0.00720551, 0, -0.00720551, 0.00693402, -3.72529e-11, 0.0680192, -0.0706824)
shape = SubResource("CapsuleShape3D_1m8r5")
[node name="Physical Bone mixamorig_LeftUpLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-96.1774, -26.2683, 7.73901, -23.4203, 64.2554, -72.957, 14.1919, -71.9807, -67.9513, 5.83707, 19.601, -60.9754)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.78612e-08, -7.74374e-09, 0.202997)
body_offset = Transform3D(100, -2.86102e-05, 9.53674e-06, 7.62939e-06, 7.62939e-06, -100, 3.71933e-05, 100, 3.8147e-06, -5.72205e-06, 20.2997, 0)
mass = 5.0
bone_name = "mixamorig_LeftUpLeg"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_LeftUpLeg"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_3cygo")
[node name="Physical Bone mixamorig_LeftLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-97.5216, -11.6193, -18.8291, -22.0483, 58.1427, 78.3154, 1.84805, 80.5259, -59.2635, 8.22949, 17.9261, -34.7068)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.03053e-09, -1.30455e-08, 0.210495)
body_offset = Transform3D(100, 4.76837e-06, 1.33514e-05, 5.72205e-06, 0, -100, -9.53674e-07, 100, 1.52588e-05, -1.90735e-06, 21.0495, -1.90735e-06)
mass = 5.0
bone_name = "mixamorig_LeftLeg"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_LeftLeg"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_vwdij")
[node name="Physical Bone mixamorig_LeftFoot" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-93.6712, -34.5296, 5.78095, -34.9451, 91.207, -21.4506, 2.13418, -22.1132, -97.501, 11.7385, 3.12728, -14.5678)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.66258e-09, 5.6483e-08, 0.078608)
body_offset = Transform3D(100, 5.72205e-06, -2.38419e-06, -2.86102e-06, -1.52588e-05, -100, -5.72205e-06, 100, -3.24249e-05, 9.53674e-07, 7.8608, -3.09944e-06)
bone_name = "mixamorig_LeftFoot"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_LeftFoot"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_qyg6j")
[node name="Physical Bone mixamorig_RightUpLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-83.6898, -51.5224, 18.4786, -50.5592, 59.8312, -62.161, 20.9708, -61.3651, -76.122, -11.4062, 7.37456, -61.646)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.31228e-08, 7.74372e-09, 0.202997)
body_offset = Transform3D(100, -1.52588e-05, 7.62939e-06, 5.72205e-06, -3.8147e-06, -100, 1.14441e-05, 100, -3.8147e-06, -2.86102e-06, 20.2997, 0)
mass = 5.0
bone_name = "mixamorig_RightUpLeg"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_RightUpLeg"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CapsuleShape3D_a81km")
[node name="Physical Bone mixamorig_RightLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-91.8175, -23.5086, -31.8888, -36.0103, 83.0805, 42.437, 16.517, 50.4478, -84.7479, -8.44487, 11.0604, -28.3544)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.27453e-09, -2.4944e-07, 0.210495)
body_offset = Transform3D(100, -1.71661e-05, 1.33514e-05, -9.53674e-07, 4.19617e-05, -100, 1.90735e-05, 100, 6.86646e-05, -3.33786e-06, 21.0495, 1.04904e-05)
mass = 5.0
bone_name = "mixamorig_RightLeg"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_RightLeg"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0, 0, 0)
shape = SubResource("CylinderShape3D_2binp")
[node name="Physical Bone mixamorig_RightFoot" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-88.192, -17.3351, 43.8367, -46.8549, 42.4444, -77.4796, -5.17505, -88.8705, -45.5549, -5.17837, 8.21811, -6.93437)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.24153e-08, -2.70381e-09, 0.078608)
body_offset = Transform3D(100, 1.14441e-05, -7.62939e-06, -7.62939e-06, -1.90735e-05, -100, 0, 100, -5.72205e-05, 5.84126e-06, 7.8608, 4.76837e-06)
bone_name = "mixamorig_RightFoot"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_RightFoot"]
transform = Transform3D(0.01, 1.50737e-10, 9.12129e-10, 0, 0.00258819, 0.00965926, -4.42378e-09, -0.00965926, 0.00258819, 6.02947e-10, 0.0103528, -0.038637)
shape = SubResource("CylinderShape3D_l2il6")
[node name="Collision" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(9.83936, 0.264962, 1.76546, 0.249217, 9.58855, -2.82801, -1.76775, 2.82658, 9.42791, -12.7207, 21.3283, -142.579)
shape = SubResource("SphereShape3D_wnhib")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Body"]
libraries = {

View File

@ -1,16 +1,17 @@
extends Area3D
@export var damage: int = 100
@export var damage_multiplexer: float = 2.0
signal body_part_hit(dam)
signal body_part_hit(damage: int)
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func hit():
emit_signal("body_part_hit", damage)
func hit(base_damage: int):
var final_damage = round(base_damage * damage_multiplexer)
emit_signal("body_part_hit", final_damage)

View File

@ -1,19 +1,23 @@
[gd_scene load_steps=9 format=3 uid="uid://b10lpwfjgxds4"]
[gd_scene load_steps=11 format=3 uid="uid://b10lpwfjgxds4"]
[ext_resource type="Script" path="res://scripts/player/player_input_controller.gd" id="1_q75ai"]
[ext_resource type="Texture2D" uid="uid://oopj5mj1vdp0" path="res://assets/crosshairs/crosshair_default.png" id="2_lsd7c"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jc50w"]
radius = 0.3
margin = 0.5
radius = 0.4
height = 1.6
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_tl74a"]
properties/0/path = NodePath(".:position")
properties/0/spawn = true
properties/0/spawn = false
properties/0/replication_mode = 1
properties/1/path = NodePath(".:rotation")
properties/1/spawn = true
properties/1/spawn = false
properties/1/replication_mode = 1
properties/2/path = NodePath(".:health")
properties/2/spawn = false
properties/2/replication_mode = 2
[sub_resource type="Animation" id="Animation_falg4"]
length = 0.001
@ -72,6 +76,13 @@ _data = {
"shooting": SubResource("Animation_ah507")
}
[sub_resource type="LabelSettings" id="LabelSettings_toaij"]
font_size = 70
[sub_resource type="LabelSettings" id="LabelSettings_1j1uq"]
font_size = 100
font_color = Color(0.756874, 0, 0.223924, 1)
[node name="CharacterPlaceholder" type="CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.799455, 0)
collision_layer = 9
@ -79,13 +90,14 @@ collision_mask = 9
script = ExtResource("1_q75ai")
[node name="Collision" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0150437, 0)
shape = SubResource("CapsuleShape3D_jc50w")
[node name="PlayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_tl74a")
[node name="FirstPersonCameraMount" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.609154, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.609154, -0.209324)
[node name="Camera" type="Camera3D" parent="FirstPersonCameraMount"]
fov = 40.0
@ -96,6 +108,7 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0,
[node name="AimRay" type="RayCast3D" parent="FirstPersonCameraMount/BulletStartingPoint"]
target_position = Vector3(0, 0, 1000)
hit_from_inside = true
collide_with_areas = true
[node name="GunMount" type="Node3D" parent="FirstPersonCameraMount"]
@ -130,5 +143,23 @@ grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_lsd7c")
[node name="HealthIndicator" type="Label" parent="FirstPersonCameraMount/HUD"]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -23.0
offset_right = 40.0
grow_vertical = 0
text = "100"
label_settings = SubResource("LabelSettings_toaij")
[node name="FPS" type="Label" parent="FirstPersonCameraMount/HUD" groups=["player_placeholder"]]
layout_mode = 1
offset_right = 40.0
offset_bottom = 23.0
text = "0"
label_settings = SubResource("LabelSettings_1j1uq")
[node name="ModelMount" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.790262, 0)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,22 @@
extends Node
# This script shoud be able to find the player
var players: Dictionary = {}
func spawn_a_bullet():
# -- Get
pass
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var world: MapController = find_parent("Map")
# Get all the players on the server and add
# corresponding nodes to them
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View File

@ -0,0 +1,8 @@
[gd_scene format=3 uid="uid://sh5diukewgs5"]
[node name="BulletSpawner" type="Node3D"]
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
spawn_path = NodePath("../Node3D")
[node name="Node3D" type="Node3D" parent="."]

View File

@ -0,0 +1,84 @@
class_name MapController extends Node
@export_category("MapController")
const PLAYER_SPAWNER: String = "res://scenes/maps/base/player_spawner/player_spawner.tscn"
const OBJECT_SPAWNER: String = "res://scenes/maps/base/object_spawner/object_spawner.tscn"
var player_spawner: PlayerSpawnerController
var object_spawner: Node3D
@onready var spawn_locations: SpawnController = $SpawnLocations
func _on_player_connected(id):
if multiplayer.is_server():
GameServerManager.load_map.rpc_id(id, GameServerManager.current_map)
# add the player to the
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
# add player spawner
var err: Error = OK
err = _add_player_spawner()
if err != OK:
print("Couldn't load player spawner")
err = _add_object_spawner()
if err != OK:
print("Couldn't load object spawner")
# add objects spawner
if multiplayer.is_server():
_spawn_player(1)
else:
_request_spawn.rpc_id(1, multiplayer.get_unique_id())
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
@rpc("call_local", "reliable", "any_peer")
func _request_spawn(id: int):
_spawn_player(id)
func _spawn_player(id: int):
var char : Node3D = null
player_spawner.spawn_players(spawn_locations, id)
func _add_player_spawner() -> Error :
if not ResourceLoader.exists(PLAYER_SPAWNER):
return ERR_DOES_NOT_EXIST
var scene: PackedScene = ResourceLoader.load(PLAYER_SPAWNER)
if not scene.can_instantiate():
return ERR_CANT_OPEN
var node: Node3D = scene.instantiate()
add_child(node)
player_spawner = node
return OK
func _add_object_spawner() -> Error :
if not ResourceLoader.exists(OBJECT_SPAWNER):
return ERR_DOES_NOT_EXIST
var scene: PackedScene = ResourceLoader.load(OBJECT_SPAWNER)
if not scene.can_instantiate():
return ERR_CANT_OPEN
var node: Node3D = scene.instantiate()
add_child(node)
object_spawner = node
return OK
var bullet_amount: int = 0
func spawn_bullet(starting_point: Node3D, speed: int, damage: int):
var node: Node3D = ResourceLoader.load("res://scenes/weapon/bullet.tscn").instantiate()
node.position = starting_point.global_position
node.transform.basis = starting_point.global_transform.basis
node.name = str(bullet_amount)
node.speed = speed
node.damage = damage
bullet_amount += 1
var spawner: MultiplayerSpawner = object_spawner.find_child("MultiplayerSpawner")
var root_node: Node3D = object_spawner.find_child("Objects")
spawner.spawn(node)
root_node.add_child(node)

View File

@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://b0k17hibnhnv4"]
[node name="ObjectSpawner" type="Node3D"]
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
spawn_path = NodePath("../Objects")
spawn_limit = 10000
[node name="Objects" type="Node3D" parent="."]

View File

@ -0,0 +1,33 @@
class_name PlayerSpawnerController extends Node3D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _get_spawner() -> MultiplayerSpawner:
return $MultiplayerSpawner
func _get_root() -> Node3D:
return $Players
# -- Spawn a player node and sync it across all peers
func spawn_players(spawn_location: SpawnController, id: int) -> Error:
if multiplayer.is_server():
var char : Node3D = null
var player_data: PlayerState = GameServerManager.players[id]
char = ResourceLoader.load("res://scenes/characters/placeholder.tscn").instantiate()
char.name = "PlayerPlaceholder_" + str(player_data.id)
print(player_data)
var position = spawn_location.get_spawner(SpawnController.Sides.BLUE)
char.global_position = position
char.global_position = position
#_get_spawner().spawn(char)
_get_root().add_child(char)
return OK
return ERR_UNAUTHORIZED

View File

@ -0,0 +1,13 @@
[gd_scene load_steps=2 format=3 uid="uid://xh710fr73bid"]
[ext_resource type="Script" path="res://scenes/maps/base/player_spawner/player_spawner.gd" id="1_2hsyd"]
[node name="PlayerSpawner" type="Node3D"]
script = ExtResource("1_2hsyd")
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
_spawnable_scenes = PackedStringArray("res://scenes/characters/placeholder.tscn")
spawn_path = NodePath("../Players")
spawn_limit = 10
[node name="Players" type="Node3D" parent="."]

View File

@ -0,0 +1,11 @@
extends Node3D
var busy: bool = false
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
func choose_spawn_location() -> Vector3:
busy = true
return global_position

View File

@ -0,0 +1,52 @@
class_name SpawnController extends Node3D
@export_category("SpawnController")
@onready var blue_spawners: Node3D = $Blue
@onready var red_spawners: Node3D = $Red
const SINGLE_SPAWN_CONTROLLER_PATH = "res://scenes/maps/base/single_spawn_controller.gd"
enum Sides {BLUE, RED, UNDEFINED}
@export var side: Sides = Sides.UNDEFINED
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var single_spawn_controller: GDScript = ResourceLoader.load(SINGLE_SPAWN_CONTROLLER_PATH)
for spawn: Node3D in blue_spawners.get_children():
spawn.set_script(single_spawn_controller)
for spawn: Node3D in red_spawners.get_children():
spawn.set_script(single_spawn_controller)
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _get_available_spawn(spawn_set: Node3D) -> Node3D:
if multiplayer.is_server():
var spawns: Array[Node3D] = []
for spawn: Node3D in spawn_set.get_children():
if not spawn.busy:
spawns.push_back(spawn)
print(spawns.size())
var random_index: int = randi_range(0, spawns.size() - 1)
print(random_index)
return spawns[random_index]
return null
func get_spawner(team: Sides) -> Vector3:
match team:
Sides.BLUE:
var spawn := _get_available_spawn(blue_spawners)
return spawn.choose_spawn_location()
Sides.RED:
print("red")
return Vector3(0,0,0)
_:
print("хз")
return Vector3(0,0,0)
# Get all spawners for each team

View File

@ -1,32 +0,0 @@
extends Node3D
var player_side: String
@onready var intro_camera = $Intro/CameraMount/IntroCamera
@onready var intro_view_port = $Intro/CameraMount/IntroCamera/SubViewportContainer/SubViewport
@onready var spawns = $Spawns
@onready var root = $'.'
@onready var players = $Players
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var char : Node3D = null
var red_spawn: Node3D = $Spawns/Blue/SpawnArea
var position := red_spawn.global_position
if multiplayer.is_server():
for i in GameServerManager.players:
char = ResourceLoader.load("res://scenes/characters/placeholder.tscn").instantiate()
char.name = str(GameServerManager.players[i].name)
char.global_position = position
var my_random_number = RandomNumberGenerator.new().randf_range(0.0, 5.0)
char.global_position = position
char.global_position.x += my_random_number
char.global_position.y += 300 + my_random_number
char.global_position.z += my_random_number
$MultiplayerSpawner.spawn(char)
players.add_child(char)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View File

@ -1,24 +0,0 @@
extends Node3D
var target_node_name: String = "TargetNode" # Name of the Node3D to detect
@onready var raycast : RayCast3D = $CameraMount/Camera3D/RayCast3D
@onready var camera : Camera3D = $CameraMount/Camera3D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
var blue := $ChooseTeam/Blue
var red := $ChooseTeam/Read
if
if raycast.is_colliding():
var collider = raycast.get_collider()
if collider and collider.name == target_node_name:
print("Mouse is pointing at:", collider.name)
else:
print("Mouse is not pointing at the target node.")
else:
print("Mouse is not pointing at anything.")

View File

@ -1,15 +1,59 @@
[gd_scene load_steps=81 format=4 uid="uid://c1v6kb00y77ij"]
[ext_resource type="Script" path="res://scenes/maps/el_test.gd" id="1_d5e7i"]
[ext_resource type="Texture2D" uid="uid://60qg81svnxfd" path="res://assets/models/maps/el_test_Image_0.png" id="2_o6seo"]
[ext_resource type="Texture2D" uid="uid://blj7gvw33u8qd" path="res://assets/models/maps/el_test_Image_1.png" id="3_7c4ej"]
[ext_resource type="Texture2D" uid="uid://to0g5ktan37x" path="res://assets/models/maps/el_test_Image_2.png" id="4_03be1"]
[ext_resource type="Script" path="res://scenes/maps/csg_box_3d.gd" id="5_3oqpw"]
[ext_resource type="Texture2D" uid="uid://60qg81svnxfd" path="res://assets/models/maps/el_test_Image_0.png" id="2_hsvct"]
[ext_resource type="Texture2D" uid="uid://blj7gvw33u8qd" path="res://assets/models/maps/el_test_Image_1.png" id="3_1mmpv"]
[ext_resource type="Texture2D" uid="uid://to0g5ktan37x" path="res://assets/models/maps/el_test_Image_2.png" id="4_r2n1c"]
[sub_resource type="GDScript" id="GDScript_fyi6q"]
script/source = "extends Node3D
var player_side: String
@onready var intro_camera = $Intro/CameraMount/IntroCamera
@onready var intro_view_port = $Intro/CameraMount/IntroCamera/SubViewportContainer/SubViewport
@onready var spawns = $Spawns
@onready var root = $'.'
@onready var players = $Players
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var char : Node3D = null
var red_spawn: Node3D = $Spawns/Blue/SpawnArea
var position := red_spawn.global_position
if multiplayer.is_server():
for i in GameServerManager.players:
char = ResourceLoader.load(\"res://scenes/characters/placeholder.tscn\").instantiate()
char.name = \"PlayerPlaceholder_\" + str(GameServerManager.players[i].name)
char.global_position = position
var my_random_number = RandomNumberGenerator.new().randf_range(0.0, 5.0)
char.global_position = position
char.global_position.x += my_random_number
char.global_position.y += 300 + my_random_number
char.global_position.z += my_random_number
$MultiplayerSpawner.spawn(char)
players.add_child(char)
var bullet_amount: int = 0
func spawn_bullet(starting_point: Node3D, speed: int, damage: int):
var node: Node3D = ResourceLoader.load(\"res://scenes/weapon/bullet.tscn\").instantiate()
node.position = starting_point.global_position
node.transform.basis = starting_point.global_transform.basis
node.name = str(bullet_amount)
node.speed = speed
node.damage = damage
bullet_amount += 1
#$BulletSpawner.spawn(node)
$Bullets.add_child(node)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1on1b"]
resource_name = "Orange_Playground_Base_Color"
cull_mode = 2
albedo_texture = ExtResource("2_o6seo")
albedo_texture = ExtResource("2_hsvct")
roughness = 0.6
[sub_resource type="ArrayMesh" id="ArrayMesh_q7wvg"]
@ -365,7 +409,7 @@ data = PackedVector3Array(-500, 400, 600, -500, 400, 0, 0, 400, 0, 0, 0, 0, -500
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_om6jd"]
resource_name = "Orange_Playground_Base_Color_1"
cull_mode = 2
albedo_texture = ExtResource("2_o6seo")
albedo_texture = ExtResource("2_hsvct")
roughness = 0.6
[sub_resource type="ArrayMesh" id="ArrayMesh_fmd3a"]
@ -651,7 +695,7 @@ data = PackedVector3Array(0, 400, -500, 0, 400, 200, -500, 400, 200, -500, 0, 20
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pvao0"]
resource_name = "Black_1"
cull_mode = 2
albedo_texture = ExtResource("3_7c4ej")
albedo_texture = ExtResource("3_1mmpv")
roughness = 0.6
[sub_resource type="ArrayMesh" id="ArrayMesh_ge1ay"]
@ -692,7 +736,7 @@ data = PackedVector3Array(100, 0, 100, 0, 100, 100, 100, 100, 100, 100, 0, 100,
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_oplpo"]
resource_name = "Black_2"
cull_mode = 2
albedo_texture = ExtResource("4_03be1")
albedo_texture = ExtResource("4_r2n1c")
roughness = 0.6
[sub_resource type="ArrayMesh" id="ArrayMesh_lnk4o"]
@ -835,13 +879,41 @@ shadow_mesh = SubResource("ArrayMesh_s0g2b")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_1uclv"]
data = PackedVector3Array(0, 0, 100, -100, 100, 100, 0, 100, 100, 0, 0, 100, -100, 0, 100, -100, 100, 100, -100, 0, 100, -100, 100, 0, -100, 100, 100, -100, 0, 100, -100, 0, 0, -100, 100, 0, -100, 0, 0, 0, 100, 0, -100, 100, 0, -100, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 100, 100, 0, 100, 0, 0, 0, 0, 0, 0, 100, 0, 100, 100, 0, 100, 100, -100, 100, 0, 0, 100, 0, 0, 100, 100, -100, 100, 100, -100, 100, 0, 0, 0, 0, -100, 0, 100, 0, 0, 100, 0, 0, 0, -100, 0, 0, -100, 0, 100)
[sub_resource type="Environment" id="Environment_ru18i"]
glow_enabled = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0rtro"]
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_vtlae"]
[sub_resource type="GDScript" id="GDScript_js4tj"]
script/source = "extends CSGBox3D
var health = 5
@export var color: Color = Color(0, 0, 0)
var colors = [Color(1.0, 0.0, 0.0, 1.0),
Color(0.0, 1.0, 0.0, 1.0),
Color(0.0, 0.0, 1.0, 0.0)]
func take_damage():
color = Color(randf(), randf(), randf())
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
material_override.albedo_color = color
if health < 1:
queue_free()
"
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_bhqft"]
properties/0/path = NodePath("CSGBox3D:color")
properties/0/spawn = true
properties/0/replication_mode = 1
[node name="ElTest" type="Node3D"]
script = ExtResource("1_d5e7i")
script = SubResource("GDScript_fyi6q")
[node name="Light" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.508004, 0.861354, 0, -0.861354, 0.508004, 0, 2.97783, 2.62213)
@ -1165,8 +1237,12 @@ shape = SubResource("ConcavePolygonShape3D_1uclv")
[node name="CSGBox3D" type="CSGBox3D" parent="Map" groups=["target"]]
transform = Transform3D(1, 0, 0, 0, 1.48122, 0, 0, 0, 1, 2.17806, 1.80141, 0)
material_override = SubResource("StandardMaterial3D_0rtro")
use_collision = true
script = ExtResource("5_3oqpw")
script = SubResource("GDScript_js4tj")
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="Map"]
replication_config = SubResource("SceneReplicationConfig_bhqft")
[node name="Spawns" type="Node3D" parent="."]
@ -1190,6 +1266,9 @@ spawn_limit = 4
[node name="Players" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.72051, 0)
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_ru18i")
camera_attributes = SubResource("CameraAttributesPractical_vtlae")
[node name="Bullets" type="Node3D" parent="."]
[node name="Objects" type="Node3D" parent="."]
[node name="ObjectsSpawner" type="MultiplayerSpawner" parent="."]
spawn_path = NodePath("../Objects")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,76 +0,0 @@
[gd_scene load_steps=14 format=3 uid="uid://hivk5ek6u887"]
[ext_resource type="Texture2D" uid="uid://c5uytbu1wc1bq" path="res://addons/kenney_prototype_textures/orange/texture_09.png" id="1_llm1c"]
[ext_resource type="Texture2D" uid="uid://e4nd8b6f0tw7" path="res://addons/kenney_prototype_textures/dark/texture_04.png" id="2_k2arh"]
[ext_resource type="PackedScene" uid="uid://1j5ajc26w5xk" path="res://scenes/utils/character_bak.tscn" id="3_6anfg"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bcdcw"]
albedo_texture = ExtResource("1_lae2b")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p4psn"]
albedo_texture = ExtResource("2_7newm")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0jiki"]
albedo_texture = ExtResource("2_7newm")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1pwnn"]
albedo_texture = ExtResource("2_7newm")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1yo6k"]
albedo_texture = ExtResource("2_7newm")
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_3aaun"]
[sub_resource type="Sky" id="Sky_xco2g"]
sky_material = SubResource("ProceduralSkyMaterial_3aaun")
[sub_resource type="Environment" id="Environment_5t2t5"]
background_mode = 2
sky = SubResource("Sky_xco2g")
sdfgi_enabled = true
fog_light_energy = 0.52
fog_density = 0.1387
volumetric_fog_enabled = true
volumetric_fog_density = 0.0
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_32hnm"]
[node name="TestMap" type="Node3D"]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 50, 0)
[node name="World" type="Node3D" parent="."]
[node name="Base" type="Node3D" parent="World"]
[node name="Floor" type="CSGBox3D" parent="World/Base"]
use_collision = true
size = Vector3(100, 1, 100)
[node name="Wall_1" type="CSGBox3D" parent="World/Base"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 0, 0)
material_override = SubResource("StandardMaterial3D_p4psn")
use_collision = true
size = Vector3(1, 20, 100)
[node name="Wall_2" type="CSGBox3D" parent="World/Base"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 0, 0)
material_override = SubResource("StandardMaterial3D_0jiki")
use_collision = true
size = Vector3(1, 20, 100)
[node name="Wall_3" type="CSGBox3D" parent="World/Base"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 50)
material_override = SubResource("StandardMaterial3D_1pwnn")
use_collision = true
size = Vector3(100, 20, 1)
[node name="Wall_4" type="CSGBox3D" parent="World/Base"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -50)
material_override = SubResource("StandardMaterial3D_1yo6k")
use_collision = true
size = Vector3(100, 20, 1)
[node name="Character" parent="World" instance=ExtResource("3_6anfg")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 14.6432, 0)

View File

@ -0,0 +1,14 @@
class_name PlayerState extends Object
@export_category("PlayerState")
# -- Player's metadata
var name: String
var id: int
# -- Player's in-game data
var health: int
var current_weapon_slot: int
func init(id: int, name: String):
id = id
name = name

View File

@ -35,6 +35,21 @@ offset_right = 224.0
offset_bottom = 220.0
text = "Join"
[node name="TextEdit" type="TextEdit" parent="."]
layout_mode = 0
offset_left = 238.0
offset_top = 151.0
offset_right = 497.0
offset_bottom = 220.0
text = "192.168.0.28"
[node name="Maps" type="ItemList" parent="."]
layout_mode = 0
offset_left = 995.0
offset_top = 111.0
offset_right = 1595.0
offset_bottom = 624.0
[connection signal="player_connected" from="." to="." method="_on_player_connected"]
[connection signal="player_disconnected" from="." to="." method="_on_player_disconnected"]
[connection signal="server_disconnected" from="." to="." method="_on_server_disconnected"]

View File

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bo8jemggniu3c"]
[ext_resource type="PackedScene" uid="uid://c1v6kb00y77ij" path="res://scenes/maps/el_test.tscn" id="1_25xw6"]
[ext_resource type="PackedScene" uid="uid://c1v6kb00y77ij" path="res://scenes/maps/maps/el_test.tscn" id="1_25xw6"]
[node name="ChooseTeam" type="Node3D"]

View File

@ -1,18 +1,11 @@
extends Node3D
const SPEED = 715
@onready var mesh = $Object_10
extends Control
@onready =
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
position += transform.basis * Vector3(0, 0, SPEED) * delta
func _on_timer_timeout():
queue_free()
func _process(delta: float) -> void:
pass

View File

@ -0,0 +1,55 @@
[gd_scene load_steps=5 format=3 uid="uid://c137wl6ls3knx"]
[ext_resource type="Script" path="res://scenes/utils/in_game_hud.gd" id="1_sttf0"]
[ext_resource type="Texture2D" uid="uid://oopj5mj1vdp0" path="res://assets/crosshairs/crosshair_default.png" id="2_fjr6q"]
[sub_resource type="LabelSettings" id="LabelSettings_ds4qb"]
font_size = 70
[sub_resource type="LabelSettings" id="LabelSettings_vhjwu"]
font_size = 100
font_color = Color(0.756874, 0, 0.223924, 1)
[node name="InGameHud" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_sttf0")
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -28.0
offset_top = -36.0
offset_right = 44.0
offset_bottom = 36.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_fjr6q")
[node name="HealthIndicator" type="Label" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 8.0
offset_top = -96.0
offset_right = 128.0
grow_vertical = 0
text = "100"
label_settings = SubResource("LabelSettings_ds4qb")
[node name="FPS" type="Label" parent="." groups=["player_placeholder"]]
layout_mode = 1
offset_left = 8.0
offset_right = 65.0
offset_bottom = 137.0
text = "0"
label_settings = SubResource("LabelSettings_vhjwu")

View File

@ -10,7 +10,7 @@ signal server_disconnected
const PORT = 7000
const DEFAULT_SERVER_IP = "127.0.0.1" # IPv4 localhost
const MAX_CONNECTIONS = 20
@onready var address_input: TextEdit = $TextEdit
var players = {}
var my_random_number = RandomNumberGenerator.new().randf_range(-2.0, 2.0)
var player_info = {"name": str(my_random_number)}
@ -24,9 +24,16 @@ func _ready() -> void:
multiplayer.connection_failed.connect(_on_connected_fail)
multiplayer.server_disconnected.connect(_on_server_disconnected)
var map_dir := DirAccess.open("res://scenes/maps/maps/")
if map_dir:
map_dir.list_dir_begin()
var file_name = map_dir.get_next()
while file_name != "":
$Maps.add_item(file_name)
file_name = map_dir.get_next()
func join_game(address = ""):
if address.is_empty():
address = DEFAULT_SERVER_IP
address = address_input.text
var peer = ENetMultiplayerPeer.new()
var error = peer.create_client(address, PORT)
if error:
@ -51,7 +58,12 @@ func remove_multiplayer_peer():
# do Lobby.load_game.rpc(filepath)
@rpc("call_local", "reliable")
func load_game():
get_tree().change_scene_to_file("res://scenes/maps/el_test.tscn")
var chosen_map_index = $Maps.get_selected_items()[0]
var chosen_map = $Maps.get_item_text(chosen_map_index)
print(chosen_map)
var path_tmpl := "res://scenes/maps/maps/%s"
var path := path_tmpl % chosen_map
get_tree().change_scene_to_file(path)
# Every peer will call this when they have loaded the game scene.
@rpc("any_peer", "call_local", "reliable")
@ -66,7 +78,7 @@ func player_loaded():
# When a peer connects, send them my player info.
# This allows transfer of all desired data for each player, not only the unique ID.
func _on_player_connected(id):
player_info = {"name": multiplayer.get_unique_id()}
player_info = {"name": multiplayer.get_unique_id(), "health": 100}
_register_player.rpc_id(1, multiplayer.get_unique_id(), player_info)
@rpc("any_peer", "reliable")
@ -104,7 +116,7 @@ func _on_server_disconnected():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _on_host_pressed() -> void:
player_info = {"name": str(1)}
player_info = {"name": str(1), "health": 100}
_register_player(1, player_info)
create_game()

View File

@ -0,0 +1,60 @@
extends Node
var player_manager: PlayerManager = PlayerManager.new()
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var map_dir := DirAccess.open("res://scenes/maps/maps/")
if map_dir:
map_dir.list_dir_begin()
var file_name = map_dir.get_next()
while file_name != "":
$UI/CreateServer/Maps.add_item(file_name)
file_name = map_dir.get_next()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_create_server_pressed() -> void:
$UI/CreateServer.visible = true
func _on_join_server_pressed() -> void:
$UI/JoinServer.visible = true
func _on_create_button_pressed() -> void:
var chosen_map_index = $UI/CreateServer/Maps.get_selected_items()[0]
var chosen_map = $UI/CreateServer/Maps.get_item_text(chosen_map_index)
var path_tmpl := "res://scenes/maps/maps/%s"
var path := path_tmpl % chosen_map
GameServerManager.current_map = path
var err := GameServerManager.create_server(player_manager)
if err != OK:
print("couldn't create a server")
$UI.hide()
change_level.call_deferred(load(path))
# Call this function deferred and only on the main authority (server).
func change_level(scene: PackedScene):
# Remove old level if any.
var level = $LevelLoader/CurrentLevel
for c in level.get_children():
level.remove_child(c)
c.queue_free()
# Add new level.
level.add_child(scene.instantiate())
func _on_text_edit_text_changed() -> void:
player_manager.name = $UI/TextEdit.text
func _on_join_button_pressed() -> void:
$UI.hide()
GameServerManager.join_server(player_manager, $UI/JoinServer/IP.text, $UI/JoinServer/Port.text.to_int())

View File

@ -0,0 +1,145 @@
[gd_scene load_steps=2 format=3 uid="uid://s48rpcadnn47"]
[ext_resource type="Script" path="res://scenes/utils/menus/main/main_menu.gd" id="1_yi7ba"]
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_yi7ba")
[node name="LevelLoader" type="Node3D" parent="."]
[node name="CurrentLevel" type="Node3D" parent="LevelLoader"]
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="LevelLoader"]
_spawnable_scenes = PackedStringArray("res://scenes/maps/maps/lowpoly_tdm_2.tscn")
spawn_path = NodePath("../CurrentLevel")
spawn_limit = 1
[node name="UI" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="MainButtons" type="Control" parent="UI"]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
[node name="CreateServer" type="Button" parent="UI/MainButtons"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -4.0
offset_right = 4.0
offset_bottom = 8.0
grow_horizontal = 2
text = "Create Server"
[node name="JoinServer" type="Button" parent="UI/MainButtons"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = 90.0
offset_top = 3.0
offset_right = 203.0
offset_bottom = 34.0
grow_horizontal = 2
text = "Join Server"
[node name="CreateServer" type="Control" parent="UI"]
visible = false
layout_mode = 1
anchors_preset = 11
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -512.0
grow_horizontal = 0
grow_vertical = 2
[node name="Maps" type="ItemList" parent="UI/CreateServer"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -214.0
offset_top = -905.0
offset_right = 234.0
offset_bottom = -386.0
grow_horizontal = 2
grow_vertical = 2
[node name="CreateButton" type="Button" parent="UI/CreateServer"]
layout_mode = 0
offset_left = 236.0
offset_top = 643.0
offset_right = 282.0
offset_bottom = 674.0
text = "Start"
[node name="JoinServer" type="Control" parent="UI"]
visible = false
layout_mode = 1
anchors_preset = 11
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -567.0
grow_horizontal = 0
grow_vertical = 2
[node name="JoinButton" type="Button" parent="UI/JoinServer"]
layout_mode = 0
offset_left = 205.0
offset_top = 187.0
offset_right = 251.0
offset_bottom = 218.0
text = "Start"
[node name="IP" type="TextEdit" parent="UI/JoinServer"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -240.5
offset_right = 240.5
offset_bottom = 58.0
grow_horizontal = 2
text = "127.0.0.1"
[node name="Port" type="TextEdit" parent="UI/JoinServer"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -230.0
offset_top = 69.0
offset_right = 228.0
offset_bottom = 129.0
grow_horizontal = 2
text = "27015"
[node name="TextEdit" type="TextEdit" parent="UI"]
layout_mode = 1
offset_right = 481.0
offset_bottom = 58.0
text = "Player Name"
[connection signal="pressed" from="UI/MainButtons/CreateServer" to="." method="_on_create_server_pressed"]
[connection signal="pressed" from="UI/MainButtons/JoinServer" to="." method="_on_join_server_pressed"]
[connection signal="pressed" from="UI/CreateServer/CreateButton" to="." method="_on_create_button_pressed"]
[connection signal="pressed" from="UI/JoinServer/JoinButton" to="." method="_on_join_button_pressed"]
[connection signal="text_changed" from="UI/TextEdit" to="." method="_on_text_edit_text_changed"]

View File

@ -1,7 +1,7 @@
extends Node3D
const SPEED = 715
@export var speed: int = 0
@export var damage: int = 0
@onready var mesh = $RigidBody3D/MeshInstance3D
@onready var rigid_body_3d: RigidBody3D = $RigidBody3D
@onready var ray = $RigidBody3D/RayCast3D
@ -14,12 +14,19 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
position += transform.basis * Vector3(0, 0, SPEED) * delta
var time_per_frame: float = 1 / Engine.get_frames_per_second()
var distance: float = time_per_frame * speed * 1.5
ray.target_position.z = distance
position += transform.basis * Vector3(0, 0, speed) * delta
rigid_body_3d.set_use_continuous_collision_detection(true)
#ray.collision_mask = 1
#ray.enabled = 1
ray.target_position.z = SPEED / Engine.get_frames_per_second()
if ray.is_colliding():
var collider = ray.get_collider()
if collider != null and collider.is_in_group("target"):
ray.get_collider().take_damage()
if collider != null and collider.is_in_group("body"):
ray.get_collider().hit(damage)
rigid_body_3d.visible = false
particles.emitting = true
#if ray.get_collider().is_in_group("body"):

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://b0agqeg53tey5"]
[gd_scene load_steps=9 format=3 uid="uid://b0agqeg53tey5"]
[ext_resource type="Script" path="res://scenes/weapon/bullet.gd" id="1_th28m"]
@ -30,7 +30,16 @@ linear_accel_max = 6.67
[sub_resource type="BoxMesh" id="BoxMesh_mfkmi"]
size = Vector3(0.05, 0.05, 0.05)
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_b8q4c"]
properties/0/path = NodePath(".:position")
properties/0/spawn = true
properties/0/replication_mode = 0
properties/1/path = NodePath(".:rotation")
properties/1/spawn = true
properties/1/replication_mode = 0
[node name="Bullet" type="Node3D"]
transform = Transform3D(20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0)
script = ExtResource("1_th28m")
[node name="RigidBody3D" type="RigidBody3D" parent="."]
@ -62,11 +71,14 @@ shape = SubResource("CylinderShape3D_l3sdq")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.18476)
material_override = SubResource("StandardMaterial3D_ynv38")
emitting = false
amount = 10
amount = 100
lifetime = 6.29
one_shot = true
explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_58cgi")
draw_pass_1 = SubResource("BoxMesh_mfkmi")
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_b8q4c")
[connection signal="timeout" from="RigidBody3D/Timer" to="." method="_on_timer_timeout"]

View File

@ -0,0 +1,29 @@
class_name WeaponController extends Node3D
@export_category("WeaponController")
# ---------------------------------------------------------------------
# Main weapon params
# ---------------------------------------------------------------------
@export var damage: int = 0
# cooldown interval in seconds
@export var cooldown: float = 0
# bullet speed in m/s
@export var bullet_speed: int = 10000
@export var bullet_spread_script: GDScript
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
@onready var bullet_trace_distance: Node3D = $BulletTraceDistance
@onready var bullet_trail_end: Node3D = $BulletTrailEnd
@onready var gun_animation = $ShotAnimation
func shoot():
gun_animation.play("cut")
# -- TODO: It should not be hardcoded
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View File

@ -1,6 +1,4 @@
[gd_scene load_steps=5 format=4 uid="uid://dn6imke7vnimn"]
[ext_resource type="Script" path="res://scenes/weapon/guns/ak/bullet.gd" id="1_rbbkb"]
[gd_scene load_steps=4 format=4 uid="uid://dn6imke7vnimn"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ledbj"]
resource_name = "stell"
@ -45,7 +43,6 @@ shadow_mesh = SubResource("ArrayMesh_mgmay")
[node name="Bullet" type="Node3D"]
transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0)
script = ExtResource("1_rbbkb")
[node name="Object_10" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)

View File

@ -1,10 +0,0 @@
extends MeshInstance3D
var trail_length = 2.0
var speed = 10.0
func _process(delta):
global_transform.origin += transform.basis.z * speed * delta
scale.x = max(scale.x - delta, 100)
scale.y = max(scale.y - delta, 100)
scale.z = max(scale.z - delta, 100)

View File

@ -6,7 +6,6 @@ func _ready() -> void:
pass # Replace with function body.
@onready var bullet_trace_distance: Node3D = $BulletTraceDistance
@onready var bullet_trail_end: Node3D = $BulletTrailEnd
func shoot() -> Error:
var bullet_start_node: Node3D = bullet_trace_distance.find_child("Start")
var bullet_end_node: Node3D = bullet_trace_distance.find_child("End")
@ -19,9 +18,9 @@ func shoot() -> Error:
return ERR_CANT_OPEN
var node: MeshInstance3D = scene.instantiate()
node.init(bullet_start_node.global_position, bullet_end_node.global_position)
var root := get_tree().get_root()
root.add_child(node)
node.init(bullet_start_node.position, bullet_end_node.position)
#var root := get_tree().get_root()
bullet_start_node.add_child(node)
return OK
else:
push_warning("Couldn't generate a bullet trace, no distance node found")

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=55 format=4 uid="uid://dtvo21mk1webd"]
[ext_resource type="Script" path="res://scenes/weapon/guns/ak/with_hands.gd" id="1_2iqts"]
[ext_resource type="PackedScene" uid="uid://dab7jttp7ywfh" path="res://scenes/weapon/guns/ak/gun.tscn" id="1_aaafm"]
[ext_resource type="Script" path="res://scenes/weapon/generic_weapon_controller.gd" id="1_h1xyo"]
[ext_resource type="PackedScene" uid="uid://bjyltbtx45cqs" path="res://scenes/weapon/misc/bullet_trace_distance.tscn" id="3_5ff4y"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tg27p"]
@ -553,7 +553,7 @@ blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_he3sr")
[node name="WithHands" type="Node3D"]
script = ExtResource("1_2iqts")
script = ExtResource("1_h1xyo")
[node name="Gun" parent="." instance=ExtResource("1_aaafm")]

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,801 @@
[gd_scene load_steps=57 format=4 uid="uid://dlvij37gbgxi5"]
[ext_resource type="Script" path="res://scenes/weapon/generic_weapon_controller.gd" id="1_4mygo"]
[ext_resource type="PackedScene" uid="uid://c8jighp7wg68d" path="res://scenes/weapon/guns/boxing/gun.tscn" id="1_kae7b"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_238tw"]
[sub_resource type="ArrayMesh" id="ArrayMesh_1a46o"]
_surfaces = [{
"aabb": AABB(-0.906388, -0.431576, -2.04595, 1.81486, 0.733817, 2.13),
"format": 34896613377,
"index_count": 660,
"index_data": PackedByteArray("XgBKAB0AXgAAAEoAOQABAGIAOQBSAAEAVgBqAAMAVgArAGoAAgARAEYAAgBuABEATQAtAFUATQAkAC0AFwBfAB4AFwBbAF8AJQBrACwAJQBnAGsATwBVAFMATwBNAFUAWQA7AGEAWQAyADsAUgADAAEAUgBWAAMAWABQADQAWAAEAFAABABMAFAABAAGAEwAZQAQAG0AZQAJABAAAABGAEoAAAACAEYAQwBJAEcAQwBBAEkABQAGAAQABQAHAAYAQQAfAEkAQQAWAB8AYgAAAF4AYgABAAAAWwBhAF8AWwBZAGEAAQACAAAAAQADAAIAQAAHAAUAQABEAAcAZwBtAGsAZwBlAG0AMwBTADoAMwBPAFMACgBHAA8ACgBDAEcAAwBuAAIAAwBqAG4ABgAmAEwABgBoACYABwBoAAYABwBkAGgAGAAFAFwAGABAAAUAXAAEAFgAXAAFAAQACAAMAAsACAAOAAwACQAMAA0ACQALAAwACgAMAA4ACgANAAwADwATABIADwAVABMAEAATABQAEAASABMAEQATABUAEQAUABMAFgAaABkAFgAcABoAFwAaABsAFwAZABoAGAAaABwAGAAbABoAHQAhACAAHQAjACEAHgAhACIAHgAgACEAHwAhACMAHwAiACEAJAAoACcAJAAqACgAJQAoACkAJQAnACgAJgAoACoAJgApACgAKwAvAC4AKwAxAC8ALAAvADAALAAuAC8ALQAvADEALQAwAC8AMgA2ADUAMgA4ADYAMwA2ADcAMwA1ADYANAA2ADgANAA3ADYAOQA9ADwAOQA/AD0AOgA9AD4AOgA8AD0AOwA9AD8AOwA+AD0ARAAOAAgARABFAA4ARQAKAA4ARQBDAAoACQASABAACQANABIADQAPABIADQAKAA8ASgAjAB0ASgBLACMASwAfACMASwBJAB8AHgAZABcAHgAiABkAIgAWABkAIgAfABYAXAAbABgAXABdABsAXQAXABsAXQBbABcAYgA/ADkAYgBjAD8AYwA7AD8AYwBhADsAOgA1ADMAOgA+ADUAPgAyADUAPgA7ADIAUAA3ADQAUABRADcAUQAzADcAUQBPADMAVgAxACsAVgBXADEAVwAtADEAVwBVAC0ALAAnACUALAAwACcAMAAkACcAMAAtACQAaAApACYAaABpACkAaQAlACkAaQBnACUAbgAUABEAbgBvABQAbwAQABQAbwBtABAAGABCAEAAGAAcAEIAHABBAEIAHAAWAEEAQABFAEQAQABCAEUAQgBDAEUAQgBBAEMAEQBIAEYAEQAVAEgAFQBHAEgAFQAPAEcARgBLAEoARgBIAEsASABJAEsASABHAEkAJgBOAEwAJgAqAE4AKgBNAE4AKgAkAE0ATABRAFAATABOAFEATgBPAFEATgBNAE8AOQBUAFIAOQA8AFQAPABTAFQAPAA6AFMAUgBXAFYAUgBUAFcAVABVAFcAVABTAFUANABaAFgANAA4AFoAOABZAFoAOAAyAFkAWABdAFwAWABaAF0AWgBbAF0AWgBZAFsAHQBgAF4AHQAgAGAAIABfAGAAIAAeAF8AXgBjAGIAXgBgAGMAYABhAGMAYABfAGEACABmAGQACAALAGYACwBlAGYACwAJAGUAZABpAGgAZABmAGkAZgBnAGkAZgBlAGcAKwBsAGoAKwAuAGwALgBrAGwALgAsAGsAagBvAG4AagBsAG8AbABtAG8AbABrAG0ARABkAAcARAAIAGQA"),
"lods": [0.205545, PackedByteArray("XgBKACAAIABgAF4AXgBgAGMAXgBjAGIAYgBKAF4AYgBjAD8AYgA/AD0AYgA9AEoASgAjACAAIAAjACEASgBLACMAPQBGAEoARgBLAEoARgBIAEsAPQBuAEYAFQBIAEYARgBuABUAbgAUABUAFQAUABMAbgBvABQAPQBqAG4AagBvAG4AagBsAG8APQAuAGoALgBsAGoAGwBbAF8AIABfAGAAIAAbAF8AGwAgACEAGwAhACIAXQBbABsAGwAiABkAGwAZABoAIgAjABkAIwAiACEAIwAaABkAIwAcABoAWgBbAF0AWgBZAFsAHAAjAEEAHABBAEIAQQAjAEkASwBJACMASABJAEsASABHAEkAQwBBAEkAQwBJAEcAQgBBAEMAQgBDAEUADgBDAEcARQBDAA4ADgBHABUAFQBHAEgADQAOABUADgANAAwAFQATAA0AKABrAC4ALgBrAGwALgAvACgAKAAvAC4AaQAoACkAaQBnACgAKABnAGsAZgBnAGkAZgBlAGcAZwBtAGsAZwBlAG0AbABrAG0AbABtAG8ACwBlAGYACwAMAGUAZQAUAG0AZQAMABQAbwBtABQADAANABQAFAANABMAWQA/AGEAYwBhAD8AWwBZAGEAWwBhAF8AYABfAGEAYABhAGMAOAA/AFkAOABZAFoAPwA4ADYAPQA/ADYANgAoAD0APQAoAC4AWAA2ADgAOABaAFgAWABaAF0AWABdAFwAWABoADYAXABoAFgAaAApADYAKQAoADYAaABpACkAXABkAGgAZABpAGgAZABmAGkACwBmAGQARAALAGQARABkAFwARAAOAAsACwAOAAwARABFAA4AQABEAFwAQABFAEQAQABCAEUAHABAAFwAHABCAEAAXAAbABwAHAAbABoAXABdABsA")],
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 112,
"vertex_data": PackedByteArray("/lis9g9bAADRpq32DlsAAKNb//+NoQAA0ab//42hAADRpq1VJVsAAO1YrVUmWwAA0aYnMnmhAAATW6U/eaEAANozAACM5AAA4jSjQzD1AABSH6U+1OEAAPgzXRQS8AAAlSmJGXrsAADZJl4+CO4AAMslYxG14wAAMB60gtThAABQM9eHMPUAAI0v/tiM5AAAliVVgwjuAACuJkSpeuwAAIIw4rMS8AAA/yKssLTjAACZCoFtKh4AALofTnLOCgAAhR8uPXIbAAD/ES5v9hEAANgULFGEEwAAER+fTOwPAACPEYlJSRwAAIsbCdhyGwAAyh7Wks4KAACqCf2NKh4AAPsburfsDwAAKBKVroQTAAAQEbCP9hEAAHkOoLRKHAAAaefKPtThAABL0uJDMPUAAGHSQgCM5AAABOCfPgjuAAAZ3cgZeuwAAN7SnxQS8AAAX+BXEbXjAADo1yvZjOQAAPzTF4gw9QAAGenogtThAADg1hm0EvAAAK7gaql67AAAtOGRgwjuAABg5MOwtOMAANjej3LOCgAA9fNhbSoeAADu3m49chsAAJDsL2/2EQAApuk7UYQTAADr7IlJSRwAAGvf3EzsDwAAN+M22HIbAAD39NiNKh4AANrfEpPOCgAAP/CRtEocAACM7JeuhBMAAJPtrY/2EQAAvuLpt+wPAADbFH46ZVgAAOQA+WqrVwAATwfpRuBXAABNCANVRqYAAB4biCRLpQAAHA7zMPylAACYIabcvaQAACwHdYtGpgAAlAsAsvylAAAAAHWLo1cAAF4cRszMWAAAdAQAstpXAAD26WkaS6UAAE7+Kk5GpgAAq/fVJ/ylAAD8/qdqpFcAAKXqiDpgWAAAWfi1RttXAADt7nLEXVgAAP//HoucVwAArPu9sdNXAAD//zGIRqYAAH3vZdZLpQAArPu9sPylAACwqp1DIxAAAHyrhHgAAAAAQKscU7oEAAA3VIR4AAAAAANVnUMjEAAAc1QcU7oEAAADVezeIxAAADdUKJkAAAAAc1SQvroEAAB8qyiZAAAAALCq7N4jEAAAQKuQvroEAADCWmwY2+8AAAJa+0X//wAAOFoXGkT7AAB8q/tF//8AALGqbBjb7wAAQasXGkT7AACwqiTe2+8AAHyrJIn//wAAQKu6tkT7AADhWSWJ//8AAFdaJN7b7wAA/1m7tkT7AAA=")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_kns8q"]
resource_name = "hands_Cube_001"
_surfaces = [{
"aabb": AABB(-0.906388, -0.431576, -2.04595, 1.81486, 0.733817, 2.13),
"attribute_data": PackedByteArray("qcqqalS1qmqpylVVVLVVVapKqmpVNapqqkpVVVU1VVU8JUxEGHVRBR11h/t0JP8//190BGch/z//X9L+62gAABt1AAAbdf///x+6Q/9fRPzmiof75opRBcLaTETmigAA5or//xSX////n2cB/98sQf+fdASK2/8//59E/P/fukN5eHbEdHitujwlsnt3eP+/d3j/v/8f037/X5e+Vmr/v3Qk/3//X4u7/x9FfP9fucPC2rJ7ioetuoqHdsT/n4u7itv/f6mV/7//nyvBl97/f4qH/7//n7nD/99FfB11d0QYda46wlpMRBt1/z8bdf8/+GLsP4tb/z//X4s7/1+6Q/9fukM8pUxE5oquOuaKd0T/n4s7c6T/P36dY0Dmiv8//5+6Q3R4UIV5eId7wlqye3d4/3/6Ypt//19FfItb/3//X3OEPKWye4qHh3uKh1CF/59FfP+fRXyNnBOAiof/f/+fc4RzpP9/WySqanp4VNX/H6pq/x/Kav9fNNX/X1TVHXWp6lskVVX/HzRV/x97Vf9fyer/X4PqHtlVVeaKqer/n5jq/5/J6v/fNFX/32ZViodU1QHZqmr/nzTV/59l1f/fmGr/38pqpFtVVaRbVVUddVVV/19YVXp4qmqkW6pq/1+6alqkqmqKh6pq/5+xauaKVVVapFVV/59NVapKWnx0eFSVm0r/f/RK/3//XwqV/19jlXR4qqpVNVp8CzX/f2M1/3//X5uq/1/0qqnKWnyKh6qq/5+bqv+f9Kqbyv9/88r/f4qHVJVUtVp8/58Klf+fY5UKtf9/Y7X/f1U1pEMYdVUVCzX/P2M1/z//XwsV/19jFRh1qioYdaoqqkqkQ5tK/z/0Sv8//1+bKv9f9CpUtaRD5oqqKuaKqir/n5sq/5/0Kgq1/z9jtf8/5opVFanKpEP/nwsV/59jFZvK/z/zyv8/dCT/P+toAAD/H7pD/19E/P/fukNWav+//1+Lu/8fRXz/X7nD/5+Lu4rb/3//n7nD+GLsP/hi7D/4Yuw/i1v/P3Ok/z9zpP8/+mKbf/pim3//X3OEjZwTgI2cE4D/n3OE/x97VWM1/39jNf8/m0r/Pw=="),
"format": 34896613399,
"index_count": 660,
"index_data": PackedByteArray("iwBtACwAiwAAAG0AUQABAJIAUQB5AAEAfQCkAAMAfQBBAKQAAgAWAGYAAgCsABYAdABDAHwAdAA3AEMAIQCMAC0AIQCFAIwAOAClAEIAOACeAKUAdgB8AHoAdgB0AHwAgABTAJEAgABJAFMAeQADAAEAeQB9AAMAfwB3AEsAfwAEAHcABAByAHcABAAGAHIAmAAVAKsAmAAJABUAAABmAG0AAAACAGYAYABsAGcAYABbAGwABQAGAAQABQAHAAYAWwAuAGwAWwAgAC4AkgAAAIsAkgABAAAAhQCRAIwAhQCAAJEAAQACAAAAAQADAAIAWgAHAAUAWgBhAAcAnQCrAKYAnQCYAKsASgB6AFIASgB2AHoACgBnABQACgBgAGcAAwCsAAIAAwCkAKwABgA5AHMABgCfADkABwCfAAYABwCXAJ8AIgAFAIYAIgBaAAUAhgAEAH8AhgAFAAQACAANAAsACAASAA0ACQAPABAACQAMAA8ACgAOABMACgARAA4AFAAZABgAFAAeABkAFQAaABwAFQAXABoAFgAbAB8AFgAdABsAIAAnACMAIAArACcAIQAmACkAIQAkACYAIgAlACoAIgAoACUALAAzADAALAA2ADMALQAxADQALQAvADEALgAyADUALgA0ADIANwA8ADoANwBAADwAOAA8AD4AOAA7ADwAOQA8AD8AOQA9ADwAQQBGAEUAQQBIAEYAQgBGAEcAQgBEAEYAQwBGAEgAQwBHAEYASQBNAEwASQBQAE0ASgBNAE4ASgBMAE0ASwBNAE8ASwBOAE0AUQBWAFUAUQBZAFYAUgBWAFcAUgBUAFYAUwBWAFgAUwBXAFYAYQASAAgAYQBiABIAZAAKABMAZABgAAoACQAXABUACQAQABcAEQAUABgAEQAKABQAbQA2ACwAbQBxADYAbgAuADUAbgBsAC4ALQAkACEALQA0ACQANAAgACQANAAuACAAhgAoACIAhgCHACgAigAhACkAigCFACEAkgBZAFEAkgCVAFkAkwBTAFgAkwCRAFMAUgBMAEoAUgBXAEwAVwBJAEwAVwBTAEkAdwBOAEsAdwB4AE4AeABKAE4AeAB2AEoAfQBIAEEAfQB+AEgAfgBDAEgAfgB8AEMAQgA6ADgAQgBHADoARwA3ADoARwBDADcAnwA9ADkAnwChAD0AowA4AD4AowCeADgArAAdABYArACwAB0ArQAVABwArQCrABUAIgBdAFoAIgAqAF0AKwBbAF4AKwAgAFsAWgBjAGEAWgBcAGMAXwBgAGUAXwBbAGAAFgBqAGYAFgAfAGoAHgBnAGkAHgAUAGcAZgBwAG0AZgBrAHAAaABsAG8AaABnAGwAOQB1AHMAOQA/AHUAPwB0AHUAPwA3AHQAcgB4AHcAcgB1AHgAdQB2AHgAdQB0AHYAUQB7AHkAUQBUAHsAVAB6AHsAVABSAHoAeQB+AH0AeQB7AH4AewB8AH4AewB6AHwASwCCAH8ASwBPAIIAUACAAIMAUABJAIAAfwCIAIYAfwCBAIgAhACFAIkAhACAAIUALACQAIsALAAwAJAALwCMAI4ALwAtAIwAiwCWAJIAiwCPAJYAjQCRAJQAjQCMAJEACACZAJcACAALAJkADACYAJsADAAJAJgAlwCgAJ8AlwCaAKAAnACdAKIAnACYAJ0AQQCpAKQAQQBFAKkARAClAKgARABCAKUApACvAKwApACqAK8ApwCrAK4ApwCmAKsAYQCXAAcAYQAIAJcA"),
"lods": [0.205545, PackedByteArray("iwBtALsAuwCQAIsAiwCPAJYAiwCWAJIAkgBtAIsAkgCVAFkAkgBZAMYAkgDGAG0AbQA2ALsAuwA2ADMAbQBxADYAxgBmAG0AZgBwAG0AZgBrAHAAxgCsAGYAtQBqAGYAZgCsALUArAAdALUAtQAdABsArACwAB0AxgCkAKwApACvAKwApACqAK8AxgDBAKQAwQCpAKQAtwCFAIwAugCMAI4AugC3AIwAtwC6ADEAtwAxADQAigCFALcAtwA0ACMAtwAjACYANAC8ACMAvAA0ADIAvAC2ACMAvAC5ALYAhACFAIkAhACAAIUAuQC8AFsAuQBbAF4AWwC8AGwAbgBsALwAaABsAG8AaABnAGwAYABbAGwAYABsAGcAXwBbAGAAXwBgAGUAtABgAGcAZABgALQAtABnAB4AHgBnAGkAEQC0AB4AtAARAA4AHgAZABEAvQClAEQARAClAKgARABGAL0APABGAEUAowC9AD4AowCdAL0AvQCdAKUAnACdAKIAnACYAJ0AnQCrAKUAnQCYAKsApwClAKsApwCrAK4ADACYAJsADACyAJgAmAAcAKsAmACyABwArQCrABwAsgAQABwAHAAQABoAgADIAJEAkwCRAMgAhQCAAJEAhQCRAIwAjQCMAJEAjQCRAJQAxQDIAIAAxQCAAIMAyADFAMQAVgDIAMQAxAC+AMcAxwC+AMIAfwDDAE8ATwCCAH8AfwCBAMoAfwDKAIYAfwCfAMMAhgCfAH8AnwDAAMMAwAC/AMMAnwChAMAAhgCXAJ8AlwDMAJ8AlwDLAMwAsQCZAJcAYQCxAJcAYQCXAIYAYQCzALEAsQCzAA0AYQBiALMAWgBhAIYAWgDJAGEAWgBcAMkAuABaAIYAuABdAFoAhgAoALgAuAAoACUAhgCHACgA")],
"material": SubResource("StandardMaterial3D_238tw"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 205,
"vertex_data": PackedByteArray("/lis9g9bUv3Rpq32DlsB/aNb//+NoaP80ab//42hcfzRpq1VJVvTwe1YrVUmW0/B0aYnMnmhA8YTW6U/eaEZxtozAACM5HK84jSjQzD1rcNSH6U+1OGU0vgzXRQS8Nig+DNdFBLwb8mVKYkZeuxQppUpiRl67BvXlSmJGXrsiszZJl4+CO67ydkmXj4I7lfOyyVjEbXjSrjLJWMRteNg4DAetILU4YTLUDPXhzD19cSNL/7YjOSW9ZYlVYMI7kLLliVVgwjuzcauJkSpeuyCwK4mRKl67OPKriZEqXrsO+GCMOKzEvBrxYIw4rMS8ELy/yKssLTjiML/IqywtOO045kKgW0qHqDhuh9Ocs4KSPqFHy49chuGyP8RLm/2ET/t/xEub/YRt+7YFCxRhBNU4dgULFGEE+392BQsUYQTE/cRH59M7A9q4REfn0zsD0b2jxGJSUkcxtOPEYlJSRy+8IsbCdhyG8Pwyh7Wks4KB/GqCf2NKh6+2vsburfsDwbk+xu6t+wP4u8oEpWuhBPg3CgSla6EE5HfKBKVroQT7eUQEbCP9hHW5nkOoLRKHMPQeQ6gtEocNuRp58o+1OGQyEvS4kMw9d6/YdJCAIzkC7sE4J8+CO4CwwTgnz4I7kDDGd3IGXrst6be0p8UEvA4od7SnxQS8FTCX+BXEbXjdLlf4FcRteO+vujXK9mM5Gb4/NMXiDD1zb8Z6eiC1OF1zuDWGbQS8H7C4NYZtBLwlfiu4GqpeuzL1LThkYMI7mPHYOTDsLTjwdzY3o9yzgrD8PXzYW0qHh7Y7t5uPXIb6MiQ7C9v9hEB5abpO1GEE5vc6+yJSUkcb9Br39xM7A8i4mvf3EzsDzPhN+M22HIbZ/H39NiNKh7b3trfEpPOCln5P/CRtEocf+c/8JG0Shy644zsl66EE33zk+2tj/YRQOu+4um37A9E/L7i6bfsD9zv2xR+OmVYN8LkAPlqq1cu3E8H6UbgV+rHTwfpRuBX4shPB+lG4Fdg7E8H6UbgV3rrTQgDVUam5NYeG4gkS6V0xBwO8zD8pTvEHA7zMPylhcUcDvMw/KWf5RwO8zD8pejnmCGm3L2kufEsB3WLRqZ0zpQLALL8pWnFlAsAsvylicaUCwCy/KVA45QLALL8pYbhAAB1i6NXfNNeHEbMzFgL9XQEALLaVybIdAQAstpXAMl0BACy2lc95nQEALLaV/Dl9ulpGkulc8T26WkaS6WIxE7+Kk5GptHMq/fVJ/yljMX8/qdqpFcd0qXqiDpgWHnDWfi1RttXRMnt7nLEXVjw8v//HoucV6PZrPu9sdNXkOT//zGIRqbO033vZdZLpTjvrPu9sPyllt6wqp1DIxBmyHyrhHgAAKH3QKscU7oEiuJAqxxTugTl4kCrHFO6BD3oQKscU7oE8ug3VIR4AAA8/gNVnUMjEG7Ic1QcU7oE++JzVBxTugSJ4nNUHFO6BNTtc1QcU7oE5e4DVezeIxDy+zdUKJkAAJ73c1SQvroEgexzVJC+ugQA7HNUkL66BL/7c1SQvroEU/t8qyiZAACN/rCq7N4jEN76QKuQvroEtvNAq5C+ugQW80CrkL66BLj6QKuQvroEr/vCWmwY2+8OvwJa+0X//83AOFoXGkT7CaM4WhcaRPv8oDhaFxpE+6PIOFoXGkT7sMZ8q/tF///swHyr+0X//+G/sapsGNvvub5BqxcaRPsKoUGrFxpE+0GiQasXGkT788VBqxcaRPuww7CqJN7b7w//fKskif//HsB8qySJ///9v0CrurZE+1zCQKu6tkT7X8RAq7q2RPuj/0CrurZE+6j+4Vklif//oMBXWiTe2+/a/v9Zu7ZE+/TB/1m7tkT7D8P/Wbu2RPuX/v9Zu7ZE+6j8+DNdFBLwrK+VKYkZeuxhysslYxG146+5yyVjEbXjp97/IqywtOPl4dgULFGEExb6ER+fTOwP//+PEYlJSRxm1I8RiUlJHGTy+xu6t+wPtOj7G7q37A8P7nkOoLRKHL/TGd3IGXrsX50Z3cgZeuxptRndyBl67N293tKfFBLw0Ljg1hm0EvCj+eDWGbQS8P//puk7UYQTXM6m6TtRhBNw3Wvf3EzsD6jmjOyXroQTP+CM7JeuhBMO5L7i6bfsD///HA7zMPyloMdzVBxTugQp1ThaFxpE+86sQasXGkT7k68nfNi/K0BrA/18Ub2xPaQCogi+g54DwngiC5CGnQVxd8QSyJyk5zrz7di739UmdLAjKC7yNEqnsn3Yv/Fq0v32BN9857rhSebgP02mkM0P8P/cv9hH87/nAnFrrMbn1t7y5IffM+pU1dvx9NReZoWcJv+TKdluDpl55YHLF2RFpWnObtdIxuTIMQ5Wf77JStDBzPPNqCoOkbbP/dGYxvTa0xRahRlSW0rKMJyQzcdC5Q15A8fGwTjF4NLHzpK8Lr/EesveAcbUxR3Tvr5iafLNfMw4yV7XCsBEZvK8tyEEK/kMOxmAFyJvphlbI3oZYiNQM0E20jTcWCAO/NReIZ1AZBbzQHMqHRHwGG4NCibGIszVsQFWF6kSoSLQFbMfuxvDJ2MazzmbPy0rwTXEBIuUNDETO/4jfEwZGt5MFAFQk1tCBUnqRQ0JKC/vLOE2KzoJOPUexjzxGuUy3C2zMkg0Y7S3sWResQUSDlWI69HQ2iw5Fp6kOHObSMvT54vKj+gf1YLdoA3WhI08lJ0ZPKaa7MqI67TMzelzdKG46tkV1d/hqMS041PEpGVUrrtmo68l1u7R93Nnunzd/8Bf343AJGWXsl5l2rK9BTlxZQRZcVAlmC8QHK1EnigEM4gHaHKDHuJHlzn9DuEsPynRMgYd0ynKJQk3bg5tL2AbEwVviH1AWUHJAX15egdOj5RG6kocSSlJjkQMRIULLnmCEb92Uwa8gSZLG0vaTRBJ7369zT+/DL8TuYa5srudt3F+1uFAgO3iYbvcu+2xnADNtMm3rrY+trqejwLWYZMB/gLbixnvbv/lFSuytRC3i18hvucbIX/mBwC0ED8A3RBWEG97UgvXb48ryWvNGcTeNxk93Q4tHQVLEIUAUhB/AI7kPQ+S5E4OEocemFMYkwYK/4bvuNOdBlfxBRwb8X8bGHk6mGboSAilHtaqutkS9Eo4TKBKzw7kjm0hnxTPCsqbpJ1NNybtg5fJP9UdsRPJy3wI1Z7MBcsLMBEsUELSLUwkPVpVKDpozBIeD0w8dSubBwFgbzAUQGFPUj0q6cy+vCGfMfo8L6gaMiuRkQeUfUMGn4PhBQd4")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_1a46o")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cmbgt"]
[sub_resource type="ArrayMesh" id="ArrayMesh_07fxt"]
_surfaces = [{
"aabb": AABB(-0.796933, -0.868971, -0.408863, 1.59387, 1.40084, 7.09951),
"format": 34896613377,
"index_count": 660,
"index_data": PackedByteArray("DwBBAG4ADwAAAEEAAgBKAEcAAgADAEoAAwBNAEoAAwAEAE0ABABQAE0ABAAFAFAABQBTAFAABQAGAFMABgBWAFMABgAHAFYABwBZAFYABwAIAFkACABcAFkACAAJAFwACQBfAFwACQAKAF8ACgBiAF8ACgALAGIACwBlAGIACwAMAGUADABoAGUADAANAGgADQBrAGgADQAOAGsADgBuAGsADgAPAG4AAABEAEEAAAABAEQAAQBHAEQAAQACAEcAPgAAAA8APgARAAAAFAACAAEAFAAXAAIAOwAPAA4AOwA+AA8AOAAOAA0AOAA7AA4ANQANAAwANQA4AA0AMgAMAAsAMgA1AAwALwALAAoALwAyAAsALAAKAAkALAAvAAoAKQAJAAgAKQAsAAkAJgAIAAcAJgApAAgAIwAHAAYAIwAmAAcAIAAGAAUAIAAjAAYAHQAFAAQAHQAgAAUAGgAEAAMAGgAdAAQAFwADAAIAFwAaAAMAPQATABAAEwAZABYAGQAfABwAHwAlACIAJQArACgAKwAxAC4AMQA3ADQANwA9ADoAPQAZABMAHwArACUANwAZAD0AHwAxACsAMQAZADcAGQAxAB8AEQAVABQAEQASABUAEgATABUAEgAQABMAFAAYABcAFAAVABgAFQAWABgAFQATABYAFwAbABoAFwAYABsAGAAZABsAGAAWABkAGgAeAB0AGgAbAB4AGwAZAB4AHgAZABwAHQAhACAAHQAeACEAHgAcACEAIQAcAB8AIAAkACMAIAAhACQAIQAiACQAIQAfACIAIwAnACYAIwAkACcAJAAlACcAJAAiACUAJgAqACkAJgAnACoAJwAoACoAJwAlACgAKQAtACwAKQAqAC0AKgArAC0AKgAoACsALAAwAC8ALAAtADAALQAuADAALQArAC4ALwAzADIALwAwADMAMAAxADMAMAAuADEAMgA2ADUAMgAzADYAMwAxADYANgAxADQANQA5ADgANQA2ADkANgA0ADkAOQA0ADcAOAA8ADsAOAA5ADwAOQA6ADwAOQA3ADoAOwA/AD4AOwA8AD8APAA9AD8APAA6AD0APgASABEAPgA/ABIAPwAQABIAPwA9ABAAEQABAAAAEQAUAAEARABCAEEARABFAEIARQBAAEIARQBDAEAARwBFAEQARwBIAEUASABDAEUASABGAEMASgBIAEcASgBLAEgASwBGAEgASwBJAEYATQBLAEoATQBOAEsATgBJAEsATgBMAEkAUABOAE0AUABRAE4AUQBMAE4AUQBPAEwAUwBRAFAAUwBUAFEAVABPAFEAVABSAE8AVgBUAFMAVgBXAFQAVwBSAFQAVwBVAFIAWQBXAFYAWQBaAFcAWgBVAFcAWgBYAFUAXABaAFkAXABdAFoAXQBYAFoAXQBbAFgAXwBdAFwAXwBgAF0AYABbAF0AYABeAFsAYgBgAF8AYgBjAGAAYwBeAGAAYwBhAF4AZQBjAGIAZQBmAGMAZgBhAGMAZgBkAGEAaABmAGUAaABpAGYAaQBkAGYAaQBnAGQAawBpAGgAawBsAGkAbABnAGkAbABqAGcAbgBsAGsAbgBvAGwAbwBqAGwAbwBtAGoAQQBvAG4AQQBCAG8AQgBtAG8AQgBAAG0ARgBAAEMAQABqAG0AagBkAGcAZABeAGEAXgBYAFsAWABSAFUAUgBMAE8ATABGAEkARgBqAEAAagBeAGQAXgBSAFgAUgBGAEwARgBeAGoAXgBGAFIA"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 112,
"vertex_data": PackedByteArray("/3/Q7lODAACOryjnU4MAAN/XXNFTgwAA0PK8sFODAABG/ECKU4MAANDyxGNTgwAA39ckQ1ODAACOr1ctU4MAAP9/sCVTgwAAcFBXLVODAAAfKCRDU4MAAC4NxGNTgwAAuANAilODAAAuDbywU4MAAB8oXNFTgwAAcFAo51ODAAD/f027AAAAAP9/JOHRCgAA/38N1SQGAABQpbO2AAAAALenF9zSCgAA5qY10BoGAADLwxOqAAAAAGTJts3TCgAAi8ePwvIFAAD70w6bAAAAAOTfMLhWCgAAItxFr88DAADH0syeAAAAAMvnzJ4GCgAAWOHMnsoDAAD704uiAAAAAOTfaYVWCgAAItxUjs8DAADLw4aTAAAAAGTJ42/TCgAAi8cJe/IFAABQpeWGAAAAALengmHSCgAA5qZjbRoGAAD/f0uCAAAAAP9/dVzRCgAA/3+MaCQGAACuWuWGAAAAAEdYgmHSCgAAGFljbRoGAAAzPIaTAAAAAJo242/TCgAAczgJe/IFAAADLIuiAAAAABogaYVWCgAA3CNUjs8DAAA3LcyeAAAAADMYzJ4GCgAAph7MnsoDAAADLA6bAAAAABogMLhWCgAA3CNFr88DAAAzPBOqAAAAAJo2ts3TCgAAcziPwvIFAACuWrO2AAAAAEdYF9zSCgAAGFk10BoGAAD/f+a+//8AAP9///8A9QAA/38Y7sb8AADcp+a2//8AAPuwQPYA9QAAkq7F5Mb8AACmxiai//8AAIHagdr/9AAALdXSysb8AACj1YSL//8AAED2+rD/9AAAVu10psb8AADo1/9///8AAP///3//9AAA8vT/f8b8AACj1Xp0//8AAED2BE//9AAAVu2KWcb8AACmxthd//8AAIHafSX/9AAALdUsNcb8AADcpxhJ//8AAPuwvgkA9QAAkq45G8b8AAD/fxhB//8AAP9/AAAA9QAA/3/mEcb8AAAiWBhJ//8AAANPvgkA9QAAbFE5G8b8AABYOdhd//8AAH0lfSX/9AAA0SosNcb8AABbKnp0//8AAL4JA0//9AAAqBKKWcb8AAAWKP9///8AAAAA/3//9AAADAv/f8b8AABbKoSL//8AAL4J+rD/9AAAqBJ0psb8AABYOSai//8AAH0lgdr/9AAA0SrSysb8AAAiWOa2//8AAANPQPYA9QAAbFHF5Mb8AAA=")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_714yc"]
resource_name = "hands_Cylinder_014"
_surfaces = [{
"aabb": AABB(-0.796933, -0.868971, -0.408863, 1.59387, 1.40084, 7.09951),
"attribute_data": PackedByteArray("AAD/P////z//7/8//9//P//P/z//v/8//6//P/+f/z//j/8//3//P/9v/z//X/8//0//P/8//z//L/8//x//P/8P/z//v5ikAADcff//3H0bAP9/1r+XgijAl4Lj//9/PNYEqf/v3H3/79x9WNczh7fXX4fU7/9/G/D/f2foKLX/39t9/9/bfZzf/3814P9/LetglMLrB5UN8pjD/8/bfWDO/3/Z0P9/DPhspzv53apV8f+//7/bff+/231YvP9/pcP/f178obpe/FzFDfJlvP+v233/r9t9Ja//f56x/38M+JHYO/kg1Wfo1sr/n9t9/5/bfcmf/39hoP9/Leue68Lr9uo81vnW/4/cff+P3H3ij/9/KZD/f1jXyvi315/4/79m2/9/3H3jf/9/G4D/f9a/Z/0owGf9wan51v9v3H3/b9x91W//fxxw/39HqJ/4pqjK+JeX1sr/X9t9/1/bfZ1f/381YP9/O5T26tGUnuvxjWW8/0/bfWBO/3/ZUP9/woYg1fGHkdiojv+//z/bfVk8/3+mQ/9/oIOhuqCDXMXxjZjD/y/bff8v230lL/9/njH/f8KG3arxh2ynl5cotf8f233JH/9/YiD/fzuUB5XRlGCUwakEqf8P3H3/D9x94w//fyoQ/39HqF+Hpqgzh/8/c6IAAKQF//+kBXQAAABUP7CCq0Cwgor/AADjUjWm/++lBf/vpQW8VhSHLFith3bvAACF8AAAeWH0r//fpQV1auWTJ2yelSTfAADJ4AAAlGiWuv/PpQWWd7qmO3nbqmLOAABo0QAAp2n/v/+/pQXTfOy803wRw+e9AAAWwgAAlGhoxf+vpQWWd0PZO3kj1ZauAACcsQAAeWEJ0P+fpQX/n6UFdWoZ7CdsYOo1nwAA2qAAAONSyNn/j6UF/4+lBbxW6fgsWFH4eI8AAIeQAAD/P4rd/3+kBf9/pAVUP039q0BN/Yp/AAB0gAAAHC3I2f9vpQXTJ1H4Qynp+HdvAACGcAAAhR4J0P9fpQXXE2DqihUZ7CRfAADJYAAAaxdoxf9PpQXDBiPVaAhD2WJOAABoUQAAVxb/v/8/pQUrAxHDKwPsvOg9AAAXQgAAaxeWuv8vpQXDBtuqaAi6ppYuAACcMQAAhR70r/8fpQXXE56VihXlkzUfAADaIAAAHC01pv8PpQX/D6UFeQ8AAIgQAADTJ62HQykUhw=="),
"format": 34896613399,
"index_count": 660,
"index_data": PackedByteArray("EAB9ANwAEAAAAH0AAwCRAIsAAwAEAJEABACXAJEABAAFAJcABQCdAJcABQAGAJ0ABgCjAJ0ABgAHAKMABwCrAKQABwAIAKsACACyAKoACAAJALIACQC4ALEACQAKALgACgC+ALgACgALAL4ACwDEAL4ACwAMAMQADADKAMQADAANAMoADQDQAMoADQAOANAADgDWANAADgAPANYADwDdANYADwAQAN0AAQCEAH4AAQACAIQAAgCLAIUAAgADAIsAdwAAABAAdwASAAAAGQADAAIAGQAgAAMAcAAQAA8AcAB2ABAAagAPAA4AagBwAA8AYwAOAA0AYwBpAA4AXQANAAwAXQBjAA0AVgAMAAsAVgBdAAwAUAALAAoAUABXAAsASQAKAAkASQBPAAoAQwAJAAgAQwBJAAkAOwAIAAcAOwBCAAgANAAHAAYANAA8AAcALgAGAAUALgA1AAYAJwAFAAQAJwAtAAUAIQAEAAMAIQAnAAQAdQAYABEAGAAmAB8AJgAzACwAMwBBADoAQQBOAEgATgBcAFUAXABoAGIAaAB1AG8AdQAmABgAMwBOAEEAaAAmAHUAMwBcAE4AXAAmAGgAJgBcADMAEwAeABoAEwAXAB4AFgAYABsAFgARABgAGQAjACAAGQAdACMAHAAfACQAHAAYAB8AIQApACcAIQAiACkAJQAmACoAJQAfACYAJwAwAC0AJwAoADAAKwAmADEAMQAmACwALgA3ADUALgAvADcAMgAsADkAOQAsADMANAA+ADwANAA2AD4AOAA6AEAAOAAzADoAOwBFAEIAOwA9AEUAPwBBAEcAPwA6AEEAQwBLAEkAQwBEAEsARgBIAE0ARgBBAEgASQBSAE8ASQBKAFIATABOAFQATABIAE4AUABZAFcAUABRAFkAUwBVAFsAUwBOAFUAVgBfAF0AVgBYAF8AWgBcAGEAWgBVAFwAXQBlAGMAXQBeAGUAYABcAGcAZwBcAGIAYwBsAGkAYwBkAGwAZgBiAG0AbQBiAGgAagByAHAAagBrAHIAbgBvAHMAbgBoAG8AcAB5AHYAcABxAHkAdAB1AHoAdABvAHUAdwAUABIAdwB4ABQAewARABUAewB1ABEAEwACAAEAEwAaAAIAhACCAH4AhACJAIIAhgB8AIEAhgCDAHwAiwCIAIUAiwCPAIgAjACDAIcAjACKAIMAkQCOAIsAkQCVAI4AkgCKAI0AkgCQAIoAlwCUAJEAlwCbAJQAmACQAJMAmACWAJAAnQCaAJcAnQChAJoAnwCWAJkAnwCcAJYAowCgAJ0AowCoAKAApgCcAJ4ApgCiAJwAqwCnAKQAqwCvAKcArQCiAKUArQCpAKIAsgCuAKoAsgC2AK4AtACpAKwAtACwAKkAuAC1ALEAuAC8ALUAugCwALMAugC3ALAAvgC7ALgAvgDCALsAwAC3ALkAwAC9ALcAxADBAL4AxADIAMEAxgC9AL8AxgDDAL0AygDHAMQAygDOAMcAywDDAMUAywDJAMMA0ADNAMoA0ADUAM0A0QDJAMwA0QDPAMkA1gDTANAA1gDaANMA1wDPANIA1wDVAM8A3QDZANYA3QDfANkA4ADVANgA4ADbANUAfQDeANwAfQB/AN4AgADbAOEAgAB8ANsAigB8AIMAfADVANsA1QDJAM8AyQC9AMMAvQCwALcAsACiAKkAogCWAJwAlgCKAJAAigDVAHwA1QC9AMkAvQCiALAAogCKAJYAigC9ANUAvQCKAKIA"),
"material": SubResource("StandardMaterial3D_cmbgt"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 226,
"vertex_data": PackedByteArray("/3/Q7lOD5f//f9DuU4Pl/46vKOdTg3/339dc0VODBu7Q8rywU4Nz4kb8QIpTg9/V0PLEY1ODy8vf1yRDU4MDxo6vVy1Tg63D/3+wJVODF8NwUFctU4O8wx8oJENTgyfGLg3EY1ODysu4A0CKU4Pb1S4NvLBTg3LiHyhc0VODC+5wUCjnU4Ow9/9/TbsAAPUS/38k4dEKU///fyTh0QpK//9/DdUkBsz+/38N1SQGhij/fw3VJAaGKP9/DdUkBsT+UKWztgAAsBK3pxfc0gqT+renF9zSCvr45qY10BoGCyjmpjXQGgZbJ+amNdAaBiz95qY10BoGU/rLwxOqAABAEWTJts3TCmbxZMm2zdMKP/aLx4/C8gWx/ovHj8LyBX/1i8ePwvIFOSaLx4/C8gWTJvvTDpsAADcS5N8wuFYKyegi3EWvzwPP8SLcRa/PA7zvItxFr88DQCEi3EWvzwODGcfSzJ4AAO0By+fMngYK7djL58yeBgp72FjhzJ7KAxbjWOHMnsoDfN5Y4cyeygOxBFjhzJ7KA7cE+9OLogAAthPk32mFVgoPzeTfaYVWCgvNItxUjs8Dtdci3FSOzwPS1yLcVI7PA1EeItxUjs8DbBnLw4aTAABnEWTJ42/TCt7LZMnjb9MKvMqLxwl78gWu1ovHCXvyBVrVi8cJe/IFGyaLxwl78gUOJ1Cl5YYAALESt6eCYdIKN8u3p4Jh0gp2y+amY20aBnnX5qZjbRoGJNfmpmNtGgYIKOamY20aBmMn/39LggAA9RL/f3Vc0Qoxy/9/jGgkBnjX/3+MaCQGeNf/f4xoJAaGKP9/jGgkBoYorlrlhgAAsBJHWIJh0gp4y0dYgmHSCjLLGFljbRoGIdcYWWNtGgZ71xhZY20aBlsnGFljbRoGCygzPIaTAABAEZo242/TCm3Kmjbjb9MK7MtzOAl78gUw1XM4CXvyBbvWczgJe/IFkyZzOAl78gU5JgMsi6IAADcSGiBphVYKps3cI1SOzwP919wjVI7PA+jY3CNUjs8DgxncI1SOzwNAITctzJ4AAO0BMxjMngYKgdimHsyeygMk3qYezJ7KA7Piph7MnsoDtwSmHsyeygOxBAMsDpsAALYTGiAwuFYKyukaIDC4Vgr36dwjRa/PA4Hy3CNFr88DOfLcI0WvzwNsGdwjRa/PA1EeMzwTqgAAZxGaNrbN0wot83M4j8LyBaz1cziPwvIFW/xzOI/C8gUOJ3M4j8LyBRsmrlqztgAAsRJHWBfc0gpt+kdYF9zSCgP5GFk10BoGW/oYWTXQGgYC/RhZNdAaBmMnGFk10BoGCCj/f+a+//+Dh/9///8A9fD+/3///wD17/7/fxjuxvw/+/9/GO7G/Fef/38Y7sb8V5//fxjuxvxE+9yn5rb//yeI+7BA9gD1hfb7sED2APVg9JKuxeTG/Bmgkq7F5Mb8LKCSrsXkxvze7ZKuxeTG/Hn3psYmov//0ImB2oHa//RV6i3V0srG/GCiLdXSysb8Q6It1dLKxvzg3y3V0srG/Mjpo9WEi///64pA9vqw//RN3lbtdKbG/DOlVu10psb8xKNW7XSmxvxy0VbtdKbG/F/b6Nf/f///mor///9///Tv0fL0/3/G/DCl8vT/f8b8MKXy9P9/xvz8wvL0/3/G/G7Mo9V6dP//64pA9gRP//TgxlbtilnG/DGlVu2KWcb8xKNW7YpZxvzNtFbtilnG/G29psbYXf//0omB2n0l//Rcv4HafSX/9F++LdUsNcb8XqIt1Sw1xvxDoi3VLDXG/LaoLdUsNcb8sK/cpxhJ//8oiPuwvgkA9QW6+7C+CQD1hLqSrjkbxvwZoJKuORvG/C2gkq45G8b8DKGSrjkbxvwjpf9/GEH//4OH/38AAAD1z7j/fwAAAPXPuP9/5hHG/Fef/3/mEcb8V5//f+YRxvy7n/9/5hHG/LufIlgYSf//J4gDT74JAPVAumxRORvG/CygbFE5G8b8GaBsUTkbxvwdpWxRORvG/A6hWDnYXf//0Il9JX0l//TVvtEqLDXG/EOi0SosNcb8YKLRKiw1xvyor9EqLDXG/LyoWyp6dP//64q+CQNP//TgxqgSilnG/MSjqBKKWcb8M6WoEopZxvxpvagSilnG/NW0Fij/f///mooAAP9///Tu0QwL/3/G/DClDAv/f8b8MKUMC/9/xvxyzAwL/3/G/P/CWyqEi///64q+Cfqw//RM3qgSdKbG/MSjqBJ0psb8MaWoEnSmxvxp26gSdKbG/G7RWDkmov//0ol9JYHa//RV6tEq0srG/EOi0SrSysb8XqLRKtLKxvzT6dEq0srG/NbfIljmtv//KIgDT0D2APWE9gNPQPYA9WL0bFHF5Mb8fvdsUcXkxvzT7WxRxeTG/C2gbFHF5Mb8GaAvvxwAHYDPwEA82whiNzASxjE2HfkqESvlIqY7IxodTlEPZGMBAAGAjhzHjs0xoZlZROai8FT+qslix7HKbV6383YfvPX/B4DEuPMA/4Ayx6yugQJX/Fx6L/rDg5CCSNEF+Z5/NEJLCY1DTQfO8HV9h+ughL1KvQuNTokGQPSpf/U90g/OOdAUwjxcHKpHQA+o5P59+eM1fLvjWoJhNFYdpjniIWk8Rh9g0LptHdZYgmIK+18eLKostyxZLD8saDOXNEkup8n+dwsIoUkmBfJi6iUdQPYlGUCtKr1FISr6RUQK3VOQAhSqlwKkchcWBlZeHJtUXBSkXRojAVhrAeJkTgYDY4AA73iXDp5oQwtYaT4JCm5eEBlrZwLccFwEGpQJAPd/CwATgNoD8YXOBTx8zwU7fKcDooX5BmCAohYwi3EX444TFcuQ7BEoiXcUXnswD4mCvgtVgN4rf57pKdCV7iksqDMi9ZMFHMmDVhsAgkMcpH1mP1ekrDlVqes3T6XhKaZ9ni9Ekpz1A6CiU7CsI1JItfxM5Kzz9122VzYAiNj6DJ3RYWuzrGFBs0RdwLicXR25bv3qVbr1Iaxn/VqNSm5jvHdwbse7ZlW/sPn7nJL+HJt+/w+H4nZTwqZ4hcNneYHOi3TzyqL75GuX/SKP/f/wf/aAULmuxvcAR4I4pHb/JH4s/oWAxdtFAubLW2RMNckJajYSCFDYb2TA10BlqCRBBEMigQjmsR1UGDIFEvy+3VIuvypSciRSC8cgPA+pnuI94S1UHCqpZUHRqHs2RCTcEx4fKxf4fwAAgSiQKFyJ4BwiY1sJySI3HiIcXyAYQqkevSHJNqY+KimDSdIobR8pKjgXbCrWK94xYBiuR+8ajEcsLQA/0i0uP+0a1zkREQ43nBvaSwsRwF0BDnpdkhtTWLoavVfIFKFTsQhGSwEADoAsBBh+5AEnhNIBeX+IANqB4BZoeZwG8JYYNKObYSKOjz4ovpquJ4+bsDS9iGIswZQYTuGrYji2mdBA1K0CQSGt7kgakStG4ZpVYRzCNkm9oS1Xg8nUVpm+k1U7l9VVZJ8GgP7/bleBqKJ2HePcnKP2nl8fnMdhxqLmvVXhq2PhrXu2LNdYwdTW0WgYnyRsRaQo1CDO+m0YsizS0MDS0v7AvnDDoLF0dqRi5CS0NnZMtep3aLZ8d0Giw3urpETlQahs5Kun")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_07fxt")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ply7y"]
[sub_resource type="ArrayMesh" id="ArrayMesh_253wk"]
_surfaces = [{
"aabb": AABB(-0.183707, -0.178042, -0.62061, 0.365331, 0.356084, 0.762241),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f///YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_8khc4"]
resource_name = "hands_Cylinder_009"
_surfaces = [{
"aabb": AABB(-0.183707, -0.178042, -0.62061, 0.365331, 0.356084, 0.762241),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_ply7y"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9///9g1nX9/3///2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P///38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH///9/RYKEuHrHRgIIhTGlp/20gEn/qH3M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzxR7cQYBSH+3AAaBAAD/fwAA/3+1AFaCVwJKf5QnBnT5C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_253wk")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y4q8w"]
[sub_resource type="ArrayMesh" id="ArrayMesh_p8121"]
_surfaces = [{
"aabb": AABB(-0.173952, -0.168588, -0.583609, 0.345932, 0.337176, 0.717734),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3/3nAAAAAD/f3T1ZyYAAP9/ids/CwAA/3+Rn///AAD/f///JNYAAP9/wOO88wAAe5R7lAAAAAAN0w3TZyYAALnAucA/CwAAUpZSlv//AACB2oHaJNYAAInGica88wAA95z/fwAAAAB09f9/ZyYAAInb/38/CwAAkZ//f///AAD///9/JNYAAMDj/3+88wAAe5SDawAAAAAN0/EsZyYAALnART8/CwAAUpasaf//AACB2n0lJNYAAInGdTm88wAA/38HYwAAAAD/f4oKZyYAAP9/dSQ/CwAA/39tYP//AAD/fwAAJNYAAP9/Phy88wAAg2uDawAAAADxLPEsZyYAAEU/RT8/CwAArGmsaf//AAB9JX0lJNYAAHU5dTm88wAAB2P/fwAAAACKCv9/ZyYAAHUk/38/CwAAbWD/f///AAAAAP9/JNYAAD4c/3+88wAAg2t7lAAAAADxLA3TZyYAAEU/ucA/CwAArGlSlv//AAB9JYHaJNYAAHU5ica88wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_pl1un"]
resource_name = "hands_Cylinder_010"
_surfaces = [{
"aabb": AABB(-0.173952, -0.168588, -0.583609, 0.345932, 0.337176, 0.717734),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_y4q8w"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3/3nAAAMgn/f3T1ZybM/f9/dPVnJsz9/3+J2z8LpPv/f4nbPwtYIf9/ids/C1gh/3+J2z8LpPv/f5Gf//8yif9///8k1qX9/3///yTWpf3/f8DjvPPw9f9/wOO881mh/3/A47zzWaH/f8DjvPPw9XuUe5QAAMAGDdMN02cmpe4N0w3TZyZR6rnAucA/Cwb4ucC5wD8Lre+5wLnAPwukGbnAucA/C1wYUpZSlv//eImB2oHaJNaB5YnGica88yaiicaJxrzzYqGJxonGvPPw2InGica881jt95z/fwAAAAB09f9/ZyaM3HT1/39nJtjYidv/fz8Lf+yJ2/9/PwvI5Ynb/38/C0gCidv/fz8LSAKRn/9///8Qif///38k1uTOwOP/f7zzkqHA4/9/vPOSocDj/3+887W8wOP/f7zzctB7lINrAADABg3T8SxnJrrOucBFPz8LduO5wEU/Pwva37nART8/C6QZucBFPz8LXBhSlqxp//94iYHafSUk1qnAgdp9JSTWCL6JxnU5vPMmoonGdTm882KhicZ1ObzzqKaJxnU5vPNGtf9/B2MAADIJ/3+KCmcmwsj/f3UkPwv33v9/dSQ/C/fe/391JD8LWCH/f3UkPwtYIf9/bWD//zKJ/38AACTWYbj/fz4cvPNZof9/Phy881mh/38+HLzzAaP/fz4cvPMBo4Nrg2sAAMAG8SzxLGcmnszxLPEsZya6zkU/RT8/C9rfRT9FPz8LduNFP0U/PwtcGEU/RT8/C6QZrGmsaf//eIl9JX0lJNapwHU5dTm882KhdTl1ObzzJqJ1OXU5vPNGtXU5dTm886imB2P/fwAAAACKCv9/ZybY2IoK/39nJozcdST/fz8LyOV1JP9/Pwt/7HUk/38/C0gCdST/fz8LSAJtYP9///8QiQAA/38k1ibTPhz/f7zzkqE+HP9/vPOSoT4c/3+883LQPhz/f7zztbyDa3uUAADABvEsDdNnJlHq8SwN02cmpe5FP7nAPwut70U/ucA/Cwb4RT+5wD8LXBhFP7nAPwukGaxpUpb//3iJfSWB2iTWOOp1OYnGvPNioXU5ica88yaidTmJxrzzWO11OYnGvPPw2P///3+8uvoC+YJBxWyuCwtH//h+9/62gAuLktH+//9/IoIEufnGIwIIhTGlp/21gEn/p33M2gkFqvNufMM3xhkEPH8V+j0CJARO5RNR3aV2KOD+eye47Ux2MmsSDL0aTwW/MUePJswJrB7JESHz/38DKywvbzApLAQsuDrGPU4uQtXweQ8GQ1X/fwAAGCrYJlmHcRiOZ1oHpyR5G4wXah+QA6tzthqTShMWkFajKx1LWglSXQEEKWARMyg4mxhsQ4Qe+0LlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg043maFsNbWa4TSjq24pE5bWHwCErSJZiddHEbOTPJuY+UDNuPJC5LDXS0CN4kYcof//InPVU26w01ACq7FRxb1GRQOs7/m7qrwqDob/f///KFeupXCYpPileI3nlWCLl4ZkpqRu/FOMgGoDvDlmw7cZbAPO/Vv6vf371Z+k9qyi7czWx21qVq8xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_p8121")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dqnve"]
[sub_resource type="ArrayMesh" id="ArrayMesh_l6ixf"]
_surfaces = [{
"aabb": AABB(-0.147666, -0.143112, -0.447713, 0.293658, 0.286225, 0.612698),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f/7/YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_jg5hp"]
resource_name = "hands_Cylinder_011"
_surfaces = [{
"aabb": AABB(-0.147666, -0.143112, -0.447713, 0.293658, 0.286225, 0.612698),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_dqnve"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9//v9g1nX9/3/+/2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH+//9/RYKEuHrHRgIIhTGlp/21gEn/p33M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJKf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_l6ixf")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s0srx"]
[sub_resource type="ArrayMesh" id="ArrayMesh_h2mkh"]
_surfaces = [{
"aabb": AABB(-0.210144, -0.203663, -0.709919, 0.417904, 0.407326, 0.87193),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f/7/YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_r4jrw"]
resource_name = "hands_Cylinder_006"
_surfaces = [{
"aabb": AABB(-0.210144, -0.203663, -0.709919, 0.417904, 0.407326, 0.87193),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_s0srx"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9//v9g1nX9/3/+/2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h++P62gAuLktH+//9/RYKEuHrHRgIIhTGlp/20gEn/qH3M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzxR7cQYBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_h2mkh")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6fmho"]
[sub_resource type="ArrayMesh" id="ArrayMesh_kvqgh"]
_surfaces = [{
"aabb": AABB(-0.198985, -0.192849, -0.667593, 0.395713, 0.385697, 0.821018),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3/3nAAAAAD/f3T1ZyYAAP9/ids/CwAA/3+Rn///AAD/f///JNYAAP9/wOO88wAAe5R7lAAAAAAN0w3TZyYAALnAucA/CwAAUpZSlv//AACB2oHaJNYAAInGica88wAA95z/fwAAAAB09f9/ZyYAAInb/38/CwAAkZ//f///AAD///9/JNYAAMDj/3+88wAAe5SDawAAAAAN0/EsZyYAALnART8/CwAAUpasaf//AACB2n0lJNYAAInGdTm88wAA/38HYwAAAAD/f4oKZyYAAP9/dSQ/CwAA/39tYP//AAD/fwAAJNYAAP9/Phy88wAAg2uDawAAAADxLPEsZyYAAEU/RT8/CwAArGmsaf//AAB9JX0lJNYAAHU5dTm88wAAB2P/fwAAAACKCv9/ZyYAAHUk/38/CwAAbWD/f///AAAAAP9/JNYAAD4c/3+88wAAg2t7lAAAAADxLA3TZyYAAEU/ucA/CwAArGlSlv//AAB9JYHaJNYAAHU5ica88wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_b8au2"]
resource_name = "hands_Cylinder_007"
_surfaces = [{
"aabb": AABB(-0.198985, -0.192849, -0.667593, 0.395713, 0.385697, 0.821018),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_6fmho"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3/3nAAAMgn/f3T1ZybM/f9/dPVnJsz9/3+J2z8LpPv/f4nbPwtYIf9/ids/C1gh/3+J2z8LpPv/f5Gf//8yif9///8k1qX9/3///yTWpf3/f8DjvPPw9f9/wOO881mh/3/A47zzWaH/f8DjvPPw9XuUe5QAAMAGDdMN02cmpe4N0w3TZyZR6rnAucA/Cwb4ucC5wD8Lre+5wLnAPwukGbnAucA/C1wYUpZSlv//eImB2oHaJNaB5YnGica88yaiicaJxrzzYqGJxonGvPPw2InGica881jt95z/fwAAAAB09f9/ZyaM3HT1/39nJtjYidv/fz8Lf+yJ2/9/PwvI5Ynb/38/C0gCidv/fz8LSAKRn/9///8Qif///38k1uTOwOP/f7zzkqHA4/9/vPOSocDj/3+887W8wOP/f7zzctB7lINrAADABg3T8SxnJrrOucBFPz8LduO5wEU/Pwva37nART8/C6QZucBFPz8LXBhSlqxp//94iYHafSUk1qnAgdp9JSTWCL6JxnU5vPMmoonGdTm882KhicZ1ObzzqKaJxnU5vPNGtf9/B2MAADIJ/3+KCmcmwsj/f3UkPwv33v9/dSQ/C/fe/391JD8LWCH/f3UkPwtYIf9/bWD//zKJ/38AACTWYbj/fz4cvPNZof9/Phy881mh/38+HLzzAaP/fz4cvPMBo4Nrg2sAAMAG8SzxLGcmnszxLPEsZya6zkU/RT8/C9rfRT9FPz8LduNFP0U/PwtcGEU/RT8/C6QZrGmsaf//eIl9JX0lJNapwHU5dTm882KhdTl1ObzzJqJ1OXU5vPNGtXU5dTm886imB2P/fwAAAACKCv9/ZybY2IoK/39nJozcdST/fz8LyOV1JP9/Pwt/7HUk/38/C0gCdST/fz8LSAJtYP9///8QiQAA/38k1ibTPhz/f7zzkqE+HP9/vPOSoT4c/3+883LQPhz/f7zztbyDa3uUAADABvEsDdNnJlHq8SwN02cmpe5FP7nAPwut70U/ucA/Cwb4RT+5wD8LXBhFP7nAPwukGaxpUpb//3iJfSWB2iTWOOp1OYnGvPNioXU5ica88yaidTmJxrzzWO11OYnGvPPw2P7//3+8uvoC+YJBxWyuCwtH//h+9/62gAuLktH+//9/IoIEufnGIwIIhTGlp/20gEn/qH3M2gkFqvNufMM3xhkEPH8V+j0CJARO5RNR3aV2KOD+eye47Ux2MmsSDL0aTwW/MUePJswJrB7JESHz/38DKywvbzApLAQsuDrGPU4uQtXweQ8GQ1X/fwAAGCrYJlmHcRiOZ1oHpyR5G4wXah+QA6tzthqTShMWkFajKx1LWglSXQEEKWARMyg4mxhsQ4Qe+0LlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg043maFsNbWa4TSjq24pE5bWHwCErSJZiddHEbOTPJuY+UDNuPJC5LDXS0CN4kYcof7/InPVU26w01ACq7FRxb1GRQOs7/m7qrwqDob/f///KFeupXCYpPileI3nlWCLl4ZkpqRu/FOMgGoDvDlmw7cZbAPO/Vv6vf371Z+k9qyi7czWx21qVq8xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_kvqgh")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3xghe"]
[sub_resource type="ArrayMesh" id="ArrayMesh_3b4aw"]
_surfaces = [{
"aabb": AABB(-0.168916, -0.163707, -0.5195, 0.335916, 0.327414, 0.700868),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f/7/YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_7ykdv"]
resource_name = "hands_Cylinder_008"
_surfaces = [{
"aabb": AABB(-0.168916, -0.163707, -0.5195, 0.335916, 0.327414, 0.700868),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_3xghe"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9//v9g1nX9/3/+/2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH///9/RYKEuHrHRgIIhTGlp/21gEn/p33M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_3b4aw")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kwman"]
[sub_resource type="ArrayMesh" id="ArrayMesh_hjooy"]
_surfaces = [{
"aabb": AABB(-0.179504, -0.173968, -0.60641, 0.356972, 0.347937, 0.7448),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f///YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_pfqob"]
resource_name = "hands_Cylinder"
_surfaces = [{
"aabb": AABB(-0.179504, -0.173968, -0.60641, 0.356972, 0.347937, 0.7448),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_kwman"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9///9g1nX9/3///2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH///9/RYKEuHrHRgIIhTGlp/21gEn/p33M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof//InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_hjooy")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v1gx8"]
[sub_resource type="ArrayMesh" id="ArrayMesh_vhouk"]
_surfaces = [{
"aabb": AABB(-0.169972, -0.164731, -0.570256, 0.338017, 0.329461, 0.701312),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3/3nAAAAAD/f3T1ZyYAAP9/ids/CwAA/3+Rn///AAD/f///JNYAAP9/wOO88wAAe5R7lAAAAAAN0w3TZyYAALnAucA/CwAAUpZSlv//AACB2oHaJNYAAInGica88wAA95z/fwAAAAB09f9/ZyYAAInb/38/CwAAkZ//f///AAD///9/JNYAAMDj/3+88wAAe5SDawAAAAAN0/EsZyYAALnART8/CwAAUpasaf//AACB2n0lJNYAAInGdTm88wAA/38HYwAAAAD/f4oKZyYAAP9/dSQ/CwAA/39tYP//AAD/fwAAJNYAAP9/Phy88wAAg2uDawAAAADxLPEsZyYAAEU/RT8/CwAArGmsaf//AAB9JX0lJNYAAHU5dTm88wAAB2P/fwAAAACKCv9/ZyYAAHUk/38/CwAAbWD/f///AAAAAP9/JNYAAD4c/3+88wAAg2t7lAAAAADxLA3TZyYAAEU/ucA/CwAArGlSlv//AAB9JYHaJNYAAHU5ica88wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_274rt"]
resource_name = "hands_Cylinder_001"
_surfaces = [{
"aabb": AABB(-0.169972, -0.164731, -0.570256, 0.338017, 0.329461, 0.701312),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_v1gx8"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3/3nAAAMgn/f3T1ZybM/f9/dPVnJsz9/3+J2z8LpPv/f4nbPwtYIf9/ids/C1gh/3+J2z8LpPv/f5Gf//8yif9///8k1qX9/3///yTWpf3/f8DjvPPw9f9/wOO881mh/3/A47zzWaH/f8DjvPPw9XuUe5QAAMAGDdMN02cmpe4N0w3TZyZR6rnAucA/Cwb4ucC5wD8Lre+5wLnAPwukGbnAucA/C1wYUpZSlv//eImB2oHaJNaB5YnGica88yaiicaJxrzzYqGJxonGvPPw2InGica881jt95z/fwAAAAB09f9/ZyaM3HT1/39nJtjYidv/fz8Lf+yJ2/9/PwvI5Ynb/38/C0gCidv/fz8LSAKRn/9///8Qif///38k1uTOwOP/f7zzkqHA4/9/vPOSocDj/3+887W8wOP/f7zzctB7lINrAADABg3T8SxnJrrOucBFPz8LduO5wEU/Pwva37nART8/C6QZucBFPz8LXBhSlqxp//94iYHafSUk1qnAgdp9JSTWCL6JxnU5vPMmoonGdTm882KhicZ1ObzzqKaJxnU5vPNGtf9/B2MAADIJ/3+KCmcmwsj/f3UkPwv33v9/dSQ/C/fe/391JD8LWCH/f3UkPwtYIf9/bWD//zKJ/38AACTWYbj/fz4cvPNZof9/Phy881mh/38+HLzzAaP/fz4cvPMBo4Nrg2sAAMAG8SzxLGcmnszxLPEsZya6zkU/RT8/C9rfRT9FPz8LduNFP0U/PwtcGEU/RT8/C6QZrGmsaf//eIl9JX0lJNapwHU5dTm882KhdTl1ObzzJqJ1OXU5vPNGtXU5dTm886imB2P/fwAAAACKCv9/ZybY2IoK/39nJozcdST/fz8LyOV1JP9/Pwt/7HUk/38/C0gCdST/fz8LSAJtYP9///8QiQAA/38k1ibTPhz/f7zzkqE+HP9/vPOSoT4c/3+883LQPhz/f7zztbyDa3uUAADABvEsDdNnJlHq8SwN02cmpe5FP7nAPwut70U/ucA/Cwb4RT+5wD8LXBhFP7nAPwukGaxpUpb//3iJfSWB2iTWOOp1OYnGvPNioXU5ica88yaidTmJxrzzWO11OYnGvPPw2P7//3+8uvoC+YJBxWyuCwtH//h+9/62gAuLktH+//9/IoIEufnGIwIIhTGlp/21gEn/p33M2gkFqvNufMM3xhkEPH8V+j0CJARO5RNR3aV2KOD+eye47Ux2MmsSDL0aTwW/MUePJswJrB7JESHz/38DKywvbzApLAQsuDrGPU4uQtXweQ8GQ1X/fwAAGCrYJlmHcRiOZ1oHpyR5G4wXah+QA6tzthqTShMWkFajKx1LWglSXQEEKWARMyg4mxhsQ4Qe+0LlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzxR7cQYBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg043maFsNbWa4TSjq24pE5bWHwCErSJZiddHEbOTPJuY+UDNuPJC5LDXS0CN4kYcof//InPVU26w01ACq7FRxb1GRQOs7/m7qrwqDob/f///KFeupXCYpPileI3nlWCLl4ZkpqRu/FOMgGoDvDlmw7cZbAPO/Vv6vf371Z+k9qyi7czWx21qVq8xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_vhouk")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pvuma"]
[sub_resource type="ArrayMesh" id="ArrayMesh_p5c4t"]
_surfaces = [{
"aabb": AABB(-0.144288, -0.139838, -0.436299, 0.286939, 0.279676, 0.598679),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f///YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_kxx5d"]
resource_name = "hands_Cylinder_002"
_surfaces = [{
"aabb": AABB(-0.144288, -0.139838, -0.436299, 0.286939, 0.279676, 0.598679),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_pvuma"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9///9g1nX9/3///2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH+//9/RYKEuHrHRgIIhTGlp/21gEn/p33M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_p5c4t")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pptyo"]
[sub_resource type="ArrayMesh" id="ArrayMesh_6bj1v"]
_surfaces = [{
"aabb": AABB(-0.20413, -0.197835, -0.689604, 0.405945, 0.395671, 0.846979),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f/7/YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_3t00j"]
resource_name = "hands_Cylinder_003"
_surfaces = [{
"aabb": AABB(-0.20413, -0.197835, -0.689604, 0.405945, 0.395671, 0.846979),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_pptyo"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9//v9g1nX9/3/+/2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH///9/RYKEuHrHRgIIhTGlp/21gEn/p33M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_6bj1v")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8qqk1"]
[sub_resource type="ArrayMesh" id="ArrayMesh_73jrr"]
_surfaces = [{
"aabb": AABB(-0.193291, -0.18733, -0.64849, 0.384389, 0.37466, 0.797525),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3/3nAAAAAD/f3T1ZyYAAP9/ids/CwAA/3+Rn///AAD/f///JNYAAP9/wOO88wAAe5R7lAAAAAAN0w3TZyYAALnAucA/CwAAUpZSlv//AACB2oHaJNYAAInGica88wAA95z/fwAAAAB09f9/ZyYAAInb/38/CwAAkZ//f///AAD///9/JNYAAMDj/3+88wAAe5SDawAAAAAN0/EsZyYAALnART8/CwAAUpasaf//AACB2n0lJNYAAInGdTm88wAA/38HYwAAAAD/f4oKZyYAAP9/dSQ/CwAA/39tYP//AAD/fwAAJNYAAP9/Phy88wAAg2uDawAAAADxLPEsZyYAAEU/RT8/CwAArGmsaf//AAB9JX0lJNYAAHU5dTm88wAAB2P/fwAAAACKCv9/ZyYAAHUk/38/CwAAbWD/f///AAAAAP9/JNYAAD4c/3+88wAAg2t7lAAAAADxLA3TZyYAAEU/ucA/CwAArGlSlv//AAB9JYHaJNYAAHU5ica88wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_1inwa"]
resource_name = "hands_Cylinder_004"
_surfaces = [{
"aabb": AABB(-0.193291, -0.18733, -0.64849, 0.384389, 0.37466, 0.797525),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_8qqk1"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3/3nAAAMgn/f3T1ZybM/f9/dPVnJsz9/3+J2z8LpPv/f4nbPwtYIf9/ids/C1gh/3+J2z8LpPv/f5Gf//8yif9///8k1qX9/3///yTWpf3/f8DjvPPw9f9/wOO881mh/3/A47zzWaH/f8DjvPPw9XuUe5QAAMAGDdMN02cmpe4N0w3TZyZR6rnAucA/Cwb4ucC5wD8Lre+5wLnAPwukGbnAucA/C1wYUpZSlv//eImB2oHaJNaB5YnGica88yaiicaJxrzzYqGJxonGvPPw2InGica881jt95z/fwAAAAB09f9/ZyaM3HT1/39nJtjYidv/fz8Lf+yJ2/9/PwvI5Ynb/38/C0gCidv/fz8LSAKRn/9///8Qif///38k1uTOwOP/f7zzkqHA4/9/vPOSocDj/3+887W8wOP/f7zzctB7lINrAADABg3T8SxnJrrOucBFPz8LduO5wEU/Pwva37nART8/C6QZucBFPz8LXBhSlqxp//94iYHafSUk1qnAgdp9JSTWCL6JxnU5vPMmoonGdTm882KhicZ1ObzzqKaJxnU5vPNGtf9/B2MAADIJ/3+KCmcmwsj/f3UkPwv33v9/dSQ/C/fe/391JD8LWCH/f3UkPwtYIf9/bWD//zKJ/38AACTWYbj/fz4cvPNZof9/Phy881mh/38+HLzzAaP/fz4cvPMBo4Nrg2sAAMAG8SzxLGcmnszxLPEsZya6zkU/RT8/C9rfRT9FPz8LduNFP0U/PwtcGEU/RT8/C6QZrGmsaf//eIl9JX0lJNapwHU5dTm882KhdTl1ObzzJqJ1OXU5vPNGtXU5dTm886imB2P/fwAAAACKCv9/ZybY2IoK/39nJozcdST/fz8LyOV1JP9/Pwt/7HUk/38/C0gCdST/fz8LSAJtYP9///8QiQAA/38k1ibTPhz/f7zzkqE+HP9/vPOSoT4c/3+883LQPhz/f7zztbyDa3uUAADABvEsDdNnJlHq8SwN02cmpe5FP7nAPwut70U/ucA/Cwb4RT+5wD8LXBhFP7nAPwukGaxpUpb//3iJfSWB2iTWOOp1OYnGvPNioXU5ica88yaidTmJxrzzWO11OYnGvPPw2P7//3+8uvoC+YJBxWyuCwtH//h++P62gAuLktH+//9/IoIEufnGIwIIhTGlp/20gEn/qH3M2gkFqvNufMM3xhkEPH8V+j0CJARO5RNR3aV2KOD+eye47Ux2MmsSDL0aTwW/MUePJswJrB7JESHz/38DKywvbzApLAQsuDrGPU4uQtXweQ8GQ1X/fwAAGCrYJlmHcRiOZ1oHpyR5G4wXah+QA6tzthqTShMWkFajKx1LWglSXQEEKWARMyg4mxhsQ4Qe+0LlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzxR7cQYBSH+3AAaBAAD/fwAA/3+1AFaCVwJKf5QnBnT5C5OnVAyQg043maFsNbWa4TSjq24pE5bWHwCErSJZiddHEbOTPJuY+UDNuPJC5LDXS0CN4kYcof7/InPVU26w01ACq7FRxb1GRQOs7/m7qrwqDob/f///KFeupXCYpPileI3nlWCLl4ZkpqRu/FOMgGoDvDlmw7cZbAPO/Vv6vf371Z+k9qyi7czWx21qVq8xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_73jrr")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ofap7"]
[sub_resource type="ArrayMesh" id="ArrayMesh_0jqxs"]
_surfaces = [{
"aabb": AABB(-0.164082, -0.159022, -0.503171, 0.326304, 0.318045, 0.680812),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("/3+RnwAAAAD/f///nikAAP9/wOMwDAAA/3+Rn///AAD/f/7/YNYAAP9/wOPO8wAAUpZSlgAAAACB2oHanikAAInGicYwDAAAUpZSlv//AACB2oHaYNYAAInGicbO8wAAkZ//fwAAAAD///9/nikAAMDj/38wDAAAkZ//f///AAD///9/YNYAAMDj/3/O8wAAUpasaQAAAACB2n0lnikAAInGdTkwDAAAUpasaf//AACB2n0lYNYAAInGdTnO8wAA/39tYAAAAAD/fwAAnikAAP9/PhwwDAAA/39tYP//AAD/fwAAYNYAAP9/PhzO8wAArGmsaQAAAAB9JX0lnikAAHU5dTkwDAAArGmsaf//AAB9JX0lYNYAAHU5dTnO8wAAbWD/fwAAAAAAAP9/nikAAD4c/38wDAAAbWD/f///AAAAAP9/YNYAAD4c/3/O8wAArGlSlgAAAAB9JYHanikAAHU5icYwDAAArGlSlv//AAB9JYHaYNYAAHU5icbO8wAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_lqg6m"]
resource_name = "hands_Cylinder_005"
_surfaces = [{
"aabb": AABB(-0.164082, -0.159022, -0.503171, 0.326304, 0.318045, 0.680812),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_ofap7"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("/3+RnwAAMgn/f///nins/f9///+eKez9/3/A4zAMpPv/f8DjMAxYIf9/wOMwDFgh/3/A4zAMpPv/f5Gf//8yif9//v9g1nX9/3/+/2DWdf3/f8DjzvPw9f9/wOPO81mh/3/A487zWaH/f8DjzvPw9VKWUpYAAMAGgdqB2p4pWO6B2oHanilC6onGicYwDAb4icaJxjAMre+JxonGMAykGYnGicYwDFwYUpZSlv//eImB2oHaYNYt5YnGicbO8yaiicaJxs7zYqGJxonGzvPw2InGicbO81jtkZ//fwAAAAD///9/nikV3P///3+eKZTYwOP/fzAMf+zA4/9/MAzI5cDj/38wDEgCwOP/fzAMSAKRn/9///8Qif///39g1mjOwOP/f87zkqHA4/9/zvOSocDj/3/O87W8wOP/f87zctBSlqxpAADABoHafSWeKSfOicZ1OTAMduOJxnU5MAza34nGdTkwDKQZicZ1OTAMXBhSlqxp//94iYHafSVg1kzAgdp9JWDWcL2JxnU5zvMmoonGdTnO82KhicZ1Oc7zqKaJxnU5zvNGtf9/bWAAADIJ/38AAJ4pL8j/fz4cMAz33v9/PhwwDPfe/38+HDAMWCH/fz4cMAxYIf9/bWD//zKJ/38AAGDWz7f/fz4czvNZof9/PhzO81mh/38+HM7zAaP/fz4czvMBo6xprGkAAMAGfSV9JZ4pJ8x9JX0lniknznU5dTkwDNrfdTl1OTAMduN1OXU5MAxcGHU5dTkwDKQZrGmsaf//eIl9JX0lYNZMwHU5dTnO82KhdTl1Oc7zJqJ1OXU5zvNGtXU5dTnO86imbWD/fwAAAAAAAP9/nimU2AAA/3+eKRXcPhz/fzAMyOU+HP9/MAx/7D4c/38wDEgCPhz/fzAMSAJtYP9///8QiQAA/39g1gTTPhz/f87zkqE+HP9/zvOSoT4c/3/O83LQPhz/f87ztbysaVKWAADABn0lgdqeKULqfSWB2p4pWO51OYnGMAyt73U5icYwDAb4dTmJxjAMXBh1OYnGMAykGaxpUpb//3iJfSWB2mDWROp1OYnGzvNioXU5icbO8yaidTmJxs7zWO11OYnGzvPw2P7//38Qu8UCxYLtxGyuCwtH//h+9/62gAuLktH+//9/RYKEuHrHRgIIhTGlp/21gEn/p33M2gkFqvNufJk3ghmOO4cV+j0CJARO5RNR3aV2KOD+eye47Uw+MiwSDL0aTwW/MUePJswJrB7JESHz/3/+Kt8uDjAULAQsuDrGPU4uQtXweQ8GQ1X/fwAACSqPJlmHcRiOZ1oHpyR5G4wXah+QA6tz2hpIShMWkFajKx1LWglSXQEEKWARMyg4SxgqQ6IevULlMAw9zTgFPx0hHDlBDSg0AAD/fwAA/3+DDs6UzhR7cQcBSH+3AAaBAAD/fwAA/3+1AFeCVwJJf5MnBnT4C5OnVAyQg243SqG2Ndma4TSjq24pE5bWHwCErSJZiddHEbPVPEqY+UDNuPJC5LDXS0CN4kYcof7/InPqUw6wIFH9qrFRxb1GRQOs7/m7qrwqDob/f///UVdPpXCYpPileI3nlWCLl4ZkpqRu/FOMeGqNu31mmLcZbAPO/Vv6vf371Z+k9qyi7czWx3Zq6a4xx/nAGc/ywjZurJ4zdo6m")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_0jqxs")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4qpic"]
[sub_resource type="ArrayMesh" id="ArrayMesh_qgokc"]
_surfaces = [{
"aabb": AABB(-0.152666, -0.337337, -0.820815, 0.712973, 0.51265, 1.09083),
"format": 34896613377,
"index_count": 180,
"index_data": PackedByteArray("HQADAB8AHQABAAMAFAARABYAFAANABEAGgAEAAkAGgAeAAQAAgALAAUAAgAHAAsAGQAXABsAGQATABcAAAACAAEAAwAFAAQABgAIAAcACQALAAoADAAOAA0ADwARABAAEgAUABMAFQAXABYABgACAAAABgAHAAIAAQAFAAMAAQACAAUABAALAAkABAAFAAsACgAHAAgACgALAAcAGAAIAAYAGAAZAAgAGgAXABUAGgAbABcAFgATABQAFgAXABMADAAUABIADAANABQAFQARAA8AFQAWABEAEAANAA4AEAARAA0AHAAOAAwAHAAdAA4AHgADAAQAHgAfAAMAGAAMABIAGAAcAAwABgAcABgABgAAABwADwAfAB4ADwAQAB8AAAAdABwAAAABAB0ACQAbABoACQAKABsAEgAZABgAEgATABkACAAbAAoACAAZABsAFQAeABoAFQAPAB4ADgAfABAADgAdAB8A"),
"lods": [0.238092, PackedByteArray("DgABAAMADgADABAAEwAOABAAEwAQABcADAAOABMAFQAXABAADAATABIAFQAQAA8AFQAPAB4AFQAeABoAGgAeAAQAGgAEAAkABwAMABIAEgATAAcABwABAAwAAQAOAAwADwAQAAMADwADAB4AHgADAAQABwALAAUAAQAHAAUAEwAXAAsABwATAAsAGgALABcACQALABoAGgAXABUAAwAFAAQAAQAFAAMABAALAAkABAAFAAsA")],
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 32,
"vertex_data": PackedByteArray("fRcAAD/mAABuDiQi//8AAAAAAh66+wAAbg703P//AADAF///9uUAAAAAid66+wAAwSlzN0oOAAAyFCRVZA0AAEkr0FsAAAAABird/00OAABJKwbcAAAAADIUid5kDQAAVOoNYLNiAAD//zuJb1oAAFrwhoXMcgAAHerk771iAABa8H3LzHIAAP//+slvWgAAZOpoX0MUAAAe6puD5QUAAP//O4kiFQAAIOon8EAUAAD///rJIhUAAB7qUszlBQAAWXoqSMoQAAAfe3ZsdwIAAGR6SvnKEAAAH3t01XcCAACyby8onL4AAPJsuEtS1AAAwm9C+Xa+AADybKbVUtQAAA==")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_qhvx2"]
resource_name = "hands_Cube_002"
_surfaces = [{
"aabb": AABB(-0.152666, -0.337337, -0.820815, 0.712973, 0.51265, 1.09083),
"attribute_data": PackedByteArray("EydDRVYl/z9+a9AEN2z///8fbUPzapH8hJTQBI+Udv2PlP///59lDP+fKPfX2EtFC5X//wuVkfxcJ8d7/x+RfPNqbcPWKP9/yWtxuP+fZbj/n3TDAaBluIvYxntBlHG4RpT/vwuV/78LlW3DBllER/9fSUfKcElHtVv/P/hvLzv/n/o9qKD8PQunSUcMkC87/59kOzSP/z80j0lHqFjTeblZ/3+eb42H/1+1eMpwtXj/nxKHI6EoeW2n1Hk0j7V4/5+1eE6Q/39ukI2H/Dv2ekk9/39kbf2j/5/Co/7D9nqnkv2j+DsaRhU8/z9dbY8b/58jIQLEIEalko8bViX/P1Yl/z9+a9AEN2z//zds//+ElNAEhJTQBI+Udv2PlP///59lDP+fKPf/nyj319hLRQuV//8LlZH8C5WR/AuVkfwLlZH8/x+RfPNqbcPzam3D/59luP+fdMMLlW3DC5VtwwuVbcMLlW3DBllER7Vb/z/4by87/5/6PQyQLzuoWNN5uVn/f55vjYeeb42HbafUeW6QjYdukI2H/5/Co/7D9nr/nyMhAsQgRg=="),
"format": 34896613399,
"index_count": 180,
"index_data": PackedByteArray("OwAGAD4AOwACAAYAKwAmAC8AKwAdACYANwALABYANwA9AAsABQAaAA0ABQAQABoANQAyADgANQApADIAAAAEAAEABwAMAAoADgARAA8AFQAZABgAGwAeABwAIQAlACQAJwAqACgALQAxADAADgAEAAAADgAPAAQAAwANAAgAAwAFAA0ACgAaABQACgANABoAFwAQABIAFwAaABAAMwARAA4AMwA0ABEANgAyACwANgA4ADIALwApACsALwAyACkAGwArACcAGwAdACsALgAmACIALgAvACYAIwAdAB8AIwAmAB0AOQAeABsAOQA6AB4APAAGAAkAPAA+AAYAMwAbACcAMwA5ABsADgA5ADMADgAAADkAIAA+ADwAIAAjAD4AAAA6ADkAAAABADoAEwA4ADYAEwAXADgAJwA0ADMAJwAoADQAEgA4ABcAEgA1ADgALgA9ADcALgAiAD0AHwA+ACMAHwA7AD4A"),
"lods": [0.238092, PackedByteArray("XABBAEQAXABEAF4AYQBcAF4AYQBeAGQAWgBcAGEAYwBkAF4AWgBhAF8AYwBeACIAYwAiAGkAYwBpAGcAZwBpAEsAZwBLABYAUQBaAF8AXwBgAFEAUQBAAFoAPwBbAFoAXQBeAEUAXQBFAGgAaABFAEgAUgBWAE0AQwBSAE8AYgBlAFcAUwBiAFkAZgBXAGUAVABXAGYAZgBlACwARgBMAEkAQgBOAEcASgBYAFUASgBQAFgA")],
"material": SubResource("StandardMaterial3D_4qpic"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 106,
"vertex_data": PackedByteArray("fRcAAD/mp71uDiQi//+3l24OJCL//8rAbg4kIv//ysAAAAIeuvt7xgAAAh66+x7Tbg703P//2cpuDvTc//+MLW4O9Nz//7vCwBf///bleubAF///9uXstcAX///25Q7uAACJ3rr7HRgAAIneuvt1wMEpczdKDonTMhQkVWQNld8yFCRVZA3e6Ukr0FsAACrySSvQWwAAwv4GKt3/TQ6A1gYq3f9NDkrQBird/00O1eYGKt3/TQ5T9EkrBtwAAELuSSsG3AAAkPIyFIneZA0M0zIUid5kDQLZVOoNYLNi+rn//zuJb1ohwv//O4lvWtfHWvCGhcxyNq1a8IaFzHLPxR3q5O+9YiviHerk771ixucd6uTvvWKF+lrwfcvMcjvPWvB9y8xy1NT///rJb1qM1///+slvWuDcZOpoX0MUmtEe6puD5QVD7x7qm4PlBf3q//87iSIVBtn//zuJIhW21yDqJ/BAFLrwIOon8EAUePkg6ifwQBQt+f//+skiFXbk///6ySIVd+Ee6lLM5QXY9h7qUszlBWL9WXoqSMoQFdMfe3ZsdwKH8R97dmx3Ah3zZHpK+coQkeNkekr5yhAv/x97dNV3Atv3sm8vKJy+TLbybLhLUtSVovJsuEtS1EDCwm9C+Xa+2eTCb0L5dr7v+PJsptVS1BjObg4kIv//mqhuDiQi//9NwW4OJCL//9DGbg4kIv//crxuDiQi//8lw24O9Nz//6HIbg703P//KM1uDvTc///YKG4O9Nz//y/EwBf///bltd7AF///9uUnpsAX///25UfBwBf///blYfIAAIneuvsxJgAAid66++PQAACJ3rr7P7MAAIneuvtNwgAAid66++vGMhQkVWQNFuEyFCRVZA2x4jIUJFVkDf//Bird/00O0doGKt3/TQ5tyjIUid5kDQ7UMhSJ3mQNGu4yFIneZA1ezjIUid5kDcTxVOoNYLNiZr9a8IaFzHKVsVrwhoXMcibIHerk771igt9a8H3LzHIt1GTqaF9DFIjUHuqbg+UFZuge6puD5QVQ0R7qm4PlBX/3IOon8EAUcPce6lLM5QXM5R7qUszlBZHzZHpK+coQEOhkekr5yhDu/sJvQvl2vrXjwm9C+Xa+9vucN6ZqbEwYZPMMCObzDAjmhEvMjRnST/By6NILZ+gcCX/oCQ8M16UaXP/ZmAiFl7Wa9x0tgOnFzeIVSomQPpKeTs3R1hIUbYaiSSRHo7EQtzXjQ6AOkZzGyXkUyi2+e8COjMHkt4aw5crUKsUcMVxIvDFZLCQoXi93Q64jKhsyK+Q7FgTaNxoJYp2Ep/EoYRc0JaIZ/S3gHlgp1iHfFxBXmxkmV4w7qT8dKYg4yytDN36sRqtwPtUUuj56FGsz9SaUN+4jekg3JK01QjYYD1hsoglucjhDS0Rkrk+wF0ugBHS5P7qcOExP/0hyKLESlSk3yAgCCJaaqcgl/g5rSpJWpykBccUHYiQ55TX4ncyt6x8p6xas3PcIY/hiG4f0tBTsy28Te/nFpLTuLKTJhwati+JMHrfbkcxX95beluD52dvr5sNvLaFrpdQv1tnQlrWhrh25AODYpfbRoc2f6yiZ1uTWu4bF98JvMa1Lzjz5NZMd2CsdN4QIhi/OGUgXwFjHCFtkZy+sNIhiLCSpOmgWhyyNKG3g/pnfqTa0UkgmBV7MMQFjlLqp")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_qgokc")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dp5w4"]
[sub_resource type="ArrayMesh" id="ArrayMesh_hm01j"]
_surfaces = [{
"aabb": AABB(-0.185467, -0.203871, -0.536195, 0.61226, 0.407742, 0.704082),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("OtgknFwSAAADuh7yHTgAAGDP79hrHQAAmiyRn2frAAB9Tv//DsEAAIc2wOP/3gAAG+Pmk/EYAAAg5rHQz1IAAMHx4744MgAAzjhSlsnyAAD3f4Ha/t4AABZdicZU9gAAnef/f6sbAABl+P9/3V0AAP///3/WOgAA3D3/f9j1AAB1lP9/ZOsAAA9t/3///wAAG+MYbPEYAAAg5k0vz1IAAMHxG0E4MgAAzjisacnyAAD3f30l/t4AABZddTlU9gAAOtjaY1wSAAADuuANHTgAAGDPDydrHQAAmixtYGfrAAB9TgAADsEAAIc2Phz/3gAAWc0YbMYLAADnjU0vbB0AAACtG0GdCAAAZiCsaQXkAAAEHX0lHaMAAPgPdTmqxwAA18j/fwwJAAChe/9/XhIAAMKe/38AAAAAWBv/f/bgAACFCP9/t5YAAAAA/38AvgAAWc3mk8YLAADnjbHQbB0AAACt476dCAAAZiBSlgXkAAAEHYHaHaMAAPgPicaqxwAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_6mwj2"]
resource_name = "hands_Cylinder_012"
_surfaces = [{
"aabb": AABB(-0.185467, -0.203871, -0.536195, 0.61226, 0.407742, 0.704082),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_dp5w4"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("OtgknFwS0AgDuh7yHTh/6gO6HvIdOBfvYM/v2GsdGeVgz+/Yax3sH2DP79hrHaMfYM/v2Gsd8u2aLJGfZ+timn1O//8OwW3yfU7//w7BAu6HNsDj/97N/4c2wOP/3kaphzbA4//eCqmHNsDj/95j7Bvj5pPxGDAHIOax0M9SS90g5rHQz1Lg18Hx4744MlvkwfHjvjgyOtnB8eO+ODLDGsHx4744MhkYzjhSlsnywpP3f4Ha/t7R1hZdicZU9uiaFl2JxlT2hJgWXYnGVPa+zxZdicZU9iXlnef/f6sbAABl+P9/3V3bz2X4/3/dXVbK////f9Y6597///9/1jo60////3/WOt4D////f9Y63gPcPf9/2PWHj3WU/39k65TDD23/f///cooPbf9///9yig9t/3///1+1D23/f///kMsb4xhs8RgwByDmTS/PUtnJwfEbQTgytd7B8RtBODKw1MHxG0E4MsMawfEbQTgyGRjOOKxpyfLCk/d/fSX+3ha99399Jf7eErkWXXU5VPbomhZddTlU9oSYFl11OVT2YqMWXXU5VPZxtjrY2mNcEtAIA7rgDR04Hcxgzw8nax3S42DPDydrHS/dYM8PJ2sd7B9gzw8nax2jH5osbWBn62KafU4AAA7BG72HNj4c/95GqYc2Phz/3gqphzY+HP/exaeHNj4c/94irVnNGGzGC6cF541NL2wd9tjnjU0vbB0Q2QCtG0GdCCrtAK0bQZ0Iq+oArRtBnQgkFgCtG0GdCAMWZiCsaQXk5J8EHX0lHaOfy/gPdTmqx0u1+A91OarHE7X4D3U5qsfuvfgPdTmqxz2218j/fwwJAAChe/9/XhLo6aF7/39eEtzrwp7/fwAAHvnCnv9/AADL+sKe/38AAKEAwp7/fwAAoQBYG/9/9uABooUI/3+3lkThAAD/fwC+aboAAP9/AL5pugAA/38AvmnZAAD/fwC+RstZzeaTxgunBeeNsdBsHUn9542x0GwdSf8AreO+nQgE+gCt476dCHn0AK3jvp0IJBYAreO+nQgDFmYgUpYF5OSfBB2B2h2jbvn4D4nGqsdLtfgPicaqxxO1+A+JxqrHX/b4D4nGqsfS5NreYoPKwlwSHsDmDL+zXRXQ2JKLvdd7jP1WMgB1n6vWRM3mEBDPWxR3bdmiJb5srZ2/XK1V42kb9dp6f4Q35QxCPCwIgjvfGlhNlguQzVyAz8m+hIuZUNJoMqcABcfBiMzTTIWc5p4PReWSB63Y/39tItMlXSfUI+skzTASNSYoA8I0e8sEBEL/f///vB6hHEqFFjfpSEoFbA7pCqwIdguEAPZaKwmaQxIL5UlBHv5CXABtsr4EL7ZQUnPm0gBJP3UFdUDCCPi4TAUyrE8Oe81uE2jgYwMkoYIUI66WFfOyOwBPZpILLqd8DECoq1aJ4FwcMbRtLdnBXS1gwJ4sNqwGLt3PmQV+nNUyt7M9L8urIzBKvMMf9KaKDoWQ/hOfl7hnROaROWOs2E1Q1UFO0s5mSH6kv0s+vEvr/393TGm4aUjGskhLrcVJO/uzAviDk4QT+4f/f///O04wrk6R9vf2d6/uBlRDoS1bq7CA45mFbl8KvB3IQCUKss4bFsBxLXnvio5f6P2TuZm35+Jcha+tqtfNLLFAzklc957GZHep")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_hm01j")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3m7ur"]
[sub_resource type="ArrayMesh" id="ArrayMesh_rh3fp"]
_surfaces = [{
"aabb": AABB(-0.144408, -0.1543, -0.452541, 0.500823, 0.308601, 0.585226),
"format": 34896613377,
"index_count": 276,
"index_data": PackedByteArray("KwAEAC4AKwABAAQADQAWABAADQATABYAEwAcABYAEwAZABwAGQAiABwAGQAfACIAHwAoACIAHwAlACgAJQAuACgAJQArAC4ABwAQAAoABwANABAADwADAAkAAwAnAC0AJwAbACEAGwAPABUADwAnAAMAJwAPABsAAQAKAAQAAQAHAAoAAQAIAAcAAQACAAgAAgAGAAgAAgAAAAYACgAFAAQACgALAAUACwADAAUACwAJAAMABwAOAA0ABwAIAA4ACAAMAA4ACAAGAAwAEAALAAoAEAARAAsAEQAJAAsAEQAPAAkADQAUABMADQAOABQADgASABQADgAMABIAFgARABAAFgAXABEAFwAPABEAFwAVAA8AEwAaABkAEwAUABoAFAAYABoAFAASABgAHAAXABYAHAAdABcAHQAVABcAHQAbABUAGQAgAB8AGQAaACAAGgAeACAAGgAYAB4AIgAdABwAIgAjAB0AIwAbAB0AIwAhABsAHwAmACUAHwAgACYAIAAkACYAIAAeACQAKAAjACIAKAApACMAKQAhACMAKQAnACEAJQAsACsAJQAmACwAJgAqACwAJgAkACoALgApACgALgAvACkALwAnACkALwAtACcAKwACAAEAKwAsAAIALAAAAAIALAAqAAAABAAvAC4ABAAFAC8ABQAtAC8ABQADAC0AKgAGAAAABgASAAwAEgAeABgAHgAqACQAKgASAAYAEgAqAB4A"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("Ed7ymWoPAABLxDfpHC8AAIXWANKyGAAARSmRnz7tAACgSP//r8YAAHQywOPz4QAAWedZkvAUAADt6WbKhUUAANnz+7kpKgAAjzRSlvfzAABndoHa8eEAACFWicYy9wAAMuv/fzoXAACD+f9/zU4AAP///39lMQAAPDn/f8D2AABdif9/PO0AAOhk/3///wAAWeelbfAUAADt6Zg1hUUAANnzA0YpKgAAjzSsaffzAABndn0l8eEAACFWdTky9wAAEd4MZmoPAABLxMcWHC8AAIXW/i2yGAAARSltYD7tAACgSAAAr8YAAHQyPhzz4QAAydSlbeMJAACqnpg1tBgAADG5A0Y7BwAA+h2saYXmAADZGn0lbKsAAMcOdTm0zAAA8dD/f5kHAAATj/9/aw8AAAut/38AAAAATRn/f7zjAADiB/9/IaAAAAAA/3/nwwAAydRZkuMJAACqnmbKtBgAADG5+7k7BwAA+h1SloXmAADZGoHabKsAAMcOica0zAAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_3qmci"]
resource_name = "hands_Cylinder_013"
_surfaces = [{
"aabb": AABB(-0.144408, -0.1543, -0.452541, 0.500823, 0.308601, 0.585226),
"attribute_data": PackedByteArray("/7/YsAAAMGv//zBrhwP/fzS7i4TKxIuEd/z/f/8/2LAAAM8U///PFIcDAAA0O4uEykSLhHf8AAC2yki1/98wa//fMGt33P9/huP/f6XmkZJt7ViZtkpItf/fzxSmZpGSbW1YmXfcAACG4wAAJs//v/+/MGv/vzBrd7z/f4fD/39z+zS7c/vKxCZP/7//v88Uc3s0u3N7ysR3vAAAh8MAALbKtsr/nzBrd5z/f4ej/3+l5m3tbe2l5rZKtsr/n88U/5/PFKZmbe1tbaXmd5wAAIejAAD/vybP/38wa3d8/3+Hg/9/NLtz+8rEc/v/PybP/3/PFDQ7c/vKRHP7d3wAAIeDAABItbbK/18wa/9fMGt3XP9/h2P/f5GSpeZYmW3tSDW2yv9fzxSREqXmWRlt7XdcAACHYwAA2LD/v/8/MGv/PzBrdzz/f4dD/3+LhDS7i4TKxNgw/7//P88UiwQ0u4sEysR3PAAAh0MAAEi1SLX/HzBr/x8wa3gc/3+HI/9/kZJYmViZkZJINUi1/x/PFJESWJlZGZGSeBwAAIcjAAA="),
"format": 34896613399,
"index_count": 276,
"index_data": PackedByteArray("XAAIAGMAXAABAAgAHAAvACMAHAApAC8AKQA8ADAAKQA2ADwANgBJADwANgBDAEkAQgBWAEkAQgBQAFYATwBjAFYATwBdAGMADwAjABYADwAdACMAIgAHABUABwBVAGIAVQA7AEgAOwAiAC4AIgBVAAcAVQAiADsAAgAWAAkAAgAQABYAAgASABAAAgAGABIABQAOABMABQAAAA4AFgANAAkAFgAaAA0AFwAHAAwAFwAVAAcADwAfAB0ADwARAB8AFAAbACAAFAAOABsAIwAZABYAIwAnABkAJAAVABgAJAAiABUAHAArACkAHAAeACsAIQAoAC0AIQAbACgALwAmACMALwA0ACYAMgAiACUAMgAuACIAKQA4ADYAKQAqADgALAA1ADoALAAoADUAPAAzADAAPABAADMAPgAuADEAPgA7AC4ANgBFAEMANgA3AEUAOQBBAEcAOQA1AEEASQA/ADwASQBNAD8ASwA7AD0ASwBIADsAQgBSAFAAQgBEAFIARgBOAFQARgBBAE4AVgBMAEkAVgBaAEwAWABIAEoAWABVAEgATwBfAF0ATwBRAF8AUwBbAGAAUwBOAFsAYwBZAFYAYwBnAFkAZABVAFcAZABiAFUAXAADAAEAXABeAAMAYQAAAAQAYQBbAAAACABmAGMACAAKAGYACwBiAGUACwAHAGIAWwAOAAAADgAoABsAKABBADUAQQBbAE4AWwAoAA4AKABbAEEA"),
"material": SubResource("StandardMaterial3D_3m7ur"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 104,
"vertex_data": PackedByteArray("Ed7ymWoP0AhLxDfpHC9R6kvEN+kcLw3vhdYA0rIYGeWF1gDSshjsH4XWANKyGKMfhdYA0rIY8u1FKZGfPu1imqBI//+vxkbyoEj//6/GEu50MsDj8+HN/3QywOPz4UapdDLA4/PhCql0MsDj8+Fj7FnnWZLwFDAH7elmyoVFVt3t6WbKhUXT19nz+7kpKlvk2fP7uSkqOtnZ8/u5KSrDGtnz+7kpKhkYjzRSlvfzwpNndoHa8eHo1iFWicYy9+iaIVaJxjL3hJghVonGMve+zyFWicYy9yXlMuv/fzoXAACD+f9/zU7zz4P5/3/NTl3K////f2Ux597///9/ZTE60////39lMd4D////f2Ux3gM8Of9/wPaHj12J/3887arD6GT/f///coroZP9///9yiuhk/3///1+16GT/f///kMtZ56Vt8BQwB+3pmDWFRQzK2fMDRikqtd7Z8wNGKSqw1NnzA0YpKsMa2fMDRikqGRiPNKxp9/PCk2d2fSXx4Sm9Z3Z9JfHhQbkhVnU5MvfomiFWdTky94SYIVZ1OTL3YqMhVnU5MvdxthHeDGZqD9AIS8THFhwvacyF1v4tshjR44XW/i2yGC/dhdb+LbIY7B+F1v4tshijH0UpbWA+7WKaoEgAAK/Ga710Mj4c8+FGqXQyPhzz4QqpdDI+HPPhxad0Mj4c8+EircnUpW3jCacFqp6YNbQYYNmqnpg1tBh12TG5A0Y7ByrtMbkDRjsHq+oxuQNGOwckFjG5A0Y7BwMW+h2saYXm5J/ZGn0lbKv/y8cOdTm0zEu1xw51ObTME7XHDnU5tMzuvccOdTm0zD228dD/f5kHAAATj/9/aw8/6hOP/39rD0fsC63/fwAAHvkLrf9/AADL+gut/38AAKEAC63/fwAAoQBNGf9/vOMBouIH/38hoIHhAAD/f+fDaboAAP9/58NpugAA/3/nw2nZAAD/f+fDRsvJ1FmS4wmnBaqeZsq0GHj9qp5myrQY9f4xufu5OwcE+jG5+7k7B3n0Mbn7uTsHJBYxufu5OwcDFvodUpaF5uSf2RqB2myrffnHDonGtMxLtccOica0zBO1xw6JxrTMX/bHDonGtMzS5NreYoOQwmASyr+xDL+zXRXQ2JKLvdd7jP1WMgB1n6vWD83yEMjOQxR3bdmiJb5srZ2/XK1V42kb9dp6f4o3Dg1iPD0IgjvfGlhNlguQzVyAz8m+hIuZUNKDMsMABcfBiMzTTIWc5p4PReWSB63Y/39yIuQlcyfdI+skzTASNSYoA8I0e8sEBEL/f///xh6zHEqFFjfpSEoFbA7pCqwIdguEAPZaOQmaQxIL5UlBHv5CXABtsr4EL7ZQUnPm9QBpP3sFiEDCCPi4TAUyrE8Oe81uE2jgYwMkoU8UB66WFfKyOwBQZpILLqd8DECoq1aJ4DscC7RtLdnBXS1gwJ4sNqwGLt3PmQV+nLYyAbTPLperIzBKvMMf9KaKDoWQ/hOfl7hnROZcOZms2E1Q1UFO0s5mSH6kv0s+vEvr/39tTMK4GUjIskhLrcVJO/uzAviDk4QT+4f/f///JU6Erk6R9vf2d6/uBlRDoS1bq7CA45mFi19uvPXHaCUKss4bFsBxLXnvio5f6P2TuZm35+pc3q+tqtfNLLFAzklc957GZHep")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_rh3fp")
[sub_resource type="Animation" id="Animation_vd3w6"]
resource_name = "cut"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("right:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.666667, 1.8),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(1.529, -1.30596, -5.5502), Vector3(3.529, -1.306, -5.55), Vector3(1.529, -1.30596, -5.5502)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Gun:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.633333, 1.8),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.366, -3.018, -4.98549), Vector3(2.366, -3.018, -4.985), Vector3(0.366, -3.018, -4.98549)]
}
[sub_resource type="Animation" id="Animation_6u5o2"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("right:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1.52892, 0.965126, 0.576701)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Gun:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.366, -3.018, -4.98549)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6seua"]
_data = {
"RESET": SubResource("Animation_6u5o2"),
"cut": SubResource("Animation_vd3w6")
}
[node name="Gun_tscn" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.276554)
script = ExtResource("1_4mygo")
[node name="Gun" parent="." instance=ExtResource("1_kae7b")]
transform = Transform3D(0.0497166, -0.0579712, 0.997079, 0.919169, 0.393193, -0.0229712, -0.390713, 0.917627, 0.0728335, 0.366, -3.018, -4.98549)
[node name="right" type="Node3D" parent="."]
transform = Transform3D(0.228516, -0.938075, 0.260376, 0.875837, 0.314871, 0.365741, -0.425077, 0.14447, 0.893553, 1.52892, 0.965126, 0.576701)
[node name="hand" type="MeshInstance3D" parent="right"]
transform = Transform3D(-0.312899, -0.949787, 0, 0.949787, -0.312899, 0, 0, 0, 1, 0.369001, -0.251728, 0.916718)
mesh = SubResource("ArrayMesh_kns8q")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="right/hand"]
transform = Transform3D(0.957393, -0.06084, -0.282309, 0.243093, 0.69751, 0.674081, 0.155902, -0.713987, 0.682581, 2.38419e-07, -0.118853, 0.00119281)
mesh = SubResource("ArrayMesh_714yc")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="right/hand"]
transform = Transform3D(0.945132, -0.16655, -0.281047, -0.16655, 0.494447, -0.853102, 0.281047, 0.853102, 0.439579, 0.635515, 0, -1.8433)
mesh = SubResource("ArrayMesh_8khc4")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="right/hand/index_0"]
transform = Transform3D(0.95427, -0.13881, -0.264764, -0.13881, 0.57865, -0.803676, 0.264764, 0.803676, 0.532921, -5.96046e-08, -2.38419e-07, -0.520542)
mesh = SubResource("ArrayMesh_pl1un")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="right/hand/index_0/index_1"]
transform = Transform3D(0.985969, -0.0425897, -0.161403, -0.0425897, 0.870721, -0.489929, 0.161403, 0.489929, 0.85669, 1.19209e-07, 0, -0.496836)
mesh = SubResource("ArrayMesh_jg5hp")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="right/hand"]
transform = Transform3D(0.965771, -0.103899, -0.237678, -0.1039, 0.684619, -0.721458, 0.237678, 0.721458, 0.65039, 0.198897, -0.0623038, -1.80889)
mesh = SubResource("ArrayMesh_r4jrw")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="right/hand/middle_0"]
transform = Transform3D(0.906071, -0.285115, -0.31264, -0.285115, 0.134549, -0.949002, 0.31264, 0.949002, 0.0406201, 0, 0, -0.595449)
mesh = SubResource("ArrayMesh_b8au2")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="right/hand/middle_0/middle_1"]
transform = Transform3D(0.985257, -0.0447521, -0.165125, -0.0447522, 0.864157, -0.501228, 0.165125, 0.501228, 0.849414, 2.98023e-08, 1.19209e-07, -0.576577)
mesh = SubResource("ArrayMesh_7ykdv")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="right/hand"]
transform = Transform3D(0.9268, -0.222195, -0.302773, -0.222195, 0.32554, -0.91905, 0.302773, 0.91905, 0.25234, -0.622972, 0.0423272, -1.9112)
mesh = SubResource("ArrayMesh_pfqob")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="right/hand/pinky_0"]
transform = Transform3D(0.958759, -0.125184, -0.255166, -0.125184, 0.62001, -0.774543, 0.255166, 0.774543, 0.578769, 0, 1.19209e-07, -0.508631)
mesh = SubResource("ArrayMesh_274rt")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="right/hand/pinky_0/pinky_1"]
transform = Transform3D(0.965526, -0.104645, -0.238348, -0.104645, 0.682355, -0.723492, 0.238348, 0.723492, 0.647881, 0, 1.19209e-07, -0.484157)
mesh = SubResource("ArrayMesh_kxx5d")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="right/hand"]
transform = Transform3D(0.931227, -0.208757, -0.298725, -0.208756, 0.366331, -0.906765, 0.298725, 0.906765, 0.297558, -0.215029, 0.0199759, -1.93774)
mesh = SubResource("ArrayMesh_3t00j")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="right/hand/ring_0"]
transform = Transform3D(0.930646, -0.210521, -0.299298, -0.210521, 0.360975, -0.908503, 0.299298, 0.908503, 0.29162, 0, 0, -0.578411)
mesh = SubResource("ArrayMesh_1inwa")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="right/hand/ring_0/ring_1"]
transform = Transform3D(0.979851, -0.0611603, -0.190134, -0.0611603, 0.814351, -0.577141, 0.190134, 0.577141, 0.794202, -5.96046e-08, 0, -0.558439)
mesh = SubResource("ArrayMesh_lqg6m")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="right/hand"]
transform = Transform3D(0.614061, -1.01465, -0.173846, 0.990312, 0.637515, -0.222865, 0.281112, -0.0294568, 1.16487, 0.71163, -0.0538707, -0.365427)
mesh = SubResource("ArrayMesh_qhvx2")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="right/hand/thumb_0"]
transform = Transform3D(0.908938, 0.00954206, 0.416821, 0.00954201, 0.999, -0.0436773, -0.416821, 0.0436773, 0.907938, 0.418848, -8.9407e-08, -0.541475)
mesh = SubResource("ArrayMesh_6mwj2")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="right/hand/thumb_0/thumb_1"]
transform = Transform3D(0.65913, 0.0357186, 0.75118, 0.0357186, 0.996257, -0.0787137, -0.751181, 0.0787137, 0.655387, 0.286444, -2.98023e-08, -0.397435)
mesh = SubResource("ArrayMesh_3qmci")
skeleton = NodePath("")
[node name="left" type="Node3D" parent="."]
transform = Transform3D(-1, 8.74228e-08, 0, -6.88384e-08, -0.787419, -0.616418, -5.38889e-08, -0.616418, 0.787419, -1.06996, -1.23858, -7.04537)
[node name="hand" type="MeshInstance3D" parent="left"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.916718)
mesh = SubResource("ArrayMesh_kns8q")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="left/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.118854, 0.00119257)
mesh = SubResource("ArrayMesh_714yc")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="left/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.635515, 0, -1.8433)
mesh = SubResource("ArrayMesh_8khc4")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="left/hand/index_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.520542)
mesh = SubResource("ArrayMesh_pl1un")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="left/hand/index_0/index_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.496836)
mesh = SubResource("ArrayMesh_jg5hp")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="left/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.219422, 0, -1.96367)
mesh = SubResource("ArrayMesh_r4jrw")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="left/hand/middle_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.595449)
mesh = SubResource("ArrayMesh_b8au2")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="left/hand/middle_0/middle_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.576577)
mesh = SubResource("ArrayMesh_7ykdv")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="left/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.636916, 0, -1.87594)
mesh = SubResource("ArrayMesh_pfqob")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="left/hand/pinky_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.508631)
mesh = SubResource("ArrayMesh_274rt")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="left/hand/pinky_0/pinky_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157)
mesh = SubResource("ArrayMesh_kxx5d")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="left/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22161, 0, -1.94957)
mesh = SubResource("ArrayMesh_3t00j")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="left/hand/ring_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.578411)
mesh = SubResource("ArrayMesh_1inwa")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="left/hand/ring_0/ring_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439)
mesh = SubResource("ArrayMesh_lqg6m")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="left/hand"]
transform = Transform3D(1.19867, 0, 0, 0, 1.19867, 0, 0, 0, 1.19867, 0.71163, -0.0538707, -0.365427)
mesh = SubResource("ArrayMesh_qhvx2")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="left/hand/thumb_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.418848, 0, -0.541475)
mesh = SubResource("ArrayMesh_6mwj2")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="left/hand/thumb_0/thumb_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.286444, 0, -0.397435)
mesh = SubResource("ArrayMesh_3qmci")
skeleton = NodePath("")
[node name="ShotAnimation" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_6seua")
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://wma4lndjhlvl"]
[node name="Deagle" type="Node3D"]

Some files were not shown because too many files have changed in this diff Show More