diff --git a/.gitattributes b/.gitattributes index 94b635c8..8b58c39d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,3 +4,4 @@ *.godot eol=lf *.tres eol=lf *.import eol=lf +*.gdshader eol=lf diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 75d90d51..240ac123 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -28,11 +28,6 @@ jobs: cp demo/godot-xr-tools/VERSIONS.md plugin/godot-xr-tools/addons/godot-xr-tools rm -rf demo/godot-xr-tools/.git rm -rf demo/godot-xr-tools/.github - - name: Add OpenXR Plugin - run: | - wget --header "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://github.com/GodotVR/godot_openxr/releases/download/1.3.0/godot-openxr.zip" - unzip -qq godot-openxr.zip - cp -r godot_openxr_1.3.0/addons/godot-openxr demo/godot-xr-tools/addons - name: Create XR tools library artifact uses: actions/upload-artifact@v2 with: diff --git a/.github/workflows/gdlint-on-push.yml b/.github/workflows/gdlint-on-push.yml index b0efc009..536d57d7 100644 --- a/.github/workflows/gdlint-on-push.yml +++ b/.github/workflows/gdlint-on-push.yml @@ -19,7 +19,8 @@ jobs: - name: Install Dependencies run: | python -m pip install --upgrade pip - python -m pip install 'gdtoolkit==3.*' + python -m pip install 'gdtoolkit==4.*' - name: Lint Godot XR Tools run: | gdlint addons/godot-xr-tools + diff --git a/.gitignore b/.gitignore index 3807a7c3..887f3a04 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,12 @@ -# Godot files to ignore +*.o +*.os .import/ - -# Filesystem files to ignore +.godot/ +*.dblite +*.exp +*.lib +*.obj +*.TMP logs Thumbs.db -.DS_Store - -# Addons sourced externally -addons/godot-openxr/ - -# Blender backup files -*.blend1 +android/ diff --git a/LICENSE b/LICENSE index e55a66ac..f8f1c828 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2023 Bastiaan Olij +Copyright (c) 2018-2023 Bastiaan Olij and 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 diff --git a/README.md b/README.md index b8760846..bebfa757 100644 --- a/README.md +++ b/README.md @@ -28,15 +28,17 @@ This repository now contains a full demo for XR Tools with the XR Tools add on i After cloning this repository you will need to install the OpenXR plugin for it to work. The OpenXR plugin is not included within this repository. You can obtain the OpenXR plugin [here](https://github.com/GodotVR/godot_openxr/releases) or download it from the asset library within Godot. +Note that the demo in the 4.0-dev branch has been upgraded to work with the most recent 4.0-beta releases. + ### XR Tools library To obtain just the XR Tools library for your own project, please check [releases](https://github.com/GodotVR/godot-xr-tools/releases) or download it from the asset library within Godot. -### Preventing hiccups +### Preventing hickups -As many of the functions in this module will hide objects that are later shown as the user performs actions, the user will experience a hiccup as Godot compiles the shader used to draw the object on screen. +As many of the functions in this module will hide objects that are later shown as the user performs actions, the user will experience a hickup as Godot compiles the shader used to draw the object on screen. -To combat this you will find a scene in this module called `misc/vr_common_shader_cache.tscn`. +To combat this you will find a scene in this module called `misc/VR_Common_Shader_Cache.tscn`. Add this scene as a child node to your ARVRCamera. This will trigger the required shaders being compiled the first time your main scene loads. diff --git a/VERSIONS.md b/VERSIONS.md index ff100907..e5da9f2c 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -1,3 +1,9 @@ +# 4.0.0 +- Conversion to Godot 4 +- Fixed footstep resource leak and added jump sounds and footstep signal +- Added grab-point switching to pickable objects +- Added return-to-snap-zone feature + # 3.4.0 - Fixed footstep resource leak and added jump sounds and footstep signal - Added grab-point switching to pickable objects diff --git a/addons/godot-xr-tools/assets/misc/Hold trigger to continue.png.import b/addons/godot-xr-tools/assets/misc/Hold trigger to continue.png.import index 4aebaa09..172212e6 100644 --- a/addons/godot-xr-tools/assets/misc/Hold trigger to continue.png.import +++ b/addons/godot-xr-tools/assets/misc/Hold trigger to continue.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.s3tc.stex" -path.etc="res://.import/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.etc.stex" +type="CompressedTexture2D" +uid="uid://ocyj01x5mtt7" +path.s3tc="res://.godot/imported/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.s3tc.ctex" +path.etc2="res://.godot/imported/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" -dest_files=[ "res://.import/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.s3tc.stex", "res://.import/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.etc.stex" ] +dest_files=["res://.godot/imported/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.s3tc.ctex", "res://.godot/imported/Hold trigger to continue.png-ce0a3a4de13c262f7015326bad2cb09d.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/assets/misc/progress_bar.png.import b/addons/godot-xr-tools/assets/misc/progress_bar.png.import index 9c5c3938..45517bb7 100644 --- a/addons/godot-xr-tools/assets/misc/progress_bar.png.import +++ b/addons/godot-xr-tools/assets/misc/progress_bar.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/progress_bar.png-2ef3cbffca173889900be004fdeb1700.s3tc.stex" -path.etc="res://.import/progress_bar.png-2ef3cbffca173889900be004fdeb1700.etc.stex" +type="CompressedTexture2D" +uid="uid://clbtsf0ahb3fm" +path.s3tc="res://.godot/imported/progress_bar.png-2ef3cbffca173889900be004fdeb1700.s3tc.ctex" +path.etc2="res://.godot/imported/progress_bar.png-2ef3cbffca173889900be004fdeb1700.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/assets/misc/progress_bar.png" -dest_files=[ "res://.import/progress_bar.png-2ef3cbffca173889900be004fdeb1700.s3tc.stex", "res://.import/progress_bar.png-2ef3cbffca173889900be004fdeb1700.etc.stex" ] +dest_files=["res://.godot/imported/progress_bar.png-2ef3cbffca173889900be004fdeb1700.s3tc.ctex", "res://.godot/imported/progress_bar.png-2ef3cbffca173889900be004fdeb1700.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/assets/resource_queue/resource_queue.gd b/addons/godot-xr-tools/assets/resource_queue/resource_queue.gd deleted file mode 100644 index 9822fb4c..00000000 --- a/addons/godot-xr-tools/assets/resource_queue/resource_queue.gd +++ /dev/null @@ -1,221 +0,0 @@ -class_name XRToolsResourceQueue -extends Node - - -## XRTools Threaded Resource Loader -## -## This class can be used to perform resource loading in the background without -## interrupting the application. - - -# Thread to perform the loading -var _thread : Thread - -# Mutex for safe synchronization -var _mutex : Mutex - -# Semaphore to wake up the loader thread -var _semaphore : Semaphore - -# Thread exit flag -var _exit_thread : bool = false - -# Queue of ResourceInteractiveLoader instances loading resources -var _queue = [] - -# Dictionary of pending results by resource path. -# -# If the resource is still loading then the value is a ResourceInteractiveLoader. -# If the resource has loaded then the value is a Resource. -var _pending = {} - - -## Queue the loading of a resource -func queue_resource(path : String, p_in_front : bool = false) -> void: - # Lock the synchronization mutex - _mutex.lock() - - # Test if the resource has already been queued - if path in _pending: - # Work already queued, nothing to do. - _mutex.unlock() - return - - # Test if the ResourceLoader already has it cached - if ResourceLoader.has_cached(path): - # Put the resource in the pending-results dictionary - _pending[path] = ResourceLoader.load(path) - _mutex.unlock() - return - - # Construct a ResourceInteractiveLoader for the resource - var loader = ResourceLoader.load_interactive(path) - - # Save the resource path in the metadata for later use - loader.set_meta("path", path) - - # Insert into the loading-queue (front for high priority) - if p_in_front: - _queue.push_front(loader) - else: - _queue.push_back(loader) - - # Save the loader in the pending-results dictionary - _pending[path] = loader - - # Post the semaphore to wake the worker thread - _mutex.unlock() - _semaphore.post() - - -## Cancel loading a resource -func cancel_resource(path : String) -> void: - # Lock the synchronization mutex - _mutex.lock() - - # Inspect the pending-results dictionary - if path in _pending: - # Extract the item from the pending-results dictionary - var item = _pending[path] - _pending.erase(path) - - # If the item is still being loaded then remove it from the loading-queue - if item is ResourceInteractiveLoader: - _queue.erase(item) - - # Loading cancelled - _mutex.unlock() - - -## Get the progress of a loading resource -func get_progress(path : String) -> float: - # Lock the synchronization mutex - _mutex.lock() - - # Inspect the pending results dictionary for the progress - var progress := -1.0 - if path in _pending: - var item = _pending[path] - if item is ResourceInteractiveLoader: - # The item is still loading, calculate the progress - progress = float(item.get_stage()) / float(item.get_stage_count()) - else: - # The item is fully loaded - progress = 1.0 - - # Return the progress - _mutex.unlock() - return progress - - -## Test if a resouece is ready -func is_ready(path : String) -> bool: - # Lock the synchronization mutex - _mutex.lock() - - # Inspect the pending results dictionary for the ready status - var ready := false - if path in _pending: - var item = _pending[path] - ready = not item is ResourceInteractiveLoader - - # Return the ready status - _mutex.unlock() - return ready - - -## Get the resource -func get_resource(path : String) -> Resource: - # Lock the synchronization mutex - _mutex.lock() - - # Test if the resource is unknown - if not path in _pending: - # Not queued, just load immediately - _mutex.unlock() - return ResourceLoader.load(path) - - # Loop waiting for resource to load - var res - while true: - # Get the item from the pending-results dictionary - res = _pending[path] - - # Detect loading complete - if res == null or res is Resource: - break - - # Give thread more time to load the item - _mutex.unlock() - OS.delay_usec(16000) # Wait approximately 1 frame. - _mutex.lock(); - - _pending.erase(path) - _mutex.unlock() - return res - - -## Start the resource queue -func start(): - _mutex = Mutex.new() - _semaphore = Semaphore.new() - _thread = Thread.new() - _thread.start(self, "_thread_func", 0) - - -# Triggered by calling "get_tree().quit()". -func _exit_tree(): - _mutex.lock() - _exit_thread = true # Protect with Mutex. - _mutex.unlock() - - # Wake the worker thread - _semaphore.post() - - # Wait until it exits. - _thread.wait_to_finish() - - -# Thread worker function -func _thread_func(_u): - # Lock the synchronization mutex - _mutex.lock() - - # Loop processing work - while true: - # Handle a request to terminate - if _exit_thread: - _mutex.unlock() - return - - # Handle no work - if _queue.size() == 0: - # Wait for work (with the mutex unlocked so work can be added) - _mutex.unlock() - _semaphore.wait() - _mutex.lock() - continue - - # Get the loader - var loader : ResourceInteractiveLoader = _queue.front() - - # Poll the loader (with the mutex unlocked) - _mutex.unlock() - var err = loader.poll() - _mutex.lock() - - # If loader is still busy then continue - if err == OK: - continue - - # Remove from the loading-queue. Note that something may have been - # put at the front of the queue while we polled, so use erase instead - # of remove - _queue.erase(loader) - - # Get the resource path from the loaders metadata - var path : String = loader.get_meta("path") - - # If the result is still pending then update it with the resource - if path in _pending: - _pending[path] = loader.get_resource() diff --git a/addons/godot-xr-tools/audio/surface_audio.gd b/addons/godot-xr-tools/audio/surface_audio.gd index bbd1dffc..9d339c43 100644 --- a/addons/godot-xr-tools/audio/surface_audio.gd +++ b/addons/godot-xr-tools/audio/surface_audio.gd @@ -1,5 +1,6 @@ -tool -class_name XRToolsSurfaceAudio, "res://addons/godot-xr-tools/editor/icons/foot.svg" +@tool +@icon("res://addons/godot-xr-tools/editor/icons/foot.svg") +class_name XRToolsSurfaceAudio extends Node @@ -11,23 +12,21 @@ extends Node ## XRToolsSurfaceAudioType to associate with this surface -export var surface_audio_type : Resource +@export var surface_audio_type : XRToolsSurfaceAudioType # Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsSurfaceAudio" or .is_class(name) +func is_xr_class(name : String) -> bool: + return name == "XRToolsSurfaceAudio" # This method checks for configuration issues. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Verify the camera if !surface_audio_type: - return "Surface audio type not specified" - - # Verify hit sound - if !surface_audio_type is XRToolsSurfaceAudioType: - return "Surface audio type is not an XRToolsSurfaceAudioType" + warnings.append("Surface audio type not specified") - # No configuration issues detected - return "" + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/audio/surface_audio_type.gd b/addons/godot-xr-tools/audio/surface_audio_type.gd index 209aae0e..f991d74f 100644 --- a/addons/godot-xr-tools/audio/surface_audio_type.gd +++ b/addons/godot-xr-tools/audio/surface_audio_type.gd @@ -1,5 +1,6 @@ -tool -class_name XRToolsSurfaceAudioType, "res://addons/godot-xr-tools/editor/icons/body.svg" +@tool +@icon("res://addons/godot-xr-tools/editor/icons/body.svg") +class_name XRToolsSurfaceAudioType extends Resource @@ -10,29 +11,31 @@ extends Resource ## Surface name -export var name : String = "" +@export var name : String = "" ## Optional audio stream to play when the player jumps on this surface -export var jump_sound : AudioStream +@export var jump_sound : AudioStream ## Optional audio stream to play when the player lands on this surface -export var hit_sound : AudioStream +@export var hit_sound : AudioStream ## Audio streams to play when the player walks on this surface -export(Array, AudioStream) var walk_sounds : Array = [] +@export var walk_sounds :Array[AudioStream] = [] ## Walking sound minimum pitch (to randomize steps) -export(float, 0.5, 1.0) var walk_pitch_minimum : float = 0.8 +@export_range(0.5, 1.0) var walk_pitch_minimum : float = 0.8 ## Walking sound maximum pitch (to randomize steps) -export(float, 1.0, 2.0) var walk_pitch_maximum : float = 1.2 +@export_range(1.0, 2.0) var walk_pitch_maximum : float = 1.2 # This method checks for configuration issues. -func _get_configuration_warning(): - # Verify the name +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + + # Verify the camera if name == "": - return "Surface audio type must have a name" + warnings.append("Surface audio type must have a name") - # No configuration issues detected - return "" + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/editor/icons/body.svg.import b/addons/godot-xr-tools/editor/icons/body.svg.import index 1e8d1742..787be507 100644 --- a/addons/godot-xr-tools/editor/icons/body.svg.import +++ b/addons/godot-xr-tools/editor/icons/body.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/body.svg-324e141d452c32f3136ca97c338025b4.stex" +type="CompressedTexture2D" +uid="uid://cyg33jxco0rh6" +path="res://.godot/imported/body.svg-324e141d452c32f3136ca97c338025b4.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/editor/icons/body.svg" -dest_files=[ "res://.import/body.svg-324e141d452c32f3136ca97c338025b4.stex" ] +dest_files=["res://.godot/imported/body.svg-324e141d452c32f3136ca97c338025b4.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-xr-tools/editor/icons/foot.svg.import b/addons/godot-xr-tools/editor/icons/foot.svg.import index dfeeede1..15c8f098 100644 --- a/addons/godot-xr-tools/editor/icons/foot.svg.import +++ b/addons/godot-xr-tools/editor/icons/foot.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/foot.svg-9e361563e010aa07be49bfb25fdb6639.stex" +type="CompressedTexture2D" +uid="uid://bfkcd3fkyahqu" +path="res://.godot/imported/foot.svg-9e361563e010aa07be49bfb25fdb6639.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/editor/icons/foot.svg" -dest_files=[ "res://.import/foot.svg-9e361563e010aa07be49bfb25fdb6639.stex" ] +dest_files=["res://.godot/imported/foot.svg-9e361563e010aa07be49bfb25fdb6639.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-xr-tools/editor/icons/function.svg.import b/addons/godot-xr-tools/editor/icons/function.svg.import index 3994debd..2e4ed639 100644 --- a/addons/godot-xr-tools/editor/icons/function.svg.import +++ b/addons/godot-xr-tools/editor/icons/function.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/function.svg-52c5f936037e0f38a4da2b1e16ae67fe.stex" +type="CompressedTexture2D" +uid="uid://b5vxil50s0ofi" +path="res://.godot/imported/function.svg-52c5f936037e0f38a4da2b1e16ae67fe.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/editor/icons/function.svg" -dest_files=[ "res://.import/function.svg-52c5f936037e0f38a4da2b1e16ae67fe.stex" ] +dest_files=["res://.godot/imported/function.svg-52c5f936037e0f38a4da2b1e16ae67fe.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-xr-tools/editor/icons/hand.svg.import b/addons/godot-xr-tools/editor/icons/hand.svg.import index bb4a971d..c59f938f 100644 --- a/addons/godot-xr-tools/editor/icons/hand.svg.import +++ b/addons/godot-xr-tools/editor/icons/hand.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/hand.svg-a05486d804ef16320d6cf54e06292b8f.stex" +type="CompressedTexture2D" +uid="uid://beko1qhyybx7e" +path="res://.godot/imported/hand.svg-a05486d804ef16320d6cf54e06292b8f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/editor/icons/hand.svg" -dest_files=[ "res://.import/hand.svg-a05486d804ef16320d6cf54e06292b8f.stex" ] +dest_files=["res://.godot/imported/hand.svg-a05486d804ef16320d6cf54e06292b8f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-xr-tools/editor/icons/movement_provider.svg.import b/addons/godot-xr-tools/editor/icons/movement_provider.svg.import index 877a3580..65c9b74a 100644 --- a/addons/godot-xr-tools/editor/icons/movement_provider.svg.import +++ b/addons/godot-xr-tools/editor/icons/movement_provider.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/movement_provider.svg-3c994cf0a3775c20f333be563d69fbf8.stex" +type="CompressedTexture2D" +uid="uid://04fn15h4x333" +path="res://.godot/imported/movement_provider.svg-3c994cf0a3775c20f333be563d69fbf8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/editor/icons/movement_provider.svg" -dest_files=[ "res://.import/movement_provider.svg-3c994cf0a3775c20f333be563d69fbf8.stex" ] +dest_files=["res://.godot/imported/movement_provider.svg-3c994cf0a3775c20f333be563d69fbf8.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-xr-tools/editor/icons/node.svg.import b/addons/godot-xr-tools/editor/icons/node.svg.import index 49ae5fa7..87553f5a 100644 --- a/addons/godot-xr-tools/editor/icons/node.svg.import +++ b/addons/godot-xr-tools/editor/icons/node.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/node.svg-37d53571b4a4459efefcc791c5402b4f.stex" +type="CompressedTexture2D" +uid="uid://b6gwa6o27pbry" +path="res://.godot/imported/node.svg-37d53571b4a4459efefcc791c5402b4f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/editor/icons/node.svg" -dest_files=[ "res://.import/node.svg-37d53571b4a4459efefcc791c5402b4f.stex" ] +dest_files=["res://.godot/imported/node.svg-37d53571b4a4459efefcc791c5402b4f.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-xr-tools/effects/vignette.gd b/addons/godot-xr-tools/effects/vignette.gd index e4e7e758..c8bb62a5 100644 --- a/addons/godot-xr-tools/effects/vignette.gd +++ b/addons/godot-xr-tools/effects/vignette.gd @@ -1,26 +1,26 @@ -tool +@tool class_name XRToolsVignette -extends Spatial +extends Node3D -export var radius : float = 1.0 setget set_radius -export var fade : float = 0.05 setget set_fade -export var steps : int = 32 setget set_steps +@export var radius : float = 1.0: set = set_radius +@export var fade : float = 0.05: set = set_fade +@export var steps : int = 32: set = set_steps -export var auto_adjust : bool = true setget set_auto_adjust -export var auto_inner_radius : float = 0.35 -export var auto_fade_out_factor : float = 1.5 -export var auto_fade_delay : float = 1.0 -export var auto_rotation_limit : float = 20.0 setget set_auto_rotation_limit -export var auto_velocity_limit : float = 10.0 +@export var auto_adjust : bool = true: set = set_auto_adjust +@export var auto_inner_radius : float = 0.35 +@export var auto_fade_out_factor : float = 1.5 +@export var auto_fade_delay : float = 1.0 +@export var auto_rotation_limit : float = 20.0: set = set_auto_rotation_limit +@export var auto_velocity_limit : float = 10.0 -var material : ShaderMaterial = preload("res://addons/godot-xr-tools/effects/vignette.material") +var material : ShaderMaterial = preload("res://addons/godot-xr-tools/effects/vignette.tres") var auto_first = true var fade_delay = 0.0 var origin_node = null var last_origin_basis : Basis var last_location : Vector3 -onready var auto_rotation_limit_rad = deg2rad(auto_rotation_limit) +@onready var auto_rotation_limit_rad = deg_to_rad(auto_rotation_limit) func set_radius(new_radius : float) -> void: radius = new_radius @@ -30,7 +30,7 @@ func set_radius(new_radius : float) -> void: func _update_radius() -> void: if radius < 1.0: if material: - material.set_shader_param("radius", radius * sqrt(2)) + material.set_shader_parameter("radius", radius * sqrt(2)) $Mesh.visible = true else: $Mesh.visible = false @@ -42,7 +42,7 @@ func set_fade(new_fade : float) -> void: func _update_fade() -> void: if material: - material.set_shader_param("fade", fade) + material.set_shader_parameter("fade", fade) func set_steps(new_steps : int) -> void: @@ -51,13 +51,13 @@ func set_steps(new_steps : int) -> void: _update_mesh() func _update_mesh() -> void: - var vertices : PoolVector3Array - var indices : PoolIntArray + var vertices : PackedVector3Array + var indices : PackedInt32Array vertices.resize(2 * steps) indices.resize(6 * steps) for i in steps: - var v : Vector3 = Vector3.RIGHT.rotated(Vector3.FORWARD, deg2rad((360.0 * i) / steps)) + var v : Vector3 = Vector3.RIGHT.rotated(Vector3.FORWARD, deg_to_rad((360.0 * i) / steps)) vertices[i] = v vertices[steps+i] = v * 2.0 @@ -77,13 +77,14 @@ func _update_mesh() -> void: arr[ArrayMesh.ARRAY_VERTEX] = vertices arr[ArrayMesh.ARRAY_INDEX] = indices arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arr) + arr_mesh.custom_aabb = AABB(Vector3(-1.0, -1.0, -1.0), Vector3(1.0, 1.0, 1.0)) $Mesh.mesh = arr_mesh - $Mesh.set_surface_material(0, material) + $Mesh.set_surface_override_material(0, material) func set_auto_adjust(new_auto_adjust : bool) -> void: auto_adjust = new_auto_adjust - if is_inside_tree() and !Engine.editor_hint: + if is_inside_tree() and !Engine.is_editor_hint(): _update_auto_adjust() func _update_auto_adjust() -> void: @@ -94,18 +95,18 @@ func _update_auto_adjust() -> void: func set_auto_rotation_limit(new_auto_rotation_limit : float) -> void: auto_rotation_limit = new_auto_rotation_limit - auto_rotation_limit_rad = deg2rad(auto_rotation_limit) + auto_rotation_limit_rad = deg_to_rad(auto_rotation_limit) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsVignette" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsVignette" # Called when the node enters the scene tree for the first time. func _ready(): - if !Engine.editor_hint: - origin_node = ARVRHelpers.get_arvr_origin(self) + if !Engine.is_editor_hint(): + origin_node = XRHelpers.get_xr_origin(self) _update_mesh() _update_radius() _update_fade() @@ -115,7 +116,7 @@ func _ready(): # Called on process func _process(delta): - if Engine.editor_hint: + if Engine.is_editor_hint(): return if !origin_node: @@ -144,7 +145,7 @@ func _process(delta): # Adjust radius based on rotation speed of our origin point (not of head movement). # We convert our delta rotation to a quaterion. # A quaternion represents a rotation around an angle. - var q = delta_b.get_rotation_quat() + var q = delta_b.get_rotation_quaternion() # We get our angle from our w component and then adjust to get a # rotation speed per second by dividing by delta @@ -177,16 +178,18 @@ func _process(delta): # This method verifies the vignette has a valid configuration. # Specifically it checks the following: -# - ARVROrigin is a parent -# - ARVRCamera is our parent -func _get_configuration_warning(): +# - XROrigin3D is a parent +# - XRCamera3D is our parent +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Check the origin node - if !ARVRHelpers.get_arvr_origin(self): - return "Parent node must be in a branch from ARVROrigin" + if !XRHelpers.get_xr_origin(self): + warnings.append("Parent node must be in a branch from XROrigin3D") # check camera node var parent = get_parent() - if !parent or !parent is ARVRCamera: - return "Parent node must be an ARVRCamera" + if !parent or !parent is XRCamera3D: + warnings.append("Parent node must be an XRCamera3D") - return "" + return warnings diff --git a/addons/godot-xr-tools/effects/vignette.gdshader b/addons/godot-xr-tools/effects/vignette.gdshader index f5c33c39..1309301e 100644 --- a/addons/godot-xr-tools/effects/vignette.gdshader +++ b/addons/godot-xr-tools/effects/vignette.gdshader @@ -1,7 +1,7 @@ shader_type spatial; -render_mode depth_test_disable, skip_vertex_transform, unshaded; +render_mode depth_test_disabled, skip_vertex_transform, unshaded, cull_disabled; -uniform vec4 color : hint_color = vec4(0.0, 0.0, 0.0, 1.0); +uniform vec4 color : source_color = vec4(0.0, 0.0, 0.0, 1.0); uniform float radius = 1.0; uniform float fade = 0.05; @@ -23,6 +23,8 @@ void vertex() { // and we offset our inner circle v.xy += eye.xy / eye.z; } + + // looks like this is broken in Godot 4... POSITION = vec4(v, 1.0); } diff --git a/addons/godot-xr-tools/effects/vignette.material b/addons/godot-xr-tools/effects/vignette.material deleted file mode 100644 index 7df199e0..00000000 Binary files a/addons/godot-xr-tools/effects/vignette.material and /dev/null differ diff --git a/addons/godot-xr-tools/effects/vignette.tres b/addons/godot-xr-tools/effects/vignette.tres new file mode 100644 index 00000000..0acb398d --- /dev/null +++ b/addons/godot-xr-tools/effects/vignette.tres @@ -0,0 +1,10 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://cesiqdvdfojle"] + +[ext_resource type="Shader" path="res://addons/godot-xr-tools/effects/vignette.gdshader" id="1_x02h0"] + +[resource] +render_priority = 0 +shader = ExtResource("1_x02h0") +shader_parameter/color = Color(0, 0, 0, 1) +shader_parameter/radius = 0.2 +shader_parameter/fade = 0.05 diff --git a/addons/godot-xr-tools/effects/vignette.tscn b/addons/godot-xr-tools/effects/vignette.tscn index 5765d172..3ac97d33 100644 --- a/addons/godot-xr-tools/effects/vignette.tscn +++ b/addons/godot-xr-tools/effects/vignette.tscn @@ -1,26 +1,27 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://cc6ngdqie8o8c"] -[ext_resource path="res://addons/godot-xr-tools/effects/vignette.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/effects/vignette.material" type="Material" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/effects/vignette.gd" id="1"] +[ext_resource type="Material" uid="uid://cesiqdvdfojle" path="res://addons/godot-xr-tools/effects/vignette.tres" id="2_djtaj"] -[sub_resource type="ArrayMesh" id=1] -surfaces/0 = { -"aabb": AABB( -2, -2, 0, 4, 4, 1e-05 ), -"array_data": PoolByteArray( 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 123, 63, 194, 197, 71, 190, 0, 0, 0, 0, 94, 131, 108, 63, 22, 239, 195, 190, 0, 0, 0, 0, 49, 219, 84, 63, 218, 57, 14, 191, 0, 0, 0, 0, 243, 4, 53, 63, 243, 4, 53, 191, 0, 0, 0, 0, 218, 57, 14, 63, 49, 219, 84, 191, 0, 0, 0, 0, 21, 239, 195, 62, 94, 131, 108, 191, 0, 0, 0, 0, 196, 197, 71, 62, 190, 20, 123, 191, 0, 0, 0, 0, 46, 189, 59, 179, 0, 0, 128, 191, 0, 0, 0, 0, 194, 197, 71, 190, 190, 20, 123, 191, 0, 0, 0, 0, 20, 239, 195, 190, 95, 131, 108, 191, 0, 0, 0, 0, 217, 57, 14, 191, 50, 219, 84, 191, 0, 0, 0, 0, 243, 4, 53, 191, 243, 4, 53, 191, 0, 0, 0, 0, 50, 219, 84, 191, 217, 57, 14, 191, 0, 0, 0, 0, 94, 131, 108, 191, 23, 239, 195, 190, 0, 0, 0, 0, 191, 20, 123, 191, 193, 197, 71, 190, 0, 0, 0, 0, 0, 0, 128, 191, 46, 189, 187, 51, 0, 0, 0, 0, 191, 20, 123, 191, 189, 197, 71, 62, 0, 0, 0, 0, 94, 131, 108, 191, 21, 239, 195, 62, 0, 0, 0, 0, 48, 219, 84, 191, 219, 57, 14, 63, 0, 0, 0, 0, 244, 4, 53, 191, 242, 4, 53, 63, 0, 0, 0, 0, 221, 57, 14, 191, 47, 219, 84, 63, 0, 0, 0, 0, 26, 239, 195, 190, 94, 131, 108, 63, 0, 0, 0, 0, 198, 197, 71, 190, 190, 20, 123, 63, 0, 0, 0, 0, 46, 222, 76, 50, 0, 0, 128, 63, 0, 0, 0, 0, 200, 197, 71, 62, 190, 20, 123, 63, 0, 0, 0, 0, 27, 239, 195, 62, 93, 131, 108, 63, 0, 0, 0, 0, 215, 57, 14, 63, 51, 219, 84, 63, 0, 0, 0, 0, 241, 4, 53, 63, 245, 4, 53, 63, 0, 0, 0, 0, 49, 219, 84, 63, 219, 57, 14, 63, 0, 0, 0, 0, 95, 131, 108, 63, 21, 239, 195, 62, 0, 0, 0, 0, 191, 20, 123, 63, 188, 197, 71, 62, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 251, 63, 194, 197, 199, 190, 0, 0, 0, 0, 94, 131, 236, 63, 22, 239, 67, 191, 0, 0, 0, 0, 49, 219, 212, 63, 218, 57, 142, 191, 0, 0, 0, 0, 243, 4, 181, 63, 243, 4, 181, 191, 0, 0, 0, 0, 218, 57, 142, 63, 49, 219, 212, 191, 0, 0, 0, 0, 21, 239, 67, 63, 94, 131, 236, 191, 0, 0, 0, 0, 196, 197, 199, 62, 190, 20, 251, 191, 0, 0, 0, 0, 46, 189, 187, 179, 0, 0, 0, 192, 0, 0, 0, 0, 194, 197, 199, 190, 190, 20, 251, 191, 0, 0, 0, 0, 20, 239, 67, 191, 95, 131, 236, 191, 0, 0, 0, 0, 217, 57, 142, 191, 50, 219, 212, 191, 0, 0, 0, 0, 243, 4, 181, 191, 243, 4, 181, 191, 0, 0, 0, 0, 50, 219, 212, 191, 217, 57, 142, 191, 0, 0, 0, 0, 94, 131, 236, 191, 23, 239, 67, 191, 0, 0, 0, 0, 191, 20, 251, 191, 193, 197, 199, 190, 0, 0, 0, 0, 0, 0, 0, 192, 46, 189, 59, 52, 0, 0, 0, 0, 191, 20, 251, 191, 189, 197, 199, 62, 0, 0, 0, 0, 94, 131, 236, 191, 21, 239, 67, 63, 0, 0, 0, 0, 48, 219, 212, 191, 219, 57, 142, 63, 0, 0, 0, 0, 244, 4, 181, 191, 242, 4, 181, 63, 0, 0, 0, 0, 221, 57, 142, 191, 47, 219, 212, 63, 0, 0, 0, 0, 26, 239, 67, 191, 94, 131, 236, 63, 0, 0, 0, 0, 198, 197, 199, 190, 190, 20, 251, 63, 0, 0, 0, 0, 46, 222, 204, 50, 0, 0, 0, 64, 0, 0, 0, 0, 200, 197, 199, 62, 190, 20, 251, 63, 0, 0, 0, 0, 27, 239, 67, 63, 93, 131, 236, 63, 0, 0, 0, 0, 215, 57, 142, 63, 51, 219, 212, 63, 0, 0, 0, 0, 241, 4, 181, 63, 245, 4, 181, 63, 0, 0, 0, 0, 49, 219, 212, 63, 219, 57, 142, 63, 0, 0, 0, 0, 95, 131, 236, 63, 21, 239, 67, 63, 0, 0, 0, 0, 191, 20, 251, 63, 188, 197, 199, 62, 0, 0, 0, 0 ), -"array_index_data": PoolByteArray( 32, 0, 33, 0, 1, 0, 32, 0, 1, 0, 0, 0, 33, 0, 34, 0, 2, 0, 33, 0, 2, 0, 1, 0, 34, 0, 35, 0, 3, 0, 34, 0, 3, 0, 2, 0, 35, 0, 36, 0, 4, 0, 35, 0, 4, 0, 3, 0, 36, 0, 37, 0, 5, 0, 36, 0, 5, 0, 4, 0, 37, 0, 38, 0, 6, 0, 37, 0, 6, 0, 5, 0, 38, 0, 39, 0, 7, 0, 38, 0, 7, 0, 6, 0, 39, 0, 40, 0, 8, 0, 39, 0, 8, 0, 7, 0, 40, 0, 41, 0, 9, 0, 40, 0, 9, 0, 8, 0, 41, 0, 42, 0, 10, 0, 41, 0, 10, 0, 9, 0, 42, 0, 43, 0, 11, 0, 42, 0, 11, 0, 10, 0, 43, 0, 44, 0, 12, 0, 43, 0, 12, 0, 11, 0, 44, 0, 45, 0, 13, 0, 44, 0, 13, 0, 12, 0, 45, 0, 46, 0, 14, 0, 45, 0, 14, 0, 13, 0, 46, 0, 47, 0, 15, 0, 46, 0, 15, 0, 14, 0, 47, 0, 48, 0, 16, 0, 47, 0, 16, 0, 15, 0, 48, 0, 49, 0, 17, 0, 48, 0, 17, 0, 16, 0, 49, 0, 50, 0, 18, 0, 49, 0, 18, 0, 17, 0, 50, 0, 51, 0, 19, 0, 50, 0, 19, 0, 18, 0, 51, 0, 52, 0, 20, 0, 51, 0, 20, 0, 19, 0, 52, 0, 53, 0, 21, 0, 52, 0, 21, 0, 20, 0, 53, 0, 54, 0, 22, 0, 53, 0, 22, 0, 21, 0, 54, 0, 55, 0, 23, 0, 54, 0, 23, 0, 22, 0, 55, 0, 56, 0, 24, 0, 55, 0, 24, 0, 23, 0, 56, 0, 57, 0, 25, 0, 56, 0, 25, 0, 24, 0, 57, 0, 58, 0, 26, 0, 57, 0, 26, 0, 25, 0, 58, 0, 59, 0, 27, 0, 58, 0, 27, 0, 26, 0, 59, 0, 60, 0, 28, 0, 59, 0, 28, 0, 27, 0, 60, 0, 61, 0, 29, 0, 60, 0, 29, 0, 28, 0, 61, 0, 62, 0, 30, 0, 61, 0, 30, 0, 29, 0, 62, 0, 63, 0, 31, 0, 62, 0, 31, 0, 30, 0, 63, 0, 32, 0, 0, 0, 63, 0, 0, 0, 31, 0 ), -"blend_shape_data": [ ], -"format": 2194689, +[sub_resource type="ArrayMesh" id="ArrayMesh_yyajy"] +_surfaces = [{ +"aabb": AABB(-2, -2, 0, 4, 4, 1e-05), +"format": 4097, "index_count": 192, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 64 -} +"index_data": PackedByteArray(32, 0, 33, 0, 1, 0, 32, 0, 1, 0, 0, 0, 33, 0, 34, 0, 2, 0, 33, 0, 2, 0, 1, 0, 34, 0, 35, 0, 3, 0, 34, 0, 3, 0, 2, 0, 35, 0, 36, 0, 4, 0, 35, 0, 4, 0, 3, 0, 36, 0, 37, 0, 5, 0, 36, 0, 5, 0, 4, 0, 37, 0, 38, 0, 6, 0, 37, 0, 6, 0, 5, 0, 38, 0, 39, 0, 7, 0, 38, 0, 7, 0, 6, 0, 39, 0, 40, 0, 8, 0, 39, 0, 8, 0, 7, 0, 40, 0, 41, 0, 9, 0, 40, 0, 9, 0, 8, 0, 41, 0, 42, 0, 10, 0, 41, 0, 10, 0, 9, 0, 42, 0, 43, 0, 11, 0, 42, 0, 11, 0, 10, 0, 43, 0, 44, 0, 12, 0, 43, 0, 12, 0, 11, 0, 44, 0, 45, 0, 13, 0, 44, 0, 13, 0, 12, 0, 45, 0, 46, 0, 14, 0, 45, 0, 14, 0, 13, 0, 46, 0, 47, 0, 15, 0, 46, 0, 15, 0, 14, 0, 47, 0, 48, 0, 16, 0, 47, 0, 16, 0, 15, 0, 48, 0, 49, 0, 17, 0, 48, 0, 17, 0, 16, 0, 49, 0, 50, 0, 18, 0, 49, 0, 18, 0, 17, 0, 50, 0, 51, 0, 19, 0, 50, 0, 19, 0, 18, 0, 51, 0, 52, 0, 20, 0, 51, 0, 20, 0, 19, 0, 52, 0, 53, 0, 21, 0, 52, 0, 21, 0, 20, 0, 53, 0, 54, 0, 22, 0, 53, 0, 22, 0, 21, 0, 54, 0, 55, 0, 23, 0, 54, 0, 23, 0, 22, 0, 55, 0, 56, 0, 24, 0, 55, 0, 24, 0, 23, 0, 56, 0, 57, 0, 25, 0, 56, 0, 25, 0, 24, 0, 57, 0, 58, 0, 26, 0, 57, 0, 26, 0, 25, 0, 58, 0, 59, 0, 27, 0, 58, 0, 27, 0, 26, 0, 59, 0, 60, 0, 28, 0, 59, 0, 28, 0, 27, 0, 60, 0, 61, 0, 29, 0, 60, 0, 29, 0, 28, 0, 61, 0, 62, 0, 30, 0, 61, 0, 30, 0, 29, 0, 62, 0, 63, 0, 31, 0, 62, 0, 31, 0, 30, 0, 63, 0, 32, 0, 0, 0, 63, 0, 0, 0, 31, 0), +"primitive": 3, +"vertex_count": 64, +"vertex_data": PackedByteArray(0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 123, 63, 194, 197, 71, 190, 0, 0, 0, 0, 94, 131, 108, 63, 22, 239, 195, 190, 0, 0, 0, 0, 49, 219, 84, 63, 218, 57, 14, 191, 0, 0, 0, 0, 243, 4, 53, 63, 243, 4, 53, 191, 0, 0, 0, 0, 218, 57, 14, 63, 49, 219, 84, 191, 0, 0, 0, 0, 21, 239, 195, 62, 94, 131, 108, 191, 0, 0, 0, 0, 196, 197, 71, 62, 190, 20, 123, 191, 0, 0, 0, 0, 46, 189, 59, 179, 0, 0, 128, 191, 0, 0, 0, 0, 194, 197, 71, 190, 190, 20, 123, 191, 0, 0, 0, 0, 20, 239, 195, 190, 95, 131, 108, 191, 0, 0, 0, 0, 217, 57, 14, 191, 50, 219, 84, 191, 0, 0, 0, 0, 243, 4, 53, 191, 243, 4, 53, 191, 0, 0, 0, 0, 50, 219, 84, 191, 217, 57, 14, 191, 0, 0, 0, 0, 94, 131, 108, 191, 23, 239, 195, 190, 0, 0, 0, 0, 191, 20, 123, 191, 193, 197, 71, 190, 0, 0, 0, 0, 0, 0, 128, 191, 46, 189, 187, 51, 0, 0, 0, 0, 191, 20, 123, 191, 189, 197, 71, 62, 0, 0, 0, 0, 94, 131, 108, 191, 21, 239, 195, 62, 0, 0, 0, 0, 48, 219, 84, 191, 219, 57, 14, 63, 0, 0, 0, 0, 244, 4, 53, 191, 242, 4, 53, 63, 0, 0, 0, 0, 221, 57, 14, 191, 47, 219, 84, 63, 0, 0, 0, 0, 26, 239, 195, 190, 94, 131, 108, 63, 0, 0, 0, 0, 198, 197, 71, 190, 190, 20, 123, 63, 0, 0, 0, 0, 46, 222, 76, 50, 0, 0, 128, 63, 0, 0, 0, 0, 200, 197, 71, 62, 190, 20, 123, 63, 0, 0, 0, 0, 27, 239, 195, 62, 93, 131, 108, 63, 0, 0, 0, 0, 215, 57, 14, 63, 51, 219, 84, 63, 0, 0, 0, 0, 242, 4, 53, 63, 245, 4, 53, 63, 0, 0, 0, 0, 49, 219, 84, 63, 219, 57, 14, 63, 0, 0, 0, 0, 95, 131, 108, 63, 21, 239, 195, 62, 0, 0, 0, 0, 191, 20, 123, 63, 188, 197, 71, 62, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 251, 63, 194, 197, 199, 190, 0, 0, 0, 0, 94, 131, 236, 63, 22, 239, 67, 191, 0, 0, 0, 0, 49, 219, 212, 63, 218, 57, 142, 191, 0, 0, 0, 0, 243, 4, 181, 63, 243, 4, 181, 191, 0, 0, 0, 0, 218, 57, 142, 63, 49, 219, 212, 191, 0, 0, 0, 0, 21, 239, 67, 63, 94, 131, 236, 191, 0, 0, 0, 0, 196, 197, 199, 62, 190, 20, 251, 191, 0, 0, 0, 0, 46, 189, 187, 179, 0, 0, 0, 192, 0, 0, 0, 0, 194, 197, 199, 190, 190, 20, 251, 191, 0, 0, 0, 0, 20, 239, 67, 191, 95, 131, 236, 191, 0, 0, 0, 0, 217, 57, 142, 191, 50, 219, 212, 191, 0, 0, 0, 0, 243, 4, 181, 191, 243, 4, 181, 191, 0, 0, 0, 0, 50, 219, 212, 191, 217, 57, 142, 191, 0, 0, 0, 0, 94, 131, 236, 191, 23, 239, 67, 191, 0, 0, 0, 0, 191, 20, 251, 191, 193, 197, 199, 190, 0, 0, 0, 0, 0, 0, 0, 192, 46, 189, 59, 52, 0, 0, 0, 0, 191, 20, 251, 191, 189, 197, 199, 62, 0, 0, 0, 0, 94, 131, 236, 191, 21, 239, 67, 63, 0, 0, 0, 0, 48, 219, 212, 191, 219, 57, 142, 63, 0, 0, 0, 0, 244, 4, 181, 191, 242, 4, 181, 63, 0, 0, 0, 0, 221, 57, 142, 191, 47, 219, 212, 63, 0, 0, 0, 0, 26, 239, 67, 191, 94, 131, 236, 63, 0, 0, 0, 0, 198, 197, 199, 190, 190, 20, 251, 63, 0, 0, 0, 0, 46, 222, 204, 50, 0, 0, 0, 64, 0, 0, 0, 0, 200, 197, 199, 62, 190, 20, 251, 63, 0, 0, 0, 0, 27, 239, 67, 63, 93, 131, 236, 63, 0, 0, 0, 0, 215, 57, 142, 63, 51, 219, 212, 63, 0, 0, 0, 0, 242, 4, 181, 63, 245, 4, 181, 63, 0, 0, 0, 0, 49, 219, 212, 63, 219, 57, 142, 63, 0, 0, 0, 0, 95, 131, 236, 63, 21, 239, 67, 63, 0, 0, 0, 0, 191, 20, 251, 63, 188, 197, 199, 62, 0, 0, 0, 0) +}] +custom_aabb = AABB(-1, -1, -1, 1, 1, 1) -[node name="Vignette" type="Spatial"] -script = ExtResource( 1 ) +[node name="Vignette" type="Node3D"] +script = ExtResource("1") -[node name="Mesh" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1 ) +[node name="Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1) visible = false -mesh = SubResource( 1 ) -material/0 = ExtResource( 2 ) +cast_shadow = 0 +ignore_occlusion_culling = true +mesh = SubResource("ArrayMesh_yyajy") +surface_material_override/0 = ExtResource("2_djtaj") diff --git a/addons/godot-xr-tools/examples/fall_damage.gd b/addons/godot-xr-tools/examples/fall_damage.gd index caac1891..58dd2f5c 100644 --- a/addons/godot-xr-tools/examples/fall_damage.gd +++ b/addons/godot-xr-tools/examples/fall_damage.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsFallDamage extends XRToolsMovementProvider @@ -32,28 +32,31 @@ signal player_fall_damage(damage) ## Movement provider order -export var order : int = 1000 +@export var order : int = 1000 ## Ignore damage if player is launched up -export var ignore_launch : bool = true +@export var ignore_launch : bool = true ## Only take damage on ground -export var ground_only : bool = false +@export var ground_only : bool = false ## Acceleration limit -export var damage_threshold : float = 8.0 +@export var damage_threshold : float = 8.0 -# Previous velocity +## Previous velocity var _previous_velocity : Vector3 = Vector3.ZERO -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsFallDamage" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsFallDamage" func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Set as always active is_active = true diff --git a/addons/godot-xr-tools/examples/fall_damage.tscn b/addons/godot-xr-tools/examples/fall_damage.tscn index a96970f6..e1b607da 100644 --- a/addons/godot-xr-tools/examples/fall_damage.tscn +++ b/addons/godot-xr-tools/examples/fall_damage.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://d2yejwiwab3wv"] -[ext_resource path="res://addons/godot-xr-tools/examples/fall_damage.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/examples/fall_damage.gd" id="1"] [node name="FallDamage" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/function_pickup.gd b/addons/godot-xr-tools/functions/function_pickup.gd index 6901b96e..35b1eb36 100644 --- a/addons/godot-xr-tools/functions/function_pickup.gd +++ b/addons/godot-xr-tools/functions/function_pickup.gd @@ -1,6 +1,7 @@ -tool -class_name XRToolsFunctionPickup, "res://addons/godot-xr-tools/editor/icons/function.svg" -extends Spatial +@tool +@icon("res://addons/godot-xr-tools/editor/icons/function.svg") +class_name XRToolsFunctionPickup +extends Node3D ## XR Tools Function Pickup Script @@ -31,123 +32,123 @@ const MAX_GRAB_DISTANCE2: float = 1000000.0 ## Pickup enabled property -export var enabled : bool = true +@export var enabled : bool = true ## Grip controller axis -export (XRTools.Axis) var pickup_axis_id = XRTools.Axis.VR_GRIP_AXIS +@export var pickup_axis_action : String = "grip" ## Action controller button -export (XRTools.Buttons) var action_button_id = XRTools.Buttons.VR_TRIGGER +@export var action_button_action : String = "trigger_click" ## Grab distance -export var grab_distance : float = 0.3 setget _set_grab_distance +@export var grab_distance : float = 0.3: set = _set_grab_distance ## Grab collision mask -export (int, LAYERS_3D_PHYSICS) \ - var grab_collision_mask : int = DEFAULT_GRAB_MASK setget _set_grab_collision_mask +@export_flags_3d_physics \ + var grab_collision_mask : int = DEFAULT_GRAB_MASK: set = _set_grab_collision_mask ## If true, ranged-grabbing is enabled -export var ranged_enable : bool = true +@export var ranged_enable : bool = true ## Ranged-grab distance -export var ranged_distance : float = 5.0 setget _set_ranged_distance +@export var ranged_distance : float = 5.0: set = _set_ranged_distance ## Ranged-grab angle -export (float, 0.0, 45.0) var ranged_angle : float = 5.0 setget _set_ranged_angle +@export_range(0.0, 45.0) var ranged_angle : float = 5.0: set = _set_ranged_angle ## Ranged-grab collision mask -export (int, LAYERS_3D_PHYSICS) \ - var ranged_collision_mask : int = DEFAULT_RANGE_MASK setget _set_ranged_collision_mask +@export_flags_3d_physics \ + var ranged_collision_mask : int = DEFAULT_RANGE_MASK: set = _set_ranged_collision_mask ## Throw impulse factor -export var impulse_factor : float = 1.0 +@export var impulse_factor : float = 1.0 ## Throw velocity averaging -export var velocity_samples: int = 5 +@export var velocity_samples: int = 5 # Public fields -var closest_object : Spatial = null -var picked_up_object : Spatial = null -var picked_up_ranged: bool = false -var grip_pressed = false +var closest_object : Node3D = null +var picked_up_object : Node3D = null +var picked_up_ranged : bool = false +var grip_pressed : bool = false # Private fields var _object_in_grab_area := Array() var _object_in_ranged_area := Array() var _velocity_averager := XRToolsVelocityAverager.new(velocity_samples) -var _grab_area : Area -var _grab_collision : CollisionShape -var _ranged_area : Area -var _ranged_collision : CollisionShape +var _grab_area : Area3D +var _grab_collision : CollisionShape3D +var _ranged_area : Area3D +var _ranged_collision : CollisionShape3D ## Controller -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) ## Grip threshold (from configuration) -onready var _grip_threshold : float = XRTools.get_grip_threshold() +@onready var _grip_threshold : float = XRTools.get_grip_threshold() -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsFunctionPickup" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsFunctionPickup" # Called when the node enters the scene tree for the first time. func _ready(): # Skip creating grab-helpers if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Create the grab collision shape - _grab_collision = CollisionShape.new() + _grab_collision = CollisionShape3D.new() _grab_collision.set_name("GrabCollisionShape") - _grab_collision.shape = SphereShape.new() + _grab_collision.shape = SphereShape3D.new() _grab_collision.shape.radius = grab_distance # Create the grab area - _grab_area = Area.new() + _grab_area = Area3D.new() _grab_area.set_name("GrabArea") _grab_area.collision_layer = 0 _grab_area.collision_mask = grab_collision_mask _grab_area.add_child(_grab_collision) - _grab_area.connect("area_entered", self, "_on_grab_entered") - _grab_area.connect("body_entered", self, "_on_grab_entered") - _grab_area.connect("area_exited", self, "_on_grab_exited") - _grab_area.connect("body_exited", self, "_on_grab_exited") + _grab_area.area_entered.connect(_on_grab_entered) + _grab_area.body_entered.connect(_on_grab_entered) + _grab_area.area_exited.connect(_on_grab_exited) + _grab_area.body_exited.connect(_on_grab_exited) add_child(_grab_area) # Create the ranged collision shape - _ranged_collision = CollisionShape.new() + _ranged_collision = CollisionShape3D.new() _ranged_collision.set_name("RangedCollisionShape") - _ranged_collision.shape = CylinderShape.new() + _ranged_collision.shape = CylinderShape3D.new() _ranged_collision.transform.basis = Basis(Vector3.RIGHT, PI/2) # Create the ranged area - _ranged_area = Area.new() + _ranged_area = Area3D.new() _ranged_area.set_name("RangedArea") _ranged_area.collision_layer = 0 _ranged_area.collision_mask = ranged_collision_mask _ranged_area.add_child(_ranged_collision) - _ranged_area.connect("area_entered", self, "_on_ranged_entered") - _ranged_area.connect("body_entered", self, "_on_ranged_entered") - _ranged_area.connect("area_exited", self, "_on_ranged_exited") - _ranged_area.connect("body_exited", self, "_on_ranged_exited") + _ranged_area.area_entered.connect(_on_ranged_entered) + _ranged_area.body_entered.connect(_on_ranged_entered) + _ranged_area.area_exited.connect(_on_ranged_exited) + _ranged_area.body_exited.connect(_on_ranged_exited) add_child(_ranged_area) # Update the colliders _update_colliders() # Monitor Grab Button - _controller.connect("button_pressed", self, "_on_button_pressed") - _controller.connect("button_release", self, "_on_button_release") + get_parent().connect("button_pressed", _on_button_pressed) + get_parent().connect("button_released", _on_button_released) # Called on each frame to update the pickup func _process(delta): # Do not process if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Skip if disabled, or the controller isn't active @@ -155,7 +156,7 @@ func _process(delta): return # Handle our grip - var grip_value = _controller.get_joystick_axis(pickup_axis_id) + var grip_value = _controller.get_float(pickup_axis_action) if (grip_pressed and grip_value < (_grip_threshold - 0.1)): grip_pressed = false _on_grip_release() @@ -177,10 +178,10 @@ func _process(delta): ## Find an [XRToolsFunctionPickup] node. ## ## This function searches from the specified node for an [XRToolsFunctionPickup] -## assuming the node is a sibling of the pickup under an [ARVRController]. +## assuming the node is a sibling of the pickup under an [XRController3D]. static func find_instance(node : Node) -> XRToolsFunctionPickup: - return XRTools.find_child( - ARVRHelpers.get_arvr_controller(node), + return XRTools.find_xr_child( + XRHelpers.get_xr_controller(node), "*", "XRToolsFunctionPickup") as XRToolsFunctionPickup @@ -188,10 +189,10 @@ static func find_instance(node : Node) -> XRToolsFunctionPickup: ## Find the left [XRToolsFunctionPickup] node. ## ## This function searches from the specified node for the left controller -## [XRToolsFunctionPickup] assuming the node is a sibling of the [ARVROrigin]. +## [XRToolsFunctionPickup] assuming the node is a sibling of the [XOrigin3D]. static func find_left(node : Node) -> XRToolsFunctionPickup: - return XRTools.find_child( - ARVRHelpers.get_left_controller(node), + return XRTools.find_xr_child( + XRHelpers.get_left_controller(node), "*", "XRToolsFunctionPickup") as XRToolsFunctionPickup @@ -199,16 +200,16 @@ static func find_left(node : Node) -> XRToolsFunctionPickup: ## Find the right [XRToolsFunctionPickup] node. ## ## This function searches from the specified node for the right controller -## [XRToolsFunctionPickup] assuming the node is a sibling of the [ARVROrigin]. +## [XRToolsFunctionPickup] assuming the node is a sibling of the [XROrigin3D]. static func find_right(node : Node) -> XRToolsFunctionPickup: - return XRTools.find_child( - ARVRHelpers.get_right_controller(node), + return XRTools.find_xr_child( + XRHelpers.get_right_controller(node), "*", "XRToolsFunctionPickup") as XRToolsFunctionPickup -## Get the [ARVRController] driving this pickup. -func get_controller() -> ARVRController: +## Get the [XRController3D] driving this pickup. +func get_controller() -> XRController3D: return _controller @@ -255,13 +256,13 @@ func _update_colliders() -> void: # Update the ranged-grab cylinder if _ranged_collision: - _ranged_collision.shape.radius = tan(deg2rad(ranged_angle)) * ranged_distance + _ranged_collision.shape.radius = tan(deg_to_rad(ranged_angle)) * ranged_distance _ranged_collision.shape.height = ranged_distance _ranged_collision.transform.origin.z = -ranged_distance * 0.5 # Called when an object enters the grab sphere -func _on_grab_entered(target: Spatial) -> void: +func _on_grab_entered(target: Node3D) -> void: # reject objects which don't support picking up if not target.has_method('pick_up'): return @@ -275,7 +276,7 @@ func _on_grab_entered(target: Spatial) -> void: # Called when an object enters the ranged-grab cylinder -func _on_ranged_entered(target: Spatial) -> void: +func _on_ranged_entered(target: Node3D) -> void: # reject objects which don't support picking up rangedly if not 'can_ranged_grab' in target or not target.can_ranged_grab: return @@ -289,19 +290,19 @@ func _on_ranged_entered(target: Spatial) -> void: # Called when an object exits the grab sphere -func _on_grab_exited(target: Spatial) -> void: +func _on_grab_exited(target: Node3D) -> void: _object_in_grab_area.erase(target) # Called when an object exits the ranged-grab cylinder -func _on_ranged_exited(target: Spatial) -> void: +func _on_ranged_exited(target: Node3D) -> void: _object_in_ranged_area.erase(target) # Update the closest object field with the best choice of grab func _update_closest_object() -> void: # Find the closest object we can pickup - var new_closest_obj: Spatial = null + var new_closest_obj: Node3D = null if not picked_up_object: # Find the closest in grab area new_closest_obj = _get_closest_grab() @@ -324,8 +325,8 @@ func _update_closest_object() -> void: # Find the pickable object closest to our hand's grab location -func _get_closest_grab() -> Spatial: - var new_closest_obj: Spatial = null +func _get_closest_grab() -> Node3D: + var new_closest_obj: Node3D = null var new_closest_distance := MAX_GRAB_DISTANCE2 for o in _object_in_grab_area: # skip objects that can not be picked up @@ -344,9 +345,9 @@ func _get_closest_grab() -> Spatial: # Find the rangedly-pickable object closest to our hand's pointing direction -func _get_closest_ranged() -> Spatial: - var new_closest_obj: Spatial = null - var new_closest_angle_dp := cos(deg2rad(ranged_angle)) +func _get_closest_ranged() -> Node3D: + var new_closest_obj: Node3D = null + var new_closest_angle_dp := cos(deg_to_rad(ranged_angle)) var hand_forwards := -global_transform.basis.z for o in _object_in_ranged_area: # skip objects that can not be picked up @@ -378,7 +379,7 @@ func drop_object() -> void: emit_signal("has_dropped") -func _pick_up_object(target: Spatial) -> void: +func _pick_up_object(target: Node3D) -> void: # check if already holding an object if is_instance_valid(picked_up_object): # skip if holding the target object @@ -408,12 +409,12 @@ func _pick_up_object(target: Spatial) -> void: func _on_button_pressed(p_button) -> void: - if p_button == action_button_id: + if p_button == action_button_action: if is_instance_valid(picked_up_object) and picked_up_object.has_method("action"): picked_up_object.action() -func _on_button_release(_p_button) -> void: +func _on_button_released(_p_button) -> void: pass diff --git a/addons/godot-xr-tools/functions/function_pickup.tscn b/addons/godot-xr-tools/functions/function_pickup.tscn index 14aeacfa..9414a6d4 100644 --- a/addons/godot-xr-tools/functions/function_pickup.tscn +++ b/addons/godot-xr-tools/functions/function_pickup.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://b4ysuy43poobf"] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/function_pickup.gd" id="1"] -[node name="FunctionPickup" type="Spatial"] -script = ExtResource( 1 ) +[node name="FunctionPickup" type="Node3D"] +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/function_pointer.gd b/addons/godot-xr-tools/functions/function_pointer.gd index e2f6513f..3fc517f9 100644 --- a/addons/godot-xr-tools/functions/function_pointer.gd +++ b/addons/godot-xr-tools/functions/function_pointer.gd @@ -1,6 +1,7 @@ -tool -class_name XRToolsFunctionPointer, "res://addons/godot-xr-tools/editor/icons/function.svg" -extends Spatial +@tool +@icon("res://addons/godot-xr-tools/editor/icons/function.svg") +class_name XRToolsFunctionPointer +extends Node3D ## XR Tools Function Pointer Script @@ -31,45 +32,43 @@ enum LaserLength { const DEFAULT_MASK := 0b0000_0000_0001_0000_0000_0000_0000_0000 + ## Pointer enabled property -export var enabled : bool = true setget set_enabled +@export var enabled : bool = true: set = set_enabled ## Show laser property -export (LaserShow) var show_laser : int = LaserShow.SHOW setget set_show_laser +@export var show_laser : LaserShow = LaserShow.SHOW: set = set_show_laser ## Laser length property -export (LaserLength) var laser_length : int = LaserLength.FULL +@export var laser_length : LaserLength = LaserLength.FULL ## If true, the pointer target is shown -export var show_target : bool = false +@export var show_target : bool = false ## Y Offset for pointer -export var y_offset : float = -0.05 setget set_y_offset +@export var y_offset : float = -0.05: set = set_y_offset ## Pointer distance -export var distance : float = 10 setget set_distance +@export var distance : float = 10: set = set_distance ## Pointer collision mask -export (int, LAYERS_3D_PHYSICS) var collision_mask : int = DEFAULT_MASK setget set_collision_mask +@export_flags_3d_physics var collision_mask : int = DEFAULT_MASK: set = set_collision_mask ## Enable pointer collision with bodies -export var collide_with_bodies : bool = true setget set_collide_with_bodies +@export var collide_with_bodies : bool = true: set = set_collide_with_bodies ## Enable pointer collision with areas -export var collide_with_areas : bool = false setget set_collide_with_areas - -## Active button -export (XRTools.Buttons) var active_button : int = XRTools.Buttons.VR_TRIGGER +@export var collide_with_areas : bool = false: set = set_collide_with_areas -## Action to monitor (if button set to VR_ACTION) -export var action = "" +## Active button action +@export var active_button_action : String = "trigger_click" ## Current target node -var target : Spatial +var target : Node3D ## Last target node -var last_target : Spatial +var last_target : Node3D ## Last collision point var last_collided_at : Vector3 = Vector3.ZERO @@ -78,60 +77,58 @@ var last_collided_at : Vector3 = Vector3.ZERO var _world_scale : float = 1.0 # Left controller node -var _controller_left_node : ARVRController +var _controller_left_node : XRController3D # Right controller node -var _controller_right_node : ARVRController +var _controller_right_node : XRController3D # Parent controller (if this pointer is childed to a specific controller) -var _controller : ARVRController +var _controller : XRController3D # The currently active controller -var _active_controller : ARVRController +var _active_controller : XRController3D -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsFunctionPointer" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsFunctionPointer" # Called when the node enters the scene tree for the first time. func _ready(): # Do not initialise if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Read the initial world-scale - _world_scale = ARVRServer.world_scale + _world_scale = XRServer.world_scale # Check for a parent controller - _controller = ARVRHelpers.get_arvr_controller(self) + _controller = XRHelpers.get_xr_controller(self) if _controller: # Set as active on the parent controller _active_controller = _controller - # If pointer-trigger is a button then subscribe to button signals - if active_button != XRTools.Buttons.VR_ACTION: - # Get button press feedback from controller - _controller.connect("button_pressed", self, "_on_button_pressed", [_controller]) - _controller.connect("button_release", self, "_on_button_release", [_controller]) + # Get button press feedback from our parent controller + _controller.button_pressed.connect(_on_button_pressed.bind(_controller)) + _controller.button_released.connect(_on_button_released.bind(_controller)) else: # Get the left and right controllers - _controller_left_node = ARVRHelpers.get_left_controller(self) - _controller_right_node = ARVRHelpers.get_right_controller(self) + _controller_left_node = XRHelpers.get_left_controller(self) + _controller_right_node = XRHelpers.get_right_controller(self) # Start out right hand controller _active_controller = _controller_right_node # Get button press feedback from both left and right controllers - _controller_left_node.connect("button_pressed", self, "_on_button_pressed", - [_controller_left_node]) - _controller_left_node.connect("button_release", self, "_on_button_release", - [_controller_left_node]) - _controller_right_node.connect("button_pressed", self, "_on_button_pressed", - [_controller_right_node]) - _controller_right_node.connect("button_release", self, "_on_button_release", - [_controller_right_node]) + _controller_left_node.button_pressed.connect( + _on_button_pressed.bind(_controller_left_node)) + _controller_left_node.button_released.connect( + _on_button_released.bind(_controller_left_node)) + _controller_right_node.button_pressed.connect( + _on_button_pressed.bind(_controller_right_node)) + _controller_right_node.button_released.connect( + _on_button_released.bind(_controller_right_node)) # init our state _update_y_offset() @@ -146,22 +143,15 @@ func _ready(): # Called on each frame to update the pickup func _process(_delta): # Do not process if in the editor - if Engine.editor_hint or !is_inside_tree(): + if Engine.is_editor_hint() or !is_inside_tree(): return # Track the active controller (if this pointer is not childed to a controller) if _controller == null and _active_controller != null: transform = _active_controller.transform - # If pointer-trigger is an action then check for action - if active_button == XRTools.Buttons.VR_ACTION and action != "": - if Input.is_action_just_pressed(action): - _button_pressed() - elif !Input.is_action_pressed(action) and target: - _button_released() - # Handle world-scale changes - var new_world_scale := ARVRServer.world_scale + var new_world_scale := XRServer.world_scale if (_world_scale != new_world_scale): _world_scale = new_world_scale _update_y_offset() @@ -217,7 +207,7 @@ func _process(_delta): if laser_length == LaserLength.COLLIDE: var collide_len : float = new_at.distance_to(global_transform.origin) $Laser.mesh.size.z = collide_len - $Laser.translation.z = collide_len * -0.5 + $Laser.position.z = collide_len * -0.5 # remember our new position last_collided_at = new_at @@ -240,7 +230,7 @@ func _process(_delta): # Restore laser length if set to collide-length if laser_length == LaserLength.COLLIDE: $Laser.mesh.size.z = distance - $Laser.translation.z = distance * -0.5 + $Laser.position.z = distance * -0.5 # Set pointer enabled property @@ -253,7 +243,7 @@ func set_enabled(p_enabled : bool) -> void: # Set show-laser property -func set_show_laser(p_show : int) -> void: +func set_show_laser(p_show : LaserShow) -> void: show_laser = p_show if is_inside_tree(): _update_show_laser() @@ -307,15 +297,15 @@ func _update_show_laser() -> void: # Pointer Y offset update handler func _update_y_offset() -> void: - $Laser.translation.y = y_offset * _world_scale - $RayCast.translation.y = y_offset * _world_scale + $Laser.position.y = y_offset * _world_scale + $RayCast.position.y = y_offset * _world_scale # Pointer distance update handler func _update_distance() -> void: $Laser.mesh.size.z = distance - $Laser.translation.z = distance * -0.5 - $RayCast.cast_to.z = -distance + $Laser.position.z = distance * -0.5 + $RayCast.target_position.z = -distance # Pointer collision mask update handler @@ -359,8 +349,8 @@ func _button_released() -> void: # Button pressed handler -func _on_button_pressed(p_button : int, controller : ARVRController) -> void: - if p_button == active_button and enabled: +func _on_button_pressed(p_button : String, controller : XRController3D) -> void: + if p_button == active_button_action and enabled: if controller == _active_controller: _button_pressed() else: @@ -368,6 +358,6 @@ func _on_button_pressed(p_button : int, controller : ARVRController) -> void: # Button released handler -func _on_button_release(p_button : int, _controller : ARVRController) -> void: - if p_button == active_button and target: +func _on_button_released(p_button : String, _controller : XRController3D) -> void: + if p_button == active_button_action and target: _button_released() diff --git a/addons/godot-xr-tools/functions/function_pointer.tscn b/addons/godot-xr-tools/functions/function_pointer.tscn index f2b96b0b..910013be 100644 --- a/addons/godot-xr-tools/functions/function_pointer.tscn +++ b/addons/godot-xr-tools/functions/function_pointer.tscn @@ -1,35 +1,34 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://cqhw276realc"] -[ext_resource path="res://addons/godot-xr-tools/materials/pointer.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pointer.gd" type="Script" id=2] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/pointer.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/function_pointer.gd" id="2"] -[sub_resource type="CubeMesh" id=1] +[sub_resource type="BoxMesh" id="1"] resource_local_to_scene = true -size = Vector3( 0.002, 0.002, 10 ) +size = Vector3(0.002, 0.002, 10) subdivide_depth = 20 -[sub_resource type="SphereMesh" id=2] +[sub_resource type="SphereMesh" id="2"] radius = 0.05 height = 0.1 radial_segments = 16 rings = 8 -[node name="FunctionPointer" type="Spatial"] -script = ExtResource( 2 ) +[node name="FunctionPointer" type="Node3D"] +script = ExtResource("2") -[node name="RayCast" type="RayCast" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0 ) -enabled = true -cast_to = Vector3( 0, 0, -10 ) +[node name="RayCast" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0) +target_position = Vector3(0, 0, 0) collision_mask = 1048576 -[node name="Laser" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, -5 ) +[node name="Laser" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, -5) cast_shadow = 0 -mesh = SubResource( 1 ) -material/0 = ExtResource( 1 ) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("1") -[node name="Target" type="MeshInstance" parent="."] +[node name="Target" type="MeshInstance3D" parent="."] visible = false -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/function_pose_detector.gd b/addons/godot-xr-tools/functions/function_pose_detector.gd index eaf1cd50..e399c8db 100644 --- a/addons/godot-xr-tools/functions/function_pose_detector.gd +++ b/addons/godot-xr-tools/functions/function_pose_detector.gd @@ -1,6 +1,7 @@ -tool -class_name XRToolsFunctionPoseDetector, "res://addons/godot-xr-tools/editor/icons/hand.svg" -extends Spatial +@tool +@icon("res://addons/godot-xr-tools/editor/icons/hand.svg") +class_name XRToolsFunctionPoseDetector +extends Node3D ## XR Tools Function Pose Area @@ -14,28 +15,28 @@ const DEFAULT_MASK := 0b0000_0000_0010_0000_0000_0000_0000_0000 ## Collision mask to detect hand pose areas -export (int, LAYERS_3D_PHYSICS) var collision_mask : int = DEFAULT_MASK setget set_collision_mask +@export_flags_3d_physics var collision_mask : int = DEFAULT_MASK: set = set_collision_mask ## Hand controller -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) ## Hand to control -onready var _hand := XRToolsHand.find_instance(self) +@onready var _hand := XRToolsHand.find_instance(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsFunctionPoseDetector" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsFunctionPoseDetector" # Called when the node enters the scene tree for the first time. func _ready(): # Connect signals (if controller and hand are valid) if _controller and _hand: - if $SenseArea.connect("area_entered", self, "_on_area_entered"): + if $SenseArea.area_entered.connect(_on_area_entered): push_error("Unable to connect area_entered signal") - if $SenseArea.connect("area_exited", self, "_on_area_exited"): + if $SenseArea.area_exited.connect(_on_area_exited): push_error("Unable to connect area_exited signal") # Update collision mask @@ -43,16 +44,18 @@ func _ready(): # This method verifies the pose area has a valid configuration. -func _get_configuration_warning(): - if !ARVRHelpers.get_arvr_controller(self): - return "Node must be within a branch of an ARVRController node" +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + + if !XRHelpers.get_xr_controller(self): + warnings.append("Node must be within a branch of an XRController3D node") # Verify hand can be found if !XRToolsHand.find_instance(self): - return "Node must be a within a branch of an ARVRController node with a hand" + warnings.append("Node must be a within a branch of an XRController node with a hand") # Pass basic validation - return "" + return warnings func set_collision_mask(mask : int) -> void: @@ -66,19 +69,19 @@ func _update_collision_mask() -> void: ## Signal handler called when this XRToolsFunctionPoseArea enters an area -func _on_area_entered(area : Area) -> void: +func _on_area_entered(area : Area3D) -> void: # Igjnore if the area is not a hand-pose area var pose_area := area as XRToolsHandPoseArea if !pose_area: return # Set the appropriate poses - if _controller.controller_id == 1 and pose_area.left_pose: + if _controller.tracker == "left_hand" and pose_area.left_pose: _hand.add_pose_override( pose_area, pose_area.pose_priority, pose_area.left_pose) - elif _controller.controller_id == 2 and pose_area.right_pose: + elif _controller.tracker == "right_hand" and pose_area.right_pose: _hand.add_pose_override( pose_area, pose_area.pose_priority, @@ -86,7 +89,7 @@ func _on_area_entered(area : Area) -> void: ## Signal handler called when this XRToolsFunctionPoseArea leaves an area -func _on_area_exited(area : Area) -> void: +func _on_area_exited(area : Area3D) -> void: # Ignore if the area is not a hand-pose area var pose_area := area as XRToolsHandPoseArea if !pose_area: diff --git a/addons/godot-xr-tools/functions/function_pose_detector.tscn b/addons/godot-xr-tools/functions/function_pose_detector.tscn index fa02b684..714db38e 100644 --- a/addons/godot-xr-tools/functions/function_pose_detector.tscn +++ b/addons/godot-xr-tools/functions/function_pose_detector.tscn @@ -1,19 +1,19 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://bft3xyxs31ci3"] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pose_detector.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/function_pose_detector.gd" id="1"] -[sub_resource type="CapsuleShape" id=1] +[sub_resource type="CapsuleShape3D" id="1"] radius = 0.08 -height = 0.08 +height = 0.24 -[node name="FunctionPoseDetector" type="Spatial"] -script = ExtResource( 1 ) +[node name="FunctionPoseDetector" type="Node3D"] +script = ExtResource("1") -[node name="SenseArea" type="Area" parent="."] +[node name="SenseArea" type="Area3D" parent="."] collision_layer = 0 collision_mask = 2097152 monitorable = false -[node name="CollisionShape" type="CollisionShape" parent="SenseArea"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.04, 0.08 ) -shape = SubResource( 1 ) +[node name="CollisionShape" type="CollisionShape3D" parent="SenseArea"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, -0.04, 0.08) +shape = SubResource("1") diff --git a/addons/godot-xr-tools/functions/function_teleport.gd b/addons/godot-xr-tools/functions/function_teleport.gd index 76d13e88..24d08d5a 100644 --- a/addons/godot-xr-tools/functions/function_teleport.gd +++ b/addons/godot-xr-tools/functions/function_teleport.gd @@ -1,7 +1,9 @@ -tool -class_name XRToolsFunctionTeleport, "res://addons/godot-xr-tools/editor/icons/function.svg" -extends KinematicBody -# should really change this to Spatial once #17401 is resolved +@tool +@icon("res://addons/godot-xr-tools/editor/icons/function.svg") +class_name XRToolsFunctionTeleport +extends CharacterBody3D + +# should really change this to Node3D once #17401 is resolved ## XR Tools Function Teleport Script @@ -17,37 +19,40 @@ const DEFAULT_MASK := 0b1111_1111_1111_1111_1111_1111_1111_1111 ## If true, teleporting is enabled -export var enabled : bool = true setget set_enabled +@export var enabled : bool = true: set = set_enabled ## Teleport allowed color property -export var can_teleport_color : Color = Color(0.0, 1.0, 0.0, 1.0) +@export var can_teleport_color : Color = Color(0.0, 1.0, 0.0, 1.0) ## Teleport denied color property -export var cant_teleport_color : Color = Color(1.0, 0.0, 0.0, 1.0) +@export var cant_teleport_color : Color = Color(1.0, 0.0, 0.0, 1.0) ## Teleport no-collision color property -export var no_collision_color: Color = Color(45.0 / 255.0, 80.0 / 255.0, 220.0 / 255.0, 1.0) +@export var no_collision_color : Color = Color(45.0 / 255.0, 80.0 / 255.0, 220.0 / 255.0, 1.0) ## Player height property -export var player_height : float = 1.8 setget set_player_height +@export var player_height : float = 1.8: set = set_player_height ## Player radius property -export var player_radius : float = 0.4 setget set_player_radius +@export var player_radius : float = 0.4: set = set_player_radius ## Teleport-arc strength -export var strength : float = 5.0 +@export var strength : float = 5.0 ## Maximum floor slope -export var max_slope : float = 20.0 +@export var max_slope : float = 20.0 ## Valid teleport layer mask -export (int, LAYERS_3D_PHYSICS) var valid_teleport_mask : int = DEFAULT_MASK +@export_flags_3d_physics var valid_teleport_mask : int = DEFAULT_MASK # once this is no longer a kinematic body, we'll need this.. # export (int, LAYERS_3D_PHYSICS) var collision_mask = 1 -## Teleport button -export (XRTools.Buttons) var teleport_button : int = XRTools.Buttons.VR_TRIGGER +## Teleport button action +@export var teleport_button_action : String = "trigger_click" + +## Teleport rotation action +@export var rotation_action : String = "primary" var is_on_floor : bool = true @@ -55,39 +60,39 @@ var is_teleporting : bool = false var can_teleport : bool = true var teleport_rotation : float = 0.0; var floor_normal : Vector3 = Vector3.UP -var last_target_transform : Transform = Transform() -var collision_shape : Shape +var last_target_transform : Transform3D = Transform3D() +var collision_shape : Shape3D var step_size : float = 0.5 # World scale -onready var ws : float = ARVRServer.world_scale +@onready var ws : float = XRServer.world_scale # By default we show a capsule to indicate where the player lands. # Turn on editable children, # hide the capsule, # and add your own player character as child. -onready var capsule : MeshInstance = get_node("Target/Player_figure/Capsule") +@onready var capsule : MeshInstance3D = get_node("Target/Player_figure/Capsule") -## [ARVROrigin] node. -onready var origin_node := ARVRHelpers.get_arvr_origin(self) +## [XROrigin3D] node. +@onready var origin_node := XRHelpers.get_xr_origin(self) -## [ARVRCamera] node. -onready var camera_node := ARVRHelpers.get_arvr_camera(self) +## [XRCamera3D] node. +@onready var camera_node := XRHelpers.get_xr_camera(self) -## [ARVRController] node. -onready var controller := ARVRHelpers.get_arvr_controller(self) +## [XRController3D] node. +@onready var controller := XRHelpers.get_xr_controller(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsFunctionTeleport" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsFunctionTeleport" # Called when the node enters the scene tree for the first time. func _ready(): # Do not initialise if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # It's inactive when we start @@ -100,11 +105,11 @@ func _ready(): $Target/Player_figure.scale = Vector3(ws, ws, ws) # get our capsule shape - collision_shape = $CollisionShape.shape - $CollisionShape.shape = null + collision_shape = $CollisionShape3D.shape + $CollisionShape3D.shape = null # now remove our collision shape, we are not using our kinematic body - remove_child($CollisionShape) + remove_child($CollisionShape3D) # call set player to ensure our collision shape is sized _update_player_height() @@ -113,7 +118,7 @@ func _ready(): func _physics_process(delta): # Do not process physics if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Skip if required nodes are missing @@ -132,14 +137,15 @@ func _physics_process(delta): return # check if our world scale has changed.. - var new_ws = ARVRServer.world_scale + var new_ws = XRServer.world_scale if ws != new_ws: ws = new_ws $Teleport.mesh.size = Vector2(0.05 * ws, 1.0) $Target.mesh.size = Vector2(ws, ws) $Target/Player_figure.scale = Vector3(ws, ws, ws) - if controller and controller.get_is_active() and controller.is_button_pressed(teleport_button): + if controller and controller.get_is_active() and \ + controller.is_button_pressed(teleport_button_action): if !is_teleporting: is_teleporting = true $Teleport.visible = true @@ -147,19 +153,19 @@ func _physics_process(delta): teleport_rotation = 0.0 # get our physics engine state - var space = PhysicsServer.body_get_space(self.get_rid()) - var state = PhysicsServer.space_get_direct_state(space) - var query = PhysicsShapeQueryParameters.new() + var space = PhysicsServer3D.body_get_space(self.get_rid()) + var state = PhysicsServer3D.space_get_direct_state(space) + var query = PhysicsShapeQueryParameters3D.new() # init stuff about our query that doesn't change query.collision_mask = collision_mask query.margin = get_safe_margin() query.shape_rid = collision_shape.get_rid() - # make a transform for rotating and offseting our shape, it's always + # make a transform for offsetting our shape, it's always # lying on its side by default... - var shape_transform = Transform( - Basis(Vector3(1.0, 0.0, 0.0), deg2rad(90.0)), + var shape_transform = Transform3D( + Basis(), Vector3(0.0, player_height / 2.0, 0.0)) # update location @@ -176,7 +182,7 @@ func _physics_process(delta): var cast_length = 0.0 var fine_tune = 1.0 var hit_something = false - var max_slope_cos = cos(deg2rad(max_slope)) + var max_slope_cos = cos(deg_to_rad(max_slope)) for i in range(1,26): var new_cast_length = cast_length + (step_size / fine_tune) var global_target = Vector3(0.0, 0.0, -new_cast_length) @@ -186,15 +192,15 @@ func _physics_process(delta): var t2 = t * t # target to world space - global_target = teleport_global_transform.xform(global_target) + global_target = teleport_global_transform * global_target # adjust for gravity global_target += down * t2 # test our new location for collisions - query.transform = Transform(Basis(), global_target) * shape_transform + query.transform = Transform3D(Basis(), global_target) * shape_transform var cast_result = state.collide_shape(query, 10) - if cast_result.empty(): + if cast_result.is_empty(): # we didn't collide with anything so check our next section... cast_length = new_cast_length target_global_origin = global_target @@ -212,11 +218,13 @@ func _physics_process(delta): is_on_floor = false else: # now we cast a ray downwards to see if we're on a surface - var start_pos = target_global_origin + (Vector3.UP * 0.5 * player_height) - var end_pos = target_global_origin - (Vector3.UP * 1.1 * player_height) + var ray_query = PhysicsRayQueryParameters3D.new() + ray_query.from = target_global_origin + (Vector3.UP * 0.5 * player_height) + ray_query.to = target_global_origin - (Vector3.UP * 1.1 * player_height) + ray_query.collision_mask = collision_mask - var intersects = state.intersect_ray(start_pos, end_pos, [], collision_mask) - if intersects.empty(): + var intersects = state.intersect_ray(ray_query) + if intersects.is_empty(): is_on_floor = false else: # did we collide with a floor or a wall? @@ -248,9 +256,9 @@ func _physics_process(delta): break # and just update our shader - $Teleport.get_surface_material(0).set_shader_param("scale_t", 1.0 / strength) - $Teleport.get_surface_material(0).set_shader_param("ws", ws) - $Teleport.get_surface_material(0).set_shader_param("length", cast_length) + $Teleport.get_surface_override_material(0).set_shader_parameter("scale_t", 1.0 / strength) + $Teleport.get_surface_override_material(0).set_shader_parameter("ws", ws) + $Teleport.get_surface_override_material(0).set_shader_parameter("length", cast_length) if hit_something: var color = can_teleport_color var normal = Vector3.UP @@ -263,8 +271,7 @@ func _physics_process(delta): color = cant_teleport_color # check our axis to see if we need to rotate - teleport_rotation += (delta * controller.get_joystick_axis( - XRTools.Axis.VR_PRIMARY_X_AXIS) * -4.0) + teleport_rotation += (delta * controller.get_vector2(rotation_action).x * -4.0) # update target and colour var target_basis = Basis() @@ -281,13 +288,13 @@ func _physics_process(delta): last_target_transform.origin = target_global_origin + Vector3(0.0, 0.001, 0.0) $Target.global_transform = last_target_transform - $Teleport.get_surface_material(0).set_shader_param("mix_color", color) - $Target.get_surface_material(0).albedo_color = color + $Teleport.get_surface_override_material(0).set_shader_parameter("mix_color", color) + $Target.get_surface_override_material(0).albedo_color = color $Target.visible = can_teleport else: can_teleport = false $Target.visible = false - $Teleport.get_surface_material(0).set_shader_param("mix_color", no_collision_color) + $Teleport.get_surface_override_material(0).set_shader_parameter("mix_color", no_collision_color) elif is_teleporting: if can_teleport: @@ -300,7 +307,7 @@ func _physics_process(delta): # Find out our user's feet's transformation. # The feet are on the ground, but have the same X,Z as the camera var cam_transform = camera_node.transform - var user_feet_transform = Transform() + var user_feet_transform = Transform3D() user_feet_transform.origin = cam_transform.origin user_feet_transform.origin.y = 0 @@ -322,21 +329,23 @@ func _physics_process(delta): # This method verifies the teleport has a valid configuration. -func _get_configuration_warning(): - # Verify we can find the ARVROrigin - if !ARVRHelpers.get_arvr_origin(self): - return "This node must be within a branch of an ARVROrigin node" +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() - # Verify we can find the ARVRCamera - if !ARVRHelpers.get_arvr_camera(self): - return "Unable to find ARVRCamera node" + # Verify we can find the XROrigin3D + if !XRHelpers.get_xr_origin(self): + warnings.append("This node must be within a branch of an XROrigin3D node") - # Verify we can find the ARVRController - if !ARVRHelpers.get_arvr_controller(self): - return "This node must be within a branch of an ARVRController node" + # Verify we can find the XRCamera3D + if !XRHelpers.get_xr_camera(self): + warnings.append("Unable to find XRCamera3D node") - # Pass basic validation - return "" + # Verify we can find the XRController3D + if !XRHelpers.get_xr_controller(self): + warnings.append("This node must be within a branch of an XRController3D node") + + # Return warnings + return warnings # Set enabled property @@ -368,16 +377,16 @@ func _update_player_height() -> void: collision_shape.height = player_height - (2.0 * player_radius) if capsule: - capsule.mesh.mid_height = player_height - (2.0 * player_radius) - capsule.translation = Vector3(0.0, player_height/2.0, 0.0) + capsule.mesh.height = player_height + capsule.position = Vector3(0.0, player_height/2.0, 0.0) # Player radius update handler func _update_player_radius(): if collision_shape: - collision_shape.height = player_height - (2.0 * player_radius) + collision_shape.height = player_height collision_shape.radius = player_radius if capsule: - capsule.mesh.mid_height = player_height - (2.0 * player_radius) + capsule.mesh.height = player_height capsule.mesh.radius = player_radius diff --git a/addons/godot-xr-tools/functions/function_teleport.tscn b/addons/godot-xr-tools/functions/function_teleport.tscn index e87cf216..6138c811 100644 --- a/addons/godot-xr-tools/functions/function_teleport.tscn +++ b/addons/godot-xr-tools/functions/function_teleport.tscn @@ -1,48 +1,48 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=9 format=3 uid="uid://fiul51tsyoop"] -[ext_resource path="res://addons/godot-xr-tools/materials/target.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/materials/capsule.tres" type="Material" id=2] -[ext_resource path="res://addons/godot-xr-tools/materials/teleport.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/functions/function_teleport.gd" type="Script" id=4] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/function_teleport.gd" id="1"] +[ext_resource type="Material" uid="uid://bk72wfw25ff0v" path="res://addons/godot-xr-tools/materials/teleport.tres" id="2"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/target.tres" id="3"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/capsule.tres" id="4"] -[sub_resource type="PlaneMesh" id=1] -size = Vector2( 0.05, 1 ) +[sub_resource type="PlaneMesh" id="1"] +size = Vector2(0.05, 1) subdivide_depth = 40 -[sub_resource type="PlaneMesh" id=2] -size = Vector2( 1, 1 ) +[sub_resource type="PlaneMesh" id="2"] +size = Vector2(1, 1) -[sub_resource type="CapsuleMesh" id=3] +[sub_resource type="CapsuleMesh" id="3"] radius = 0.4 +height = 1.8 -[sub_resource type="CapsuleShape" id=4] -radius = 0.1 +[sub_resource type="CapsuleShape3D" id="4"] +radius = 0.05 height = 0.1 -[node name="FunctionTeleport" type="KinematicBody"] +[node name="FunctionTeleport" type="CharacterBody3D"] collision_layer = 524288 collision_mask = 1023 input_ray_pickable = false -collision/safe_margin = 0.01 -script = ExtResource( 4 ) -no_collision_color = Color( 0.176471, 0.313726, 0.862745, 1 ) +script = ExtResource("1") +no_collision_color = Color(0.176471, 0.313726, 0.862745, 1) -[node name="Teleport" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) -material/0 = ExtResource( 3 ) +[node name="Teleport" type="MeshInstance3D" parent="."] +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2") -[node name="Target" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, -4.92359 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="Target" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, -4.92359) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("3") -[node name="Player_figure" type="Position3D" parent="Target"] +[node name="Player_figure" type="Marker3D" parent="Target"] -[node name="Capsule" type="MeshInstance" parent="Target/Player_figure"] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.9, 0 ) -mesh = SubResource( 3 ) -material/0 = ExtResource( 2 ) +[node name="Capsule" type="MeshInstance3D" parent="Target/Player_figure"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0) +mesh = SubResource("3") +surface_material_override/0 = ExtResource("4") -[node name="CollisionShape" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0 ) -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0) +shape = SubResource("4") diff --git a/addons/godot-xr-tools/functions/movement_climb.gd b/addons/godot-xr-tools/functions/movement_climb.gd index 8e91564a..29e0fdbc 100644 --- a/addons/godot-xr-tools/functions/movement_climb.gd +++ b/addons/godot-xr-tools/functions/movement_climb.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementClimb extends XRToolsMovementProvider @@ -8,7 +8,7 @@ extends XRToolsMovementProvider ## This script provides climbing movement for the player. To add climbing ## support, the player must also have [XRToolsFunctionPickup] nodes attached ## to the left and right controllers, and an [XRToolsPlayerBody] under the -## [ARVROrigin]. +## [XROrigin3D]. ## ## Climbable objects can inherit from the climbable scene, or be [StaticBody] ## objects with the [XRToolsClimbable] script attached to them. @@ -31,16 +31,16 @@ const SNAP_DISTANCE : float = 1.0 ## Movement provider order -export var order : int = 15 +@export var order : int = 15 ## Push forward when flinging -export var forward_push : float = 1.0 +@export var forward_push : float = 1.0 ## Velocity multiplier when flinging up walls -export var fling_multiplier : float = 1.0 +@export var fling_multiplier : float = 1.0 ## Averages for velocity measurement -export var velocity_averages : int = 5 +@export var velocity_averages : int = 5 ## Left climbable @@ -54,30 +54,33 @@ var _dominant : XRToolsFunctionPickup # Velocity averager -onready var _averager := XRToolsVelocityAveragerLinear.new(velocity_averages) +@onready var _averager := XRToolsVelocityAveragerLinear.new(velocity_averages) # Left pickup node -onready var _left_pickup_node := XRToolsFunctionPickup.find_left(self) +@onready var _left_pickup_node := XRToolsFunctionPickup.find_left(self) # Right pickup node -onready var _right_pickup_node := XRToolsFunctionPickup.find_right(self) +@onready var _right_pickup_node := XRToolsFunctionPickup.find_right(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementClimb" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementClimb" or super(name) ## Called when the node enters the scene tree for the first time. func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Connect pickup funcitons - if _left_pickup_node.connect("has_picked_up", self, "_on_left_picked_up"): + if _left_pickup_node.connect("has_picked_up", _on_left_picked_up): push_error("Unable to connect left picked up signal") - if _right_pickup_node.connect("has_picked_up", self, "_on_right_picked_up"): + if _right_pickup_node.connect("has_picked_up", _on_right_picked_up): push_error("Unable to connect right picked up signal") - if _left_pickup_node.connect("has_dropped", self, "_on_left_dropped"): + if _left_pickup_node.connect("has_dropped", _on_left_dropped): push_error("Unable to connect left dropped signal") - if _right_pickup_node.connect("has_dropped", self, "_on_right_dropped"): + if _right_pickup_node.connect("has_dropped", _on_right_dropped): push_error("Unable to connect right dropped signal") @@ -160,7 +163,7 @@ func _set_climbing(active: bool, player_body: XRToolsPlayerBody) -> void: ## Handler for left controller picked up -func _on_left_picked_up(what : Spatial) -> void: +func _on_left_picked_up(what : Node3D) -> void: # Get the climbable _left_climbable = what as XRToolsClimbable @@ -172,7 +175,7 @@ func _on_left_picked_up(what : Spatial) -> void: ## Handler for right controller picked up -func _on_right_picked_up(what : Spatial) -> void: +func _on_right_picked_up(what : Node3D) -> void: # Get the climbable _right_climbable = what as XRToolsClimbable @@ -208,18 +211,20 @@ func _on_right_dropped() -> void: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Verify the left controller pickup if !XRToolsFunctionPickup.find_left(self): - return "Unable to find left XRToolsFunctionPickup node" + warnings.append("Unable to find left XRToolsFunctionPickup node") # Verify the right controller pickup if !XRToolsFunctionPickup.find_right(self): - return "Unable to find right XRToolsFunctionPickup node" + warnings.append("Unable to find right XRToolsFunctionPickup node") # Verify velocity averages if velocity_averages < 2: - return "Minimum of 2 velocity averages needed" + warnings.append("Minimum of 2 velocity averages needed") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_climb.tscn b/addons/godot-xr-tools/functions/movement_climb.tscn index 05be2f54..e6d60ced 100644 --- a/addons/godot-xr-tools/functions/movement_climb.tscn +++ b/addons/godot-xr-tools/functions/movement_climb.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bxm1ply47vaan"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_climb.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_climb.gd" id="1"] [node name="MovementClimb" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_crouch.gd b/addons/godot-xr-tools/functions/movement_crouch.gd index 42fa2544..0b4db5a6 100644 --- a/addons/godot-xr-tools/functions/movement_crouch.gd +++ b/addons/godot-xr-tools/functions/movement_crouch.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementCrouch extends XRToolsMovementProvider @@ -6,7 +6,7 @@ extends XRToolsMovementProvider ## XR Tools Movement Provider for Crouching ## ## This script works with the [XRToolsPlayerBody] attached to the players -## [ARVROrigin]. +## [XROrigin3D]. ## ## While the player presses the crounch button, the height is overridden to ## the specified crouch height. @@ -20,16 +20,16 @@ enum CrouchType { ## Movement provider order -export var order : int = 10 +@export var order : int = 10 ## Crouch height -export var crouch_height : float = 1.0 +@export var crouch_height : float = 1.0 ## Crouch button -export (XRTools.Buttons) var crouch_button : int = XRTools.Buttons.VR_PAD +@export var crouch_button_action : String = "primary_click" ## Type of crouching -export (CrouchType) var crouch_type : int = CrouchType.HOLD_TO_CROUCH +@export var crouch_type : CrouchType = CrouchType.HOLD_TO_CROUCH ## Crouching flag @@ -40,12 +40,12 @@ var _crouch_button_down : bool = false # Controller node -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementCrouch" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementCrouch" or super(name) # Perform jump movement @@ -55,7 +55,7 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: return # Detect crouch button down and pressed states - var crouch_button_down := _controller.is_button_pressed(crouch_button) != 0 + var crouch_button_down := _controller.is_button_pressed(crouch_button_action) var crouch_button_pressed := crouch_button_down and !_crouch_button_down _crouch_button_down = crouch_button_down @@ -81,10 +81,12 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Check the controller node - if !ARVRHelpers.get_arvr_controller(self): - return "This node must be within a branch of an ARVRController node" + if !XRHelpers.get_xr_controller(self): + warnings.append("This node must be within a branch of an XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_crouch.tscn b/addons/godot-xr-tools/functions/movement_crouch.tscn index b039295e..824cfca5 100644 --- a/addons/godot-xr-tools/functions/movement_crouch.tscn +++ b/addons/godot-xr-tools/functions/movement_crouch.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://clt88d5d1dje4"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_crouch.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_crouch.gd" id="1"] [node name="MovementCrouch" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_direct.gd b/addons/godot-xr-tools/functions/movement_direct.gd index ad31d29c..5b88b8b7 100644 --- a/addons/godot-xr-tools/functions/movement_direct.gd +++ b/addons/godot-xr-tools/functions/movement_direct.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementDirect extends XRToolsMovementProvider @@ -6,29 +6,32 @@ extends XRToolsMovementProvider ## XR Tools Movement Provider for Direct Movement ## ## This script provides direct movement for the player. This script works -## with the [XRToolsPlayerBody] attached to the players [ARVROrigin]. +## with the [XRToolsPlayerBody] attached to the players [XROrigin3D]. ## ## The player may have multiple [XRToolsMovementDirect] nodes attached to ## different controllers to provide different types of direct movement. ## Movement provider order -export var order : int = 10 +@export var order : int = 10 ## Movement speed -export var max_speed : float = 10.0 +@export var max_speed : float = 10.0 ## If true, the player can strafe -export var strafe : bool = false +@export var strafe : bool = false + +## Input action for movement direction +@export var input_action : String = "primary" # Controller node -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementDirect" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementDirect" or super(name) # Perform jump movement @@ -38,13 +41,11 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: return # Apply forwards/backwards ground control - player_body.ground_control_velocity.y += _controller.get_joystick_axis( - XRTools.Axis.VR_PRIMARY_Y_AXIS) * max_speed + player_body.ground_control_velocity.y += _controller.get_vector2(input_action).y * max_speed # Apply left/right ground control if strafe: - player_body.ground_control_velocity.x += _controller.get_joystick_axis( - XRTools.Axis.VR_PRIMARY_X_AXIS) * max_speed + player_body.ground_control_velocity.x += _controller.get_vector2(input_action).x * max_speed # Clamp ground control var length := player_body.ground_control_velocity.length() @@ -53,22 +54,24 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Check the controller node - if !ARVRHelpers.get_arvr_controller(self): - return "This node must be within a branch of an ARVRController node" + if !XRHelpers.get_xr_controller(self): + warnings.append("This node must be within a branch of an XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings ## Find the left [XRToolsMovementDirect] node. ## ## This function searches from the specified node for the left controller -## [XRToolsMovementDirect] assuming the node is a sibling of the [ARVROrigin]. +## [XRToolsMovementDirect] assuming the node is a sibling of the [XROrigin3D]. static func find_left(node : Node) -> XRToolsMovementDirect: - return XRTools.find_child( - ARVRHelpers.get_left_controller(node), + return XRTools.find_xr_child( + XRHelpers.get_left_controller(node), "*", "XRToolsMovementDirect") as XRToolsMovementDirect @@ -76,9 +79,9 @@ static func find_left(node : Node) -> XRToolsMovementDirect: ## Find the right [XRToolsMovementDirect] node. ## ## This function searches from the specified node for the right controller -## [XRToolsMovementDirect] assuming the node is a sibling of the [ARVROrigin]. +## [XRToolsMovementDirect] assuming the node is a sibling of the [XROrigin3D]. static func find_right(node : Node) -> XRToolsMovementDirect: - return XRTools.find_child( - ARVRHelpers.get_right_controller(node), + return XRTools.find_xr_child( + XRHelpers.get_right_controller(node), "*", "XRToolsMovementDirect") as XRToolsMovementDirect diff --git a/addons/godot-xr-tools/functions/movement_direct.tscn b/addons/godot-xr-tools/functions/movement_direct.tscn index 209ccc16..c58096bb 100644 --- a/addons/godot-xr-tools/functions/movement_direct.tscn +++ b/addons/godot-xr-tools/functions/movement_direct.tscn @@ -1,10 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bl2nuu3qhlb5k"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_direct.gd" id="1"] [node name="MovementDirect" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) -enabled = null -order = null -max_speed = null -strafe = null +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_flight.gd b/addons/godot-xr-tools/functions/movement_flight.gd index c110ed51..2f9cbbd7 100644 --- a/addons/godot-xr-tools/functions/movement_flight.gd +++ b/addons/godot-xr-tools/functions/movement_flight.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementFlight extends XRToolsMovementProvider @@ -57,58 +57,61 @@ enum FlightBearing { ## Movement provider order -export var order : int = 30 +@export var order : int = 30 ## Flight controller -export (FlightController) var controller : int = FlightController.LEFT +@export var controller : FlightController = FlightController.LEFT ## Flight toggle button -export (XRTools.Buttons) var flight_button : int = XRTools.Buttons.VR_BUTTON_BY +@export var flight_button : String = "by_button" ## Flight pitch control -export (FlightPitch) var pitch : int = FlightPitch.CONTROLLER +@export var pitch : FlightPitch = FlightPitch.CONTROLLER ## Flight bearing control -export (FlightBearing) var bearing : int = FlightBearing.CONTROLLER +@export var bearing : FlightBearing = FlightBearing.CONTROLLER ## Flight speed from control -export var speed_scale : float = 5.0 +@export var speed_scale : float = 5.0 ## Flight traction pulling flight velocity towards the controlled speed -export var speed_traction : float = 3.0 +@export var speed_traction : float = 3.0 ## Flight acceleration from control -export var acceleration_scale : float = 0.0 +@export var acceleration_scale : float = 0.0 ## Flight drag -export var drag : float = 0.1 +@export var drag : float = 0.1 ## Guidance effect (virtual fins/wings) -export var guidance : float = 0.0 +@export var guidance : float = 0.0 ## If true, flight movement is exclusive preventing further movement functions -export var exclusive : bool = true +@export var exclusive : bool = true ## Flight button state var _flight_button : bool = false ## Flight controller -var _controller : ARVRController +var _controller : XRController3D # Node references -onready var _camera := ARVRHelpers.get_arvr_camera(self) -onready var _left_controller := ARVRHelpers.get_left_controller(self) -onready var _right_controller := ARVRHelpers.get_right_controller(self) +@onready var _camera := XRHelpers.get_xr_camera(self) +@onready var _left_controller := XRHelpers.get_left_controller(self) +@onready var _right_controller := XRHelpers.get_right_controller(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementFlight" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementFlight" or super(name) func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Get the flight controller if controller == FlightController.LEFT: _controller = _left_controller @@ -165,20 +168,20 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bo var side := forwards.cross(player_body.up_player_vector) # Construct the target velocity - var joy_forwards := _controller.get_joystick_axis(XRTools.Axis.VR_PRIMARY_Y_AXIS) - var joy_side := _controller.get_joystick_axis(XRTools.Axis.VR_PRIMARY_X_AXIS) + var joy_forwards := _controller.get_vector2("primary").y + var joy_side := _controller.get_vector2("primary").x var heading := forwards * joy_forwards + side * joy_side # Calculate the flight velocity var flight_velocity := player_body.velocity flight_velocity *= 1.0 - drag * delta - flight_velocity = lerp(flight_velocity, heading * speed_scale, speed_traction * delta) + flight_velocity = flight_velocity.lerp(heading * speed_scale, speed_traction * delta) flight_velocity += heading * acceleration_scale * delta # Apply virtual guidance effect if guidance > 0.0: var velocity_forwards := forwards * flight_velocity.length() - flight_velocity = lerp(flight_velocity, velocity_forwards, guidance * delta) + flight_velocity = flight_velocity.lerp(velocity_forwards, guidance * delta) # If exclusive then perform the exclusive move-and-slide if exclusive: @@ -206,18 +209,20 @@ func set_flying(active: bool) -> void: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Verify the camera - if !ARVRHelpers.get_arvr_camera(self): - return "Unable to find ARVRCamera" + if !XRHelpers.get_xr_camera(self): + warnings.append("Unable to find XRCamera3D") # Verify the left controller - if !ARVRHelpers.get_left_controller(self): - return "Unable to find left ARVRController node" + if !XRHelpers.get_left_controller(self): + warnings.append("Unable to find left XRController3D node") # Verify the right controller - if !ARVRHelpers.get_right_controller(self): - return "Unable to find left ARVRController node" + if !XRHelpers.get_right_controller(self): + warnings.append("Unable to find left XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_flight.tscn b/addons/godot-xr-tools/functions/movement_flight.tscn index de534761..deb568c8 100644 --- a/addons/godot-xr-tools/functions/movement_flight.tscn +++ b/addons/godot-xr-tools/functions/movement_flight.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://kyhaogt0a4q8"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_flight.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_flight.gd" id="1"] [node name="MovementFlight" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_footstep.gd b/addons/godot-xr-tools/functions/movement_footstep.gd index ae401484..d4c6f230 100644 --- a/addons/godot-xr-tools/functions/movement_footstep.gd +++ b/addons/godot-xr-tools/functions/movement_footstep.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementFootstep extends XRToolsMovementProvider @@ -19,16 +19,16 @@ const AUDIO_POOL_SIZE := 3 ## Movement provider order -export var order : int = 1001 +@export var order : int = 1001 ## Default XRToolsSurfaceAudioType when not overridden -export var default_surface_audio_type : Resource +@export var default_surface_audio_type : XRToolsSurfaceAudioType ## Speed at which the player is considered walking -export var walk_speed := 0.4 +@export var walk_speed := 0.4 ## Step per meter by time -export var steps_per_meter = 1.0 +@export var steps_per_meter = 1.0 # step time @@ -38,10 +38,10 @@ var step_time = 0.0 var _old_on_ground := true # Node representing the location of the players foot -var _foot_spatial : Spatial +var _foot_spatial : Node3D # Pool of idle AudioStreamPlayer3D nodes -var _audio_pool_idle : Array +var _audio_pool_idle : Array[AudioStreamPlayer3D] # Last ground node var _ground_node : Node @@ -51,17 +51,20 @@ var _ground_node_audio_type : XRToolsSurfaceAudioType ## PlayerBody - Player Physics Body Script -onready var player_body := XRToolsPlayerBody.find_instance(self) +@onready var player_body := XRToolsPlayerBody.find_instance(self) # Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementFootstep" or .is_class(name) +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementFootstep" or super(name) func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Construct the foot spatial - we will move it around as the player moves. - _foot_spatial = Spatial.new() + _foot_spatial = Node3D.new() _foot_spatial.name = "FootSpatial" add_child(_foot_spatial) @@ -71,27 +74,25 @@ func _ready(): player.name = "PlayerCopy%d" % (i + 1) _foot_spatial.add_child(player) _audio_pool_idle.append(player) - player.connect("finished", self, "_on_player_finished", [ player ]) + player.finished.connect(_on_player_finished.bind(player)) # Set as always active is_active = true # Listen for the player jumping - player_body.connect("player_jumped", self, "_on_player_jumped") + player_body.player_jumped.connect(_on_player_jumped) # This method checks for configuration issues. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Verify player settings node exists if not $PlayerSettings: - return "Missing player settings node" - - # Verify hit sound - if default_surface_audio_type and !default_surface_audio_type is XRToolsSurfaceAudioType: - return "Default surface audio type is not an XRToolsSurfaceAudioType" + warnings.append("Missing player settings node") - # No configuration issues detected - return "" + # Return warnings + return warnings func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: bool): @@ -132,10 +133,10 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: # Update the foot spatial to be where the players foot is func _update_foot_spatial() -> void: # Project the players camera down to the XZ plane (real-world space) - var local_foot := Plane.PLANE_XZ.project(player_body.camera_node.translation) + var local_foot := Plane.PLANE_XZ.project(player_body.camera_node.position) # Move the foot_spatial to the local foot in the global origin space - _foot_spatial.global_translation = player_body.origin_node.global_transform.xform(local_foot) + _foot_spatial.global_position = player_body.origin_node.global_transform * local_foot # Update the ground audio information @@ -153,7 +154,7 @@ func _update_ground_audio() -> void: return # Find the surface audio for the ground (if any) - var ground_audio : XRToolsSurfaceAudio = XRTools.find_child( + var ground_audio : XRToolsSurfaceAudio = XRTools.find_xr_child( _ground_node, "*", "XRToolsSurfaceAudio") if ground_audio: _ground_node_audio_type = ground_audio.surface_audio_type @@ -195,7 +196,7 @@ func _play_step_sound() -> void: var idx := randi() % _ground_node_audio_type.walk_sounds.size() # Pick the playback pitck - var pitch := rand_range( + var pitch := randf_range( _ground_node_audio_type.walk_pitch_minimum, _ground_node_audio_type.walk_pitch_maximum) @@ -214,7 +215,7 @@ func _play_sound(name : String, stream : AudioStream, pitch : float = 1.0) -> vo return # Emit the footstep signal - emit_signal("footstep", name) + footstep.emit(name) # Verify we have an audio player if _audio_pool_idle.size() == 0: @@ -238,7 +239,7 @@ func _on_player_finished(player : AudioStreamPlayer3D) -> void: ## This function searches from the specified node for an [XRToolsMovementFootstep] ## assuming the node is a sibling of the body under an [ARVROrigin]. static func find_instance(node: Node) -> XRToolsMovementFootstep: - return XRTools.find_child( - ARVRHelpers.get_arvr_origin(node), + return XRTools.find_xr_child( + XRHelpers.get_xr_origin(node), "*", "XRToolsMovementFootstep") as XRToolsMovementFootstep diff --git a/addons/godot-xr-tools/functions/movement_footstep.tscn b/addons/godot-xr-tools/functions/movement_footstep.tscn index 89ca3a17..f63cf54d 100644 --- a/addons/godot-xr-tools/functions/movement_footstep.tscn +++ b/addons/godot-xr-tools/functions/movement_footstep.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://0xlsitpu17r1"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_footstep.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_footstep.gd" id="1"] [node name="MovementFootstep" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="PlayerSettings" type="AudioStreamPlayer3D" parent="."] diff --git a/addons/godot-xr-tools/functions/movement_glide.gd b/addons/godot-xr-tools/functions/movement_glide.gd index 0ac46730..2f1d4bcd 100644 --- a/addons/godot-xr-tools/functions/movement_glide.gd +++ b/addons/godot-xr-tools/functions/movement_glide.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementGlide extends XRToolsMovementProvider @@ -6,7 +6,7 @@ extends XRToolsMovementProvider ## XR Tools Movement Provider for Gliding ## ## This script provides glide mechanics for the player. This script works -## with the [XRToolsPlayerBody] attached to the players [ARVROrigin]. +## with the [XRToolsPlayerBody] attached to the players [XROrigin3D]. ## ## The player enables flying by moving the controllers apart further than ## 'glide_detect_distance'. @@ -29,44 +29,44 @@ signal player_glide_end signal player_flapped ## Movement provider order -export var order : int = 35 +@export var order : int = 35 ## Controller separation distance to register as glide -export var glide_detect_distance : float = 1.0 +@export var glide_detect_distance : float = 1.0 ## Minimum falling speed to be considered gliding -export var glide_min_fall_speed : float = -1.5 +@export var glide_min_fall_speed : float = -1.5 ## Glide falling speed -export var glide_fall_speed : float = -2.0 +@export var glide_fall_speed : float = -2.0 ## Glide forward speed -export var glide_forward_speed : float = 12.0 +@export var glide_forward_speed : float = 12.0 ## Slew rate to transition to gliding -export var horizontal_slew_rate : float = 1.0 +@export var horizontal_slew_rate : float = 1.0 ## Slew rate to transition to gliding -export var vertical_slew_rate : float = 2.0 +@export var vertical_slew_rate : float = 2.0 ## glide rotate with roll angle -export var turn_with_roll : bool = false +@export var turn_with_roll : bool = false ## Smooth turn speed in radians per second -export var roll_turn_speed : float = 1 +@export var roll_turn_speed : float = 1 ## Add vertical impulse by flapping controllers -export var wings_impulse : bool = false +@export var wings_impulse : bool = false ## Minimum velocity for flapping -export var flap_min_speed : float = 0.3 +@export var flap_min_speed : float = 0.3 ## Flapping force multiplier -export var wings_force : float = 1.0 +@export var wings_force : float = 1.0 ## Minimum distance from controllers to ARVRCamera to rearm flaps. ## if set to 0, you need to reach head level with hands to rearm flaps -export var rearm_distance_offset : float = 0.2 +@export var rearm_distance_offset : float = 0.2 ## Flap activated (when both controllers are near the ARVRCamera height) @@ -81,18 +81,18 @@ var _has_controller_positions : bool = false # Left controller -onready var _left_controller := ARVRHelpers.get_left_controller(self) +@onready var _left_controller := XRHelpers.get_left_controller(self) # Right controller -onready var _right_controller := ARVRHelpers.get_right_controller(self) +@onready var _right_controller := XRHelpers.get_right_controller(self) # ARVRCamera -onready var _camera_node := ARVRHelpers.get_arvr_camera(self) +@onready var _camera_node := XRHelpers.get_xr_camera(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementGlide" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementGlide" or super(name) func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bool): @@ -171,7 +171,7 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bo player_body.rotate_player(roll_turn_speed * delta * angle) # Set gliding based on hand separation - var separation := left_to_right.length() / ARVRServer.world_scale + var separation := left_to_right.length() / XRServer.world_scale _set_gliding(separation >= glide_detect_distance) # Skip if not gliding @@ -186,7 +186,7 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bo var dir_forward := player_body.up_gravity_plane.project( left_to_right.rotated(player_body.up_gravity_vector, PI/2)).normalized() var forward_velocity := dir_forward * glide_forward_speed - horizontal_velocity = lerp(horizontal_velocity, forward_velocity, horizontal_slew_rate * delta) + horizontal_velocity = horizontal_velocity.lerp(forward_velocity, horizontal_slew_rate * delta) # Perform the glide var glide_velocity := horizontal_velocity + vertical_velocity * player_body.up_gravity_vector @@ -213,22 +213,24 @@ func _set_gliding(active: bool) -> void: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Verify the left controller - if !ARVRHelpers.get_left_controller(self): - return "Unable to find left ARVRController node" + if !XRHelpers.get_left_controller(self): + warnings.append("Unable to find left XRController3D node") # Verify the right controller - if !ARVRHelpers.get_right_controller(self): - return "Unable to find right ARVRController node" + if !XRHelpers.get_right_controller(self): + warnings.append("Unable to find right XRController3D node") # Check glide parameters if glide_min_fall_speed > 0: - return "Glide minimum fall speed must be zero or less" + warnings.append("Glide minimum fall speed must be zero or less") if glide_fall_speed > 0: - return "Glide fall speed must be zero or less" + warnings.append("Glide fall speed must be zero or less") if glide_min_fall_speed < glide_fall_speed: - return "Glide fall speed must be faster than minimum fall speed" + warnings.append("Glide fall speed must be faster than minimum fall speed") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_glide.tscn b/addons/godot-xr-tools/functions/movement_glide.tscn index 372ff37a..9aed0f39 100644 --- a/addons/godot-xr-tools/functions/movement_glide.tscn +++ b/addons/godot-xr-tools/functions/movement_glide.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://cvokcudrffkgc"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_glide.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_glide.gd" id="1"] [node name="MovementGlide" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_grapple.gd b/addons/godot-xr-tools/functions/movement_grapple.gd index 141a8038..5bef0b1f 100644 --- a/addons/godot-xr-tools/functions/movement_grapple.gd +++ b/addons/godot-xr-tools/functions/movement_grapple.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementGrapple extends XRToolsMovementProvider @@ -8,7 +8,7 @@ extends XRToolsMovementProvider ## This script provide simple grapple based movement - "bat hook" style ## where the player flings a rope to the target and swings on it. ## This script works with the [XRToolsPlayerBody] attached to the players -## [ARVROrigin]. +## [XROrigin3D]. ## Signal emitted when grapple starts @@ -31,36 +31,36 @@ const DEFAULT_MASK := 0b0000_0000_0000_0000_0000_0000_0000_0001 ## Movement provider order -export var order : int = 20 +@export var order : int = 20 ## Grapple length - use to adjust maximum distance for possible grapple hooking. -export var grapple_length : float = 15.0 +@export var grapple_length : float = 15.0 ## Grapple collision mask -export (int, LAYERS_3D_PHYSICS) \ - var grapple_collision_mask : int = DEFAULT_MASK setget _set_grapple_collision_mask +@export_flags_3d_physics \ + var grapple_collision_mask : int = DEFAULT_MASK: set = _set_grapple_collision_mask ## Impulse speed applied to the player on first grapple -export var impulse_speed : float = 10.0 +@export var impulse_speed : float = 10.0 ## Winch speed applied to the player while the grapple is held -export var winch_speed : float = 2.0 +@export var winch_speed : float = 2.0 ## Probably need to add export variables for line size, maybe line material at ## some point so dev does not need to make children editable to do this. ## For now, right click on grapple node and make children editable to edit these ## facets. -export var rope_width : float = 0.02 +@export var rope_width : float = 0.02 ## Air friction while grappling -export var friction : float = 0.1 +@export var friction : float = 0.1 ## Grapple button (triggers grappling movement). Be sure this button does not ## conflict with other functions. -export (XRTools.Buttons) var grapple_button_id : int = XRTools.Buttons.VR_TRIGGER +@export var grapple_button_action : String = "trigger_click" # Hook related variables -var hook_object : Spatial = null +var hook_object : Node3D = null var hook_local := Vector3(0,0,0) var hook_point := Vector3(0,0,0) @@ -68,39 +68,42 @@ var hook_point := Vector3(0,0,0) var _grapple_button := false # Get line creation nodes -onready var _line_helper : Spatial = $LineHelper -onready var _line : CSGCylinder = $LineHelper/Line +@onready var _line_helper : Node3D = $LineHelper +@onready var _line : CSGCylinder3D = $LineHelper/Line # Get Controller node - consider way to universalize this if user wanted to # attach this to a gun instead of player's hand. Could consider variable to # select controller instead. -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) # Get Raycast node -onready var _grapple_raycast : RayCast = $Grapple_RayCast +@onready var _grapple_raycast : RayCast3D = $Grapple_RayCast # Get Grapple Target Node -onready var _grapple_target : Spatial = $Grapple_Target +@onready var _grapple_target : Node3D = $Grapple_Target -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementGrapple" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementGrapple" or super(name) # Function run when node is added to scene func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Skip if running in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Ensure grapple length is valid - var min_hook_length := 1.5 * ARVRServer.world_scale + var min_hook_length := 1.5 * XRServer.world_scale if grapple_length < min_hook_length: grapple_length = min_hook_length # Set ray-cast - _grapple_raycast.cast_to = Vector3(0, 0, -grapple_length) * ARVRServer.world_scale + _grapple_raycast.target_position = Vector3(0, 0, -grapple_length) * XRServer.world_scale _grapple_raycast.collision_mask = grapple_collision_mask # Deal with line @@ -111,7 +114,7 @@ func _ready(): # Update grapple display objects func _process(_delta: float): # Skip if running in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Update grapple line @@ -119,7 +122,7 @@ func _process(_delta: float): var line_length := (hook_point - _controller.global_transform.origin).length() _line_helper.look_at(hook_point, Vector3.UP) _line.height = line_length - _line.translation.z = line_length / -2 + _line.position.z = line_length / -2 _line.visible = true else: _line.visible = false @@ -142,7 +145,7 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bo # Update grapple button var old_grapple_button := _grapple_button - _grapple_button = _controller.is_button_pressed(grapple_button_id) + _grapple_button = _controller.is_button_pressed(grapple_button_action) # Enable/disable grappling var do_impulse := false @@ -151,7 +154,7 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bo elif _grapple_button and !old_grapple_button and _grapple_raycast.is_colliding(): hook_object = _grapple_raycast.get_collider() hook_point = _grapple_raycast.get_collision_point() - hook_local = hook_object.global_transform.xform_inv(hook_point) + hook_local = hook_point * hook_object.global_transform do_impulse = true _set_grappling(true) @@ -160,7 +163,7 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, disabled: bo return # Get hook direction - hook_point = hook_object.global_transform.xform(hook_local) + hook_point = hook_object.global_transform * hook_local var hook_vector := hook_point - _controller.global_transform.origin var hook_length := hook_vector.length() var hook_direction := hook_vector / hook_length @@ -210,10 +213,12 @@ func _set_grappling(active: bool) -> void: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Check the controller node - if !ARVRHelpers.get_arvr_controller(self): - return "This node must be within a branch of an ARVRController node" + if !XRHelpers.get_xr_controller(self): + warnings.append("This node must be within a branch of an XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_grapple.tscn b/addons/godot-xr-tools/functions/movement_grapple.tscn index 04ada5cc..a812f116 100644 --- a/addons/godot-xr-tools/functions/movement_grapple.tscn +++ b/addons/godot-xr-tools/functions/movement_grapple.tscn @@ -1,30 +1,28 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://c78tjrtiyqna8"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_grapple.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/materials/pointer.tres" type="Material" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_grapple.gd" id="1"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/pointer.tres" id="2_n6olo"] -[sub_resource type="CubeMesh" id=1] +[sub_resource type="BoxMesh" id="1"] resource_local_to_scene = true -size = Vector3( 0.05, 0.05, 0.05 ) +size = Vector3(0.05, 0.05, 0.05) subdivide_depth = 20 -[node name="MovementGrapple" type="Spatial" groups=["movement_providers"]] -script = ExtResource( 1 ) +[node name="MovementGrapple" type="Node3D" groups=["movement_providers"]] +script = ExtResource("1") -[node name="Grapple_RayCast" type="RayCast" parent="."] -enabled = true -cast_to = Vector3( 0, 0, -15 ) +[node name="Grapple_RayCast" type="RayCast3D" parent="."] collision_mask = 3 -debug_shape_custom_color = Color( 0.862745, 0.278431, 0.278431, 1 ) +debug_shape_custom_color = Color(0.862745, 0.278431, 0.278431, 1) debug_shape_thickness = 1 -[node name="Grapple_Target" type="MeshInstance" parent="."] +[node name="Grapple_Target" type="MeshInstance3D" parent="."] visible = false -mesh = SubResource( 1 ) -material/0 = ExtResource( 2 ) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2_n6olo") -[node name="LineHelper" type="Spatial" parent="."] +[node name="LineHelper" type="Node3D" parent="."] -[node name="Line" type="CSGCylinder" parent="LineHelper"] -transform = Transform( 1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 0, 0, 0 ) +[node name="Line" type="CSGCylinder3D" parent="LineHelper"] +transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 0, 0, 0) radius = 0.02 diff --git a/addons/godot-xr-tools/functions/movement_jump.gd b/addons/godot-xr-tools/functions/movement_jump.gd index 61317562..2ef5d2a9 100644 --- a/addons/godot-xr-tools/functions/movement_jump.gd +++ b/addons/godot-xr-tools/functions/movement_jump.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementJump extends XRToolsMovementProvider @@ -6,27 +6,27 @@ extends XRToolsMovementProvider ## XR Tools Movement Provider for Jumping ## ## This script provides jumping mechanics for the player. This script works -## with the [XRToolsPlayerBody] attached to the players [ARVROrigin]. +## with the [XRToolsPlayerBody] attached to the players [XROrigin3D]. ## ## The player enables jumping by attaching an [XRToolsMovementJump] as a -## child of the appropriate [ARVRController], then configuring the jump button +## child of the appropriate [XRController3D], then configuring the jump button ## and jump velocity. ## Movement provider order -export var order : int = 20 +@export var order : int = 20 ## Button to trigger jump -export (XRTools.Buttons) var jump_button_id : int = XRTools.Buttons.VR_TRIGGER +@export var jump_button_action : String = "trigger_click" # Node references -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementJump" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementJump" or super(name) # Perform jump movement @@ -36,15 +36,17 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: return # Request jump if the button is pressed - if _controller.is_button_pressed(jump_button_id): + if _controller.is_button_pressed(jump_button_action): player_body.request_jump() # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Check the controller node - if !ARVRHelpers.get_arvr_controller(self): - return "This node must be within a branch of an ARVRController node" + if !XRHelpers.get_xr_controller(self): + warnings.append("This node must be within a branch of an XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_jump.tscn b/addons/godot-xr-tools/functions/movement_jump.tscn index f663e4e7..187612eb 100644 --- a/addons/godot-xr-tools/functions/movement_jump.tscn +++ b/addons/godot-xr-tools/functions/movement_jump.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://c2q5phg8w08o"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_jump.gd" id="1"] [node name="MovementJump" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) -jump_button_id = null +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_physical_jump.gd b/addons/godot-xr-tools/functions/movement_physical_jump.gd index cacc6c2a..7839afc4 100644 --- a/addons/godot-xr-tools/functions/movement_physical_jump.gd +++ b/addons/godot-xr-tools/functions/movement_physical_jump.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementPhysicalJump extends XRToolsMovementProvider @@ -20,22 +20,22 @@ extends XRToolsMovementProvider ## Movement provider order -export var order : int = 20 +@export var order : int = 20 ## If true, jumps are detected via the players body (through the camera) -export var body_jump_enable : bool = true +@export var body_jump_enable : bool = true ## If true, the player jump is as high as the physical jump(no ground physics) -export var body_jump_player_only : bool = false +@export var body_jump_player_only : bool = false ## Body jump detection threshold (M/S^2) -export var body_jump_threshold : float = 2.5 +@export var body_jump_threshold : float = 2.5 ## If true, jumps are detected via the players arms (through the controllers) -export var arms_jump_enable : bool = false +@export var arms_jump_enable : bool = false ## Arms jump detection threshold (M/S^2) -export var arms_jump_threshold : float = 5.0 +@export var arms_jump_threshold : float = 5.0 # Node Positions @@ -50,10 +50,10 @@ var _controller_right_velocity : SlidingAverage = SlidingAverage.new(5) # Node references -onready var _origin_node := ARVRHelpers.get_arvr_origin(self) -onready var _camera_node := ARVRHelpers.get_arvr_camera(self) -onready var _controller_left_node := ARVRHelpers.get_left_controller(self) -onready var _controller_right_node := ARVRHelpers.get_right_controller(self) +@onready var _origin_node := XRHelpers.get_xr_origin(self) +@onready var _camera_node := XRHelpers.get_xr_camera(self) +@onready var _controller_left_node := XRHelpers.get_left_controller(self) +@onready var _controller_right_node := XRHelpers.get_right_controller(self) # Sliding Average class @@ -91,9 +91,9 @@ class SlidingAverage: return _sum / _size -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementPhysicalJump" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementPhysicalJump" or super(name) # Perform jump detection @@ -108,25 +108,27 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, _disabled: b # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Verify the camera - if !ARVRHelpers.get_arvr_origin(self): - return "This node must be within a branch of an ARVROrigin node" + if !XRHelpers.get_xr_origin(self): + warnings.append("This node must be within a branch of an XROrigin3D node") # Verify the camera - if !ARVRHelpers.get_arvr_camera(self): - return "Unable to find ARVRCamera" + if !XRHelpers.get_xr_camera(self): + warnings.append("Unable to find XRCamera3D") # Verify the left controller - if !ARVRHelpers.get_left_controller(self): - return "Unable to find left ARVRController node" + if !XRHelpers.get_left_controller(self): + warnings.append("Unable to find left XRController3D node") # Verify the right controller - if !ARVRHelpers.get_right_controller(self): - return "Unable to find left ARVRController node" + if !XRHelpers.get_right_controller(self): + warnings.append("Unable to find left XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings # Detect the player jumping with their body (using the headset camera) @@ -141,7 +143,7 @@ func _detect_body_jump(delta: float, player_body: XRToolsPlayerBody) -> void: return; # Correct for world-scale (convert to player units) - camera_vel /= ARVRServer.world_scale + camera_vel /= XRServer.world_scale # Clamp the camera instantaneous velocity to +/- 2x the jump threshold camera_vel = clamp(camera_vel, -2.0 * body_jump_threshold, 2.0 * body_jump_threshold) @@ -173,8 +175,8 @@ func _detect_arms_jump(delta: float, player_body: XRToolsPlayerBody) -> void: return # Correct for world-scale (convert to player units) - controller_left_vel /= ARVRServer.world_scale - controller_right_vel /= ARVRServer.world_scale + controller_left_vel /= XRServer.world_scale + controller_right_vel /= XRServer.world_scale # Clamp the controller instantaneous velocity to +/- 2x the jump threshold controller_left_vel = clamp( diff --git a/addons/godot-xr-tools/functions/movement_physical_jump.tscn b/addons/godot-xr-tools/functions/movement_physical_jump.tscn index 3eecde88..6386085d 100644 --- a/addons/godot-xr-tools/functions/movement_physical_jump.tscn +++ b/addons/godot-xr-tools/functions/movement_physical_jump.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://ckt118vcpmr6q"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_physical_jump.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_physical_jump.gd" id="1"] [node name="MovementPhysicalJump" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") arms_jump_enable = true diff --git a/addons/godot-xr-tools/functions/movement_provider.gd b/addons/godot-xr-tools/functions/movement_provider.gd index d398233d..5ccc1a77 100644 --- a/addons/godot-xr-tools/functions/movement_provider.gd +++ b/addons/godot-xr-tools/functions/movement_provider.gd @@ -1,5 +1,6 @@ -tool -class_name XRToolsMovementProvider, "res://addons/godot-xr-tools/editor/icons/movement_provider.svg" +@tool +@icon("res://addons/godot-xr-tools/editor/icons/movement_provider.svg") +class_name XRToolsMovementProvider extends Node @@ -19,7 +20,7 @@ const PLAYER_BODY := preload("res://addons/godot-xr-tools/player/player_body.tsc ## Enable movement provider -export var enabled : bool = true +@export var enabled : bool = true ## If true, the movement provider is actively performing a move @@ -29,30 +30,30 @@ var is_active := false # If missing we need to add our [XRToolsPlayerBody] func _create_player_body_node(): # get our origin node - var arvr_origin := ARVRHelpers.get_arvr_origin(self) - if !arvr_origin: + var xr_origin = XRHelpers.get_xr_origin(self) + if !xr_origin: return # Double check if it hasn't already been created by another movement function var player_body := XRToolsPlayerBody.find_instance(self) if !player_body: # create our XRToolsPlayerBody node and add it into our tree - player_body = PLAYER_BODY.instance() + player_body = PLAYER_BODY.instantiate() player_body.set_name("PlayerBody") - arvr_origin.add_child(player_body) + xr_origin.add_child(player_body) player_body.set_owner(get_tree().get_edited_scene_root()) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementProvider" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementProvider" # Function run when node is added to scene func _ready(): # If we're in the editor, help the user out by creating our XRToolsPlayerBody node # automatically when needed. - if Engine.editor_hint: + if Engine.is_editor_hint(): var player_body = XRToolsPlayerBody.find_instance(self) if !player_body: # This call needs to be deferred, we can't add nodes during scene construction @@ -70,21 +71,23 @@ func physics_movement(_delta: float, _player_body: XRToolsPlayerBody, _disabled: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): - # Verify we're within the tree of an ARVROrigin node - if !ARVRHelpers.get_arvr_origin(self): - return "This node must be within a branch on an ARVROrigin node" +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + + # Verify we're within the tree of an XROrigin3D node + if !XRHelpers.get_xr_origin(self): + warnings.append("This node must be within a branch on an XROrigin3D node") if !XRToolsPlayerBody.find_instance(self): - return "Missing PlayerBody node on the ARVROrigin" + warnings.append("Missing PlayerBody node on the XROrigin3D") # Verify movement provider is in the correct group if !is_in_group("movement_providers"): - return "Movement provider not in 'movement_providers' group" + warnings.append("Movement provider not in 'movement_providers' group") # Verify order property exists if !"order" in self: - return "Movement provider does not expose an order property" + warnings.append("Movement provider does not expose an order property") - # Passed basic validation - return "" + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_sprint.gd b/addons/godot-xr-tools/functions/movement_sprint.gd index 8330d306..6cd96b35 100644 --- a/addons/godot-xr-tools/functions/movement_sprint.gd +++ b/addons/godot-xr-tools/functions/movement_sprint.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementSprint extends XRToolsMovementProvider @@ -10,7 +10,7 @@ extends XRToolsMovementProvider ## ## There will not be an error, there just will not be any reason for it to ## have any impact on the player. This node should be a direct child of -## the [ARVROrigin] node rather than to a specific [ARVRController]. +## the [XROrigin3D] node rather than to a specific [XRController3D]. ## Signal emitted when sprinting starts @@ -35,23 +35,23 @@ enum SprintType { ## Type of sprinting -export (SprintType) var sprint_type : int = SprintType.HOLD_TO_SPRINT +@export var sprint_type : SprintType = SprintType.HOLD_TO_SPRINT ## Sprint speed multiplier (multiplier from speed set by direct movement node(s)) -export (float, 1.0, 4.0) var sprint_speed_multiplier : float = 2.0 +@export_range(1.0, 4.0) var sprint_speed_multiplier : float = 2.0 ## Movement provider order -export var order : int = 11 +@export var order : int = 11 ## Sprint controller -export (SprintController) var controller : int = SprintController.LEFT +@export var controller : SprintController = SprintController.LEFT ## Sprint button -export (XRTools.Buttons) var sprint_button : int = XRTools.Buttons.VR_PAD +@export var sprint_button : String = "primary_click" # Sprint controller -var _controller : ARVRController +var _controller : XRController3D # Sprint button down state var _sprint_button_down : bool = false @@ -64,24 +64,27 @@ var _right_controller_original_max_speed : float = 0.0 # Variable used to cache left controller direct movement function, if any -onready var _left_controller_direct_move := XRToolsMovementDirect.find_left(self) +@onready var _left_controller_direct_move := XRToolsMovementDirect.find_left(self) # Variable used to cache right controller direct movement function, if any -onready var _right_controller_direct_move := XRToolsMovementDirect.find_right(self) +@onready var _right_controller_direct_move := XRToolsMovementDirect.find_right(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementSprint" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementSprint" or super(name) func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Get the sprinting controller if controller == SprintController.LEFT: - _controller = ARVRHelpers.get_left_controller(self) + _controller = XRHelpers.get_left_controller(self) else: - _controller = ARVRHelpers.get_right_controller(self) + _controller = XRHelpers.get_right_controller(self) # Perform sprinting @@ -92,7 +95,7 @@ func physics_movement(_delta: float, _player_body: XRToolsPlayerBody, disabled: return # Detect sprint button down and pressed states - var sprint_button_down := _controller.is_button_pressed(sprint_button) != 0 + var sprint_button_down := _controller.is_button_pressed(sprint_button) var sprint_button_pressed := sprint_button_down and !_sprint_button_down _sprint_button_down = sprint_button_down @@ -155,21 +158,12 @@ func set_sprinting(active: bool) -> void: # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Make sure player has at least one direct movement node if !XRToolsMovementDirect.find_left(self) and !XRToolsMovementDirect.find_right(self): - return "Unable to find XRToolsMovementDirect instance for player to support sprinting" - - # Call base class - return ._get_configuration_warning() + warnings.append("Player missing XRToolsMovementDirect nodes") - -## Find an [XRToolsMovementSprint] node. -## -## This function searches from the specified node for an [XRToolsMovementSprint] -## assuming the node is a sibling of the body under an [ARVROrigin]. -static func find_instance(node: Node) -> XRToolsMovementSprint: - return XRTools.find_child( - ARVRHelpers.get_arvr_origin(node), - "*", - "XRToolsMovementSprint") as XRToolsMovementSprint + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/functions/movement_sprint.tscn b/addons/godot-xr-tools/functions/movement_sprint.tscn index 5a36a045..1d71468a 100644 --- a/addons/godot-xr-tools/functions/movement_sprint.tscn +++ b/addons/godot-xr-tools/functions/movement_sprint.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://drs4eeq721ojn"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_sprint.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_sprint.gd" id="1"] [node name="MovementSprint" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_turn.gd b/addons/godot-xr-tools/functions/movement_turn.gd index 2f874998..b64b601e 100644 --- a/addons/godot-xr-tools/functions/movement_turn.gd +++ b/addons/godot-xr-tools/functions/movement_turn.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementTurn extends XRToolsMovementProvider @@ -6,7 +6,7 @@ extends XRToolsMovementProvider ## XR Tools Movement Provider for Turning ## ## This script provides turning support for the player. This script works -## with the PlayerBody attached to the players [ARVROrigin]. +## with the PlayerBody attached to the players XROrigin3D. ## Movement mode @@ -18,32 +18,34 @@ enum TurnMode { ## Movement provider order -export var order : int = 5 +@export var order : int = 5 ## Movement mode property -export (TurnMode) var turn_mode = TurnMode.DEFAULT +@export var turn_mode : TurnMode = TurnMode.DEFAULT ## Smooth turn speed in radians per second -export var smooth_turn_speed : float = 2.0 +@export var smooth_turn_speed : float = 2.0 -## Seconds per step (at maximum turn rate), 0 for single turn -export var step_turn_delay : float = 0.2 +## Seconds per step (at maximum turn rate) +@export var step_turn_delay : float = 0.2 ## Step turn angle in degrees -export var step_turn_angle : float = 20.0 +@export var step_turn_angle : float = 20.0 +## Our directional input +@export var input_action : String = "primary" # Turn step accumulator var _turn_step : float = 0.0 # Controller node -onready var _controller := ARVRHelpers.get_arvr_controller(self) +@onready var _controller := XRHelpers.get_xr_controller(self) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementTurn" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementTurn" or super(name) # Perform jump movement @@ -57,7 +59,7 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, _disabled: b deadzone = XRTools.get_snap_turning_deadzone() # Read the left/right joystick axis - var left_right := _controller.get_joystick_axis(XRTools.Axis.VR_PRIMARY_X_AXIS) + var left_right := _controller.get_vector2(input_action).x if abs(left_right) <= deadzone: # Not turning _turn_step = 0.0 @@ -81,17 +83,19 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, _disabled: b # Turn one step in the requested direction if step_turn_delay != 0.0: _turn_step = step_turn_delay - player_body.rotate_player(deg2rad(step_turn_angle) * sign(left_right)) + player_body.rotate_player(deg_to_rad(step_turn_angle) * sign(left_right)) # This method verifies the movement provider has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := super() + # Check the controller node - if !ARVRHelpers.get_arvr_controller(self): - return "Unable to find ARVR Controller node" + if !XRHelpers.get_xr_controller(self): + warnings.append("Unable to find XRController3D node") - # Call base class - return ._get_configuration_warning() + # Return warnings + return warnings # Test if snap turning should be used diff --git a/addons/godot-xr-tools/functions/movement_turn.tscn b/addons/godot-xr-tools/functions/movement_turn.tscn index 2933c621..8ae0f7d1 100644 --- a/addons/godot-xr-tools/functions/movement_turn.tscn +++ b/addons/godot-xr-tools/functions/movement_turn.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://b6bk2pj8vbj28"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_turn.gd" id="1"] [node name="MovementTurn" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_wall_walk.gd b/addons/godot-xr-tools/functions/movement_wall_walk.gd index 4cfe6b10..47169a2e 100644 --- a/addons/godot-xr-tools/functions/movement_wall_walk.gd +++ b/addons/godot-xr-tools/functions/movement_wall_walk.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementWallWalk extends XRToolsMovementProvider @@ -8,17 +8,16 @@ const DEFAULT_MASK := 0b0000_0000_0000_0000_0000_0000_0000_1000 ## Wall walking provider order -export var order : int = 25 +@export var order : int = 25 ## Set our follow layer mask -export (int, LAYERS_3D_PHYSICS) var follow_mask : int = DEFAULT_MASK +@export_flags_3d_physics var follow_mask : int = DEFAULT_MASK ## Wall stick distance -export var stick_distance : float = 1.0 +@export var stick_distance : float = 1.0 ## Wall stick strength -export var stick_strength : float = 9.8 - +@export var stick_strength : float = 9.8 func physics_pre_movement(_delta: float, player_body: XRToolsPlayerBody): @@ -29,8 +28,8 @@ func physics_pre_movement(_delta: float, player_body: XRToolsPlayerBody): return # Get the wall information - var wall_node := wall_collision.collider - var wall_normal := wall_collision.normal + var wall_node := wall_collision.get_collider() + var wall_normal := wall_collision.get_normal() # Skip if the wall node doesn't have a collision layer if not "collision_layer" in wall_node: diff --git a/addons/godot-xr-tools/functions/movement_wall_walk.tscn b/addons/godot-xr-tools/functions/movement_wall_walk.tscn index ad16a85e..664f3323 100644 --- a/addons/godot-xr-tools/functions/movement_wall_walk.tscn +++ b/addons/godot-xr-tools/functions/movement_wall_walk.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bk6ban0hctyym"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_wall_walk.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_wall_walk.gd" id="1"] [node name="MovementWallWalk" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/functions/movement_wind.gd b/addons/godot-xr-tools/functions/movement_wind.gd index d41c36e5..d24a345a 100644 --- a/addons/godot-xr-tools/functions/movement_wind.gd +++ b/addons/godot-xr-tools/functions/movement_wind.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsMovementWind extends XRToolsMovementProvider @@ -6,7 +6,7 @@ extends XRToolsMovementProvider ## XR Tools Movement Provider for Wind ## ## This script provides wind mechanics for the player. This script works -## with the [XRToolsPlayerBody] attached to the players [ARVROrigin]. +## with the [XRToolsPlayerBody] attached to the players [XROrigin3D]. ## ## When the player enters an [XRToolsWindArea], the wind pushes the player ## around, and can even lift the player into the air. @@ -21,17 +21,17 @@ const DEFAULT_MASK := 0b0000_0000_0000_1000_0000_0000_0000_0000 ## Movement provider order -export var order : int = 25 +@export var order : int = 25 ## Drag multiplier for the player -export var drag_multiplier : float = 1.0 +@export var drag_multiplier : float = 1.0 # Set our collision mask -export (int, LAYERS_3D_PHYSICS) var collision_mask : int = DEFAULT_MASK setget set_collision_mask +@export_flags_3d_physics var collision_mask : int = DEFAULT_MASK: set = set_collision_mask # Wind detection area -var _sense_area : Area +var _sense_area : Area3D # Array of wind areas the player is in var _in_wind_areas := Array() @@ -40,33 +40,36 @@ var _in_wind_areas := Array() var _active_wind_area : XRToolsWindArea -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMovementWind" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMovementWind" or super(name) # Called when the node enters the scene tree for the first time. func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Skip if running in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Skip if we don't have a camera - var camera := ARVRHelpers.get_arvr_camera(self) + var camera := XRHelpers.get_xr_camera(self) if !camera: return # Construct the sphere shape - var sphere_shape := SphereShape.new() + var sphere_shape := SphereShape3D.new() sphere_shape.radius = 0.3 # Construct the collision shape - var collision_shape := CollisionShape.new() + var collision_shape := CollisionShape3D.new() collision_shape.set_name("WindSensorShape") collision_shape.shape = sphere_shape # Construct the sense area - _sense_area = Area.new() + _sense_area = Area3D.new() _sense_area.set_name("WindSensorArea") _sense_area.collision_mask = collision_mask _sense_area.add_child(collision_shape) @@ -75,8 +78,8 @@ func _ready(): camera.add_child(_sense_area) # Subscribe to area notifications - _sense_area.connect("area_entered", self, "_on_area_entered") - _sense_area.connect("area_exited", self, "_on_area_exited") + _sense_area.area_entered.connect(_on_area_entered) + _sense_area.area_exited.connect(_on_area_exited) func set_collision_mask(new_mask: int) -> void: @@ -85,7 +88,7 @@ func set_collision_mask(new_mask: int) -> void: _sense_area.collision_mask = collision_mask -func _on_area_entered(area: Area): +func _on_area_entered(area: Area3D): # Skip if not wind area var wind_area = area as XRToolsWindArea if !wind_area: @@ -99,7 +102,7 @@ func _on_area_entered(area: Area): emit_signal("wind_area_changed", _active_wind_area) -func _on_area_exited(area: Area): +func _on_area_exited(area: Area3D): # Erase from the wind area _in_wind_areas.erase(area) @@ -108,7 +111,7 @@ func _on_area_exited(area: Area): return # Select a new active wind area - if _in_wind_areas.empty(): + if _in_wind_areas.is_empty(): _active_wind_area = null else: _active_wind_area = _in_wind_areas.front() @@ -124,9 +127,9 @@ func physics_movement(delta: float, player_body: XRToolsPlayerBody, _disabled: b return # Calculate the global wind velocity of the wind area - var wind_velocity := _active_wind_area.global_transform.basis.xform(_active_wind_area.wind_vector) + var wind_velocity := _active_wind_area.global_transform.basis * _active_wind_area.wind_vector # Drag the player into the wind var drag_factor := _active_wind_area.drag * drag_multiplier * delta drag_factor = clamp(drag_factor, 0.0, 1.0) - player_body.velocity = lerp(player_body.velocity, wind_velocity, drag_factor) + player_body.velocity = player_body.velocity.lerp(wind_velocity, drag_factor) diff --git a/addons/godot-xr-tools/functions/movement_wind.tscn b/addons/godot-xr-tools/functions/movement_wind.tscn index 3a59c41e..2461b1aa 100644 --- a/addons/godot-xr-tools/functions/movement_wind.tscn +++ b/addons/godot-xr-tools/functions/movement_wind.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bgts3vpmjn6bb"] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_wind.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/functions/movement_wind.gd" id="1"] [node name="MovementWind" type="Node" groups=["movement_providers"]] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn b/addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn index f59522b5..3a4374ca 100644 --- a/addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn +++ b/addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn @@ -1,74 +1,81 @@ -[gd_scene load_steps=36 format=2] +[gd_scene load_steps=37 format=3 uid="uid://the6y7swe6j0"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip.anim" type="Animation" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Hold.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 3.anim" type="Animation" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Horns.anim" type="Animation" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Cup.anim" type="Animation" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.anim" type="Animation" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Default pose.anim" type="Animation" id=7] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.anim" type="Animation" id=8] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 1.anim" type="Animation" id=9] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 2.anim" type="Animation" id=10] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip Shaft.anim" type="Animation" id=11] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Straight.anim" type="Animation" id=12] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign 4.anim" type="Animation" id=13] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign 5.anim" type="Animation" id=14] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign_Point.anim" type="Animation" id=15] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Surfer.anim" type="Animation" id=16] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Thumb.anim" type="Animation" id=17] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Metal.anim" type="Animation" id=18] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinch Large.anim" type="Animation" id=19] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinch Middle.anim" type="Animation" id=20] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/PingPong.anim" type="Animation" id=21] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Middle.anim" type="Animation" id=22] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinch Flat.anim" type="Animation" id=23] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinch Tight.anim" type="Animation" id=24] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinch Up.anim" type="Animation" id=25] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/OK.anim" type="Animation" id=26] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinky.anim" type="Animation" id=27] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Peace.anim" type="Animation" id=28] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Ring.anim" type="Animation" id=29] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Rounded.anim" type="Animation" id=30] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign 2.anim" type="Animation" id=31] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign 1.anim" type="Animation" id=32] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinch Ring.anim" type="Animation" id=33] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign 3.anim" type="Animation" id=34] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pistol.anim" type="Animation" id=35] +[ext_resource type="Animation" uid="uid://dgfeikrugfewi" path="res://addons/godot-xr-tools/hands/animations/left/Cup.res" id="1_7svyl"] +[ext_resource type="Animation" uid="uid://dlxa6f6hwurka" path="res://addons/godot-xr-tools/hands/animations/left/Default pose.res" id="2_ykhfd"] +[ext_resource type="Animation" uid="uid://dqa0h82y3qn1t" path="res://addons/godot-xr-tools/hands/animations/left/Grip 1.res" id="3_y80ds"] +[ext_resource type="Animation" uid="uid://di384xtde8ydf" path="res://addons/godot-xr-tools/hands/animations/left/Grip 2.res" id="4_1nbr8"] +[ext_resource type="Animation" uid="uid://dd67rufxwj2u" path="res://addons/godot-xr-tools/hands/animations/left/Grip 3.res" id="5_28lp1"] +[ext_resource type="Animation" uid="uid://db62hs5s4n2b3" path="res://addons/godot-xr-tools/hands/animations/left/Grip 4.res" id="6_uj648"] +[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="7_yxjeh"] +[ext_resource type="Animation" uid="uid://nq3xh1olqipq" path="res://addons/godot-xr-tools/hands/animations/left/Grip Shaft.res" id="8_i0ro5"] +[ext_resource type="Animation" uid="uid://plad1r85f7ws" path="res://addons/godot-xr-tools/hands/animations/left/Grip.res" id="9_811qe"] +[ext_resource type="Animation" uid="uid://bi1l6lre2w2lp" path="res://addons/godot-xr-tools/hands/animations/left/Hold.res" id="10_o5u3q"] +[ext_resource type="Animation" uid="uid://c3e6h0rv2uw2d" path="res://addons/godot-xr-tools/hands/animations/left/Horns.res" id="11_i2b8g"] +[ext_resource type="Animation" uid="uid://dfekure1r6q13" path="res://addons/godot-xr-tools/hands/animations/left/Metal.res" id="12_yoig6"] +[ext_resource type="Animation" uid="uid://b0rhk4r0r0t32" path="res://addons/godot-xr-tools/hands/animations/left/Middle.res" id="13_kvhwh"] +[ext_resource type="Animation" uid="uid://f5k0gh4qnmv5" path="res://addons/godot-xr-tools/hands/animations/left/OK.res" id="14_ofab3"] +[ext_resource type="Animation" uid="uid://1nlkfvitq7ku" path="res://addons/godot-xr-tools/hands/animations/left/Peace.res" id="15_a4q3y"] +[ext_resource type="Animation" uid="uid://dhjb0e334tfwl" path="res://addons/godot-xr-tools/hands/animations/left/Pinch Flat.res" id="16_ixe2d"] +[ext_resource type="Animation" uid="uid://dkjsnihi81b7p" path="res://addons/godot-xr-tools/hands/animations/left/Pinch Large.res" id="17_oifug"] +[ext_resource type="Animation" uid="uid://bn0fdhe2jwq3h" path="res://addons/godot-xr-tools/hands/animations/left/Pinch Middle.res" id="18_2ic2e"] +[ext_resource type="Animation" uid="uid://bo1b8w0s4ci81" path="res://addons/godot-xr-tools/hands/animations/left/Pinch Ring.res" id="19_4a8v4"] +[ext_resource type="Animation" uid="uid://m5x2m8x3tcel" path="res://addons/godot-xr-tools/hands/animations/left/Pinch Tight.res" id="20_ugc01"] +[ext_resource type="Animation" uid="uid://fi23m6i7orhw" path="res://addons/godot-xr-tools/hands/animations/left/Pinch Up.res" id="21_l3kgg"] +[ext_resource type="Animation" uid="uid://c8qmcuyaltdnw" path="res://addons/godot-xr-tools/hands/animations/left/PingPong.res" id="22_j83er"] +[ext_resource type="Animation" uid="uid://bqnoubqq7ogwu" path="res://addons/godot-xr-tools/hands/animations/left/Pinky.res" id="23_sm4sd"] +[ext_resource type="Animation" uid="uid://ddbo6ioa282en" path="res://addons/godot-xr-tools/hands/animations/left/Pistol.res" id="24_r4kss"] +[ext_resource type="Animation" uid="uid://brkptjihht3ae" path="res://addons/godot-xr-tools/hands/animations/left/Ring.res" id="25_2ncut"] +[ext_resource type="Animation" uid="uid://cnng6xumhw7cx" path="res://addons/godot-xr-tools/hands/animations/left/Rounded.res" id="26_02lfv"] +[ext_resource type="Animation" uid="uid://cevirj0eagdrq" path="res://addons/godot-xr-tools/hands/animations/left/Sign 1.res" id="27_o5si3"] +[ext_resource type="Animation" uid="uid://cc6phxovf1ban" path="res://addons/godot-xr-tools/hands/animations/left/Sign 2.res" id="28_ble5k"] +[ext_resource type="Animation" uid="uid://ohthjp8qbcc4" path="res://addons/godot-xr-tools/hands/animations/left/Sign 3.res" id="29_twq1x"] +[ext_resource type="Animation" uid="uid://dmx42g64577g5" path="res://addons/godot-xr-tools/hands/animations/left/Sign 4.res" id="30_eyeuv"] +[ext_resource type="Animation" uid="uid://dhsoxntrktx0p" path="res://addons/godot-xr-tools/hands/animations/left/Sign 5.res" id="31_50jrs"] +[ext_resource type="Animation" uid="uid://c0u2a3yc2vhg8" path="res://addons/godot-xr-tools/hands/animations/left/Sign_Point.res" id="32_7v122"] +[ext_resource type="Animation" uid="uid://4g211my0hoiw" path="res://addons/godot-xr-tools/hands/animations/left/Straight.res" id="33_m3lif"] +[ext_resource type="Animation" uid="uid://d06l7hygl4qt3" path="res://addons/godot-xr-tools/hands/animations/left/Surfer.res" id="34_b3p10"] +[ext_resource type="Animation" uid="uid://bxei4oebd4hu3" path="res://addons/godot-xr-tools/hands/animations/left/Thumb.res" id="35_huikq"] + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_kw48d"] +_data = { +"Cup": ExtResource("1_7svyl"), +"Default pose": ExtResource("2_ykhfd"), +"Grip": ExtResource("9_811qe"), +"Grip 1": ExtResource("3_y80ds"), +"Grip 2": ExtResource("4_1nbr8"), +"Grip 3": ExtResource("5_28lp1"), +"Grip 4": ExtResource("6_uj648"), +"Grip 5": ExtResource("7_yxjeh"), +"Grip Shaft": ExtResource("8_i0ro5"), +"Hold": ExtResource("10_o5u3q"), +"Horns": ExtResource("11_i2b8g"), +"Metal": ExtResource("12_yoig6"), +"Middle": ExtResource("13_kvhwh"), +"OK": ExtResource("14_ofab3"), +"Peace": ExtResource("15_a4q3y"), +"Pinch Flat": ExtResource("16_ixe2d"), +"Pinch Large": ExtResource("17_oifug"), +"Pinch Middle": ExtResource("18_2ic2e"), +"Pinch Ring": ExtResource("19_4a8v4"), +"Pinch Tight": ExtResource("20_ugc01"), +"Pinch Up": ExtResource("21_l3kgg"), +"PingPong": ExtResource("22_j83er"), +"Pinky": ExtResource("23_sm4sd"), +"Pistol": ExtResource("24_r4kss"), +"Ring": ExtResource("25_2ncut"), +"Rounded": ExtResource("26_02lfv"), +"Sign 1": ExtResource("27_o5si3"), +"Sign 2": ExtResource("28_ble5k"), +"Sign 3": ExtResource("29_twq1x"), +"Sign 4": ExtResource("30_eyeuv"), +"Sign 5": ExtResource("31_50jrs"), +"Sign_Point": ExtResource("32_7v122"), +"Straight": ExtResource("33_m3lif"), +"Surfer": ExtResource("34_b3p10"), +"Thumb": ExtResource("35_huikq") +} [node name="AnimationPlayer" type="AnimationPlayer"] -anims/Cup = ExtResource( 5 ) -"anims/Default pose" = ExtResource( 7 ) -anims/Grip = ExtResource( 1 ) -"anims/Grip 1" = ExtResource( 9 ) -"anims/Grip 2" = ExtResource( 10 ) -"anims/Grip 3" = ExtResource( 3 ) -"anims/Grip 4" = ExtResource( 8 ) -"anims/Grip 5" = ExtResource( 6 ) -"anims/Grip Shaft" = ExtResource( 11 ) -anims/Hold = ExtResource( 2 ) -anims/Horns = ExtResource( 4 ) -anims/Metal = ExtResource( 18 ) -anims/Middle = ExtResource( 22 ) -anims/OK = ExtResource( 26 ) -anims/Peace = ExtResource( 28 ) -"anims/Pinch Flat" = ExtResource( 23 ) -"anims/Pinch Large" = ExtResource( 19 ) -"anims/Pinch Middle" = ExtResource( 20 ) -"anims/Pinch Ring" = ExtResource( 33 ) -"anims/Pinch Tight" = ExtResource( 24 ) -"anims/Pinch Up" = ExtResource( 25 ) -anims/PingPong = ExtResource( 21 ) -anims/Pinky = ExtResource( 27 ) -anims/Pistol = ExtResource( 35 ) -anims/Ring = ExtResource( 29 ) -anims/Rounded = ExtResource( 30 ) -"anims/Sign 1" = ExtResource( 32 ) -"anims/Sign 2" = ExtResource( 31 ) -"anims/Sign 3" = ExtResource( 34 ) -"anims/Sign 4" = ExtResource( 13 ) -"anims/Sign 5" = ExtResource( 14 ) -anims/Sign_Point = ExtResource( 15 ) -anims/Straight = ExtResource( 12 ) -anims/Surfer = ExtResource( 16 ) -anims/Thumb = ExtResource( 17 ) +libraries = { +"": SubResource("AnimationLibrary_kw48d") +} diff --git a/addons/godot-xr-tools/hands/animations/left/Cup.anim b/addons/godot-xr-tools/hands/animations/left/Cup.anim deleted file mode 100644 index 3639e931..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Cup.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Cup.res b/addons/godot-xr-tools/hands/animations/left/Cup.res new file mode 100644 index 00000000..e9d655af Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Cup.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Default pose.anim b/addons/godot-xr-tools/hands/animations/left/Default pose.anim deleted file mode 100644 index fc098572..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Default pose.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Default pose.res b/addons/godot-xr-tools/hands/animations/left/Default pose.res new file mode 100644 index 00000000..ac2acd59 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Default pose.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 1.anim b/addons/godot-xr-tools/hands/animations/left/Grip 1.anim deleted file mode 100644 index b6f7340f..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip 1.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 1.res b/addons/godot-xr-tools/hands/animations/left/Grip 1.res new file mode 100644 index 00000000..690ade76 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip 1.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 2.anim b/addons/godot-xr-tools/hands/animations/left/Grip 2.anim deleted file mode 100644 index a2281372..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip 2.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 2.res b/addons/godot-xr-tools/hands/animations/left/Grip 2.res new file mode 100644 index 00000000..3d798365 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip 2.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 3.anim b/addons/godot-xr-tools/hands/animations/left/Grip 3.anim deleted file mode 100644 index dade489e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip 3.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 3.res b/addons/godot-xr-tools/hands/animations/left/Grip 3.res new file mode 100644 index 00000000..2330310f Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip 3.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 4.anim b/addons/godot-xr-tools/hands/animations/left/Grip 4.anim deleted file mode 100644 index ca563622..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip 4.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 4.res b/addons/godot-xr-tools/hands/animations/left/Grip 4.res new file mode 100644 index 00000000..7b7fa9de Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip 4.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 5.anim b/addons/godot-xr-tools/hands/animations/left/Grip 5.anim deleted file mode 100644 index e4b0ac58..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip 5.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip 5.res b/addons/godot-xr-tools/hands/animations/left/Grip 5.res new file mode 100644 index 00000000..4eb375a0 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip 5.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip Shaft.anim b/addons/godot-xr-tools/hands/animations/left/Grip Shaft.anim deleted file mode 100644 index 8d711bf0..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip Shaft.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip Shaft.res b/addons/godot-xr-tools/hands/animations/left/Grip Shaft.res new file mode 100644 index 00000000..65bbbe2f Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip Shaft.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip.anim b/addons/godot-xr-tools/hands/animations/left/Grip.anim deleted file mode 100644 index f61a9db1..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Grip.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Grip.res b/addons/godot-xr-tools/hands/animations/left/Grip.res new file mode 100644 index 00000000..5a0e5243 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Grip.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Hold.anim b/addons/godot-xr-tools/hands/animations/left/Hold.anim deleted file mode 100644 index 44981daf..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Hold.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Hold.res b/addons/godot-xr-tools/hands/animations/left/Hold.res new file mode 100644 index 00000000..3634f038 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Hold.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Horns.anim b/addons/godot-xr-tools/hands/animations/left/Horns.anim deleted file mode 100644 index 0ee57aca..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Horns.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Horns.res b/addons/godot-xr-tools/hands/animations/left/Horns.res new file mode 100644 index 00000000..6c1afa21 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Horns.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Metal.anim b/addons/godot-xr-tools/hands/animations/left/Metal.anim deleted file mode 100644 index 0c6b246f..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Metal.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Metal.res b/addons/godot-xr-tools/hands/animations/left/Metal.res new file mode 100644 index 00000000..d05434ca Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Metal.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Middle.anim b/addons/godot-xr-tools/hands/animations/left/Middle.anim deleted file mode 100644 index 12e5f516..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Middle.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Middle.res b/addons/godot-xr-tools/hands/animations/left/Middle.res new file mode 100644 index 00000000..4c1d2302 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Middle.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/OK.anim b/addons/godot-xr-tools/hands/animations/left/OK.anim deleted file mode 100644 index c281986e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/OK.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/OK.res b/addons/godot-xr-tools/hands/animations/left/OK.res new file mode 100644 index 00000000..96e2da2a Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/OK.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Peace.anim b/addons/godot-xr-tools/hands/animations/left/Peace.anim deleted file mode 100644 index 68259ab7..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Peace.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Peace.res b/addons/godot-xr-tools/hands/animations/left/Peace.res new file mode 100644 index 00000000..2ae48b16 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Peace.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Flat.anim b/addons/godot-xr-tools/hands/animations/left/Pinch Flat.anim deleted file mode 100644 index 692cfb78..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinch Flat.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Flat.res b/addons/godot-xr-tools/hands/animations/left/Pinch Flat.res new file mode 100644 index 00000000..5f222d33 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinch Flat.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Large.anim b/addons/godot-xr-tools/hands/animations/left/Pinch Large.anim deleted file mode 100644 index 47f847c8..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinch Large.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Large.res b/addons/godot-xr-tools/hands/animations/left/Pinch Large.res new file mode 100644 index 00000000..ff08be05 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinch Large.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Middle.anim b/addons/godot-xr-tools/hands/animations/left/Pinch Middle.anim deleted file mode 100644 index 2958cf67..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinch Middle.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Middle.res b/addons/godot-xr-tools/hands/animations/left/Pinch Middle.res new file mode 100644 index 00000000..684819bb Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinch Middle.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Ring.anim b/addons/godot-xr-tools/hands/animations/left/Pinch Ring.anim deleted file mode 100644 index 666b4793..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinch Ring.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Ring.res b/addons/godot-xr-tools/hands/animations/left/Pinch Ring.res new file mode 100644 index 00000000..0b953fc4 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinch Ring.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Tight.anim b/addons/godot-xr-tools/hands/animations/left/Pinch Tight.anim deleted file mode 100644 index 3a72d75a..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinch Tight.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Tight.res b/addons/godot-xr-tools/hands/animations/left/Pinch Tight.res new file mode 100644 index 00000000..b8f5d009 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinch Tight.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Up.anim b/addons/godot-xr-tools/hands/animations/left/Pinch Up.anim deleted file mode 100644 index f5d5ed92..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinch Up.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinch Up.res b/addons/godot-xr-tools/hands/animations/left/Pinch Up.res new file mode 100644 index 00000000..58b935e8 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinch Up.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/PingPong.anim b/addons/godot-xr-tools/hands/animations/left/PingPong.anim deleted file mode 100644 index e14b6368..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/PingPong.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/PingPong.res b/addons/godot-xr-tools/hands/animations/left/PingPong.res new file mode 100644 index 00000000..999c6a90 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/PingPong.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinky.anim b/addons/godot-xr-tools/hands/animations/left/Pinky.anim deleted file mode 100644 index f790f44f..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pinky.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pinky.res b/addons/godot-xr-tools/hands/animations/left/Pinky.res new file mode 100644 index 00000000..73fbcc46 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pinky.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pistol.anim b/addons/godot-xr-tools/hands/animations/left/Pistol.anim deleted file mode 100644 index b091689c..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Pistol.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Pistol.res b/addons/godot-xr-tools/hands/animations/left/Pistol.res new file mode 100644 index 00000000..e8aeb777 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Pistol.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Ring.anim b/addons/godot-xr-tools/hands/animations/left/Ring.anim deleted file mode 100644 index 6a870754..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Ring.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Ring.res b/addons/godot-xr-tools/hands/animations/left/Ring.res new file mode 100644 index 00000000..7e2fa722 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Ring.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Rounded.anim b/addons/godot-xr-tools/hands/animations/left/Rounded.anim deleted file mode 100644 index 25f8848d..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Rounded.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Rounded.res b/addons/godot-xr-tools/hands/animations/left/Rounded.res new file mode 100644 index 00000000..e7375481 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Rounded.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 1.anim b/addons/godot-xr-tools/hands/animations/left/Sign 1.anim deleted file mode 100644 index e6f6b2be..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Sign 1.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 1.res b/addons/godot-xr-tools/hands/animations/left/Sign 1.res new file mode 100644 index 00000000..fb7d6de0 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Sign 1.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 2.anim b/addons/godot-xr-tools/hands/animations/left/Sign 2.anim deleted file mode 100644 index 20b17579..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Sign 2.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 2.res b/addons/godot-xr-tools/hands/animations/left/Sign 2.res new file mode 100644 index 00000000..b0a774ad Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Sign 2.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 3.anim b/addons/godot-xr-tools/hands/animations/left/Sign 3.anim deleted file mode 100644 index 77999747..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Sign 3.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 3.res b/addons/godot-xr-tools/hands/animations/left/Sign 3.res new file mode 100644 index 00000000..4564fddd Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Sign 3.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 4.anim b/addons/godot-xr-tools/hands/animations/left/Sign 4.anim deleted file mode 100644 index 9ab66d78..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Sign 4.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 4.res b/addons/godot-xr-tools/hands/animations/left/Sign 4.res new file mode 100644 index 00000000..251f28c2 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Sign 4.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 5.anim b/addons/godot-xr-tools/hands/animations/left/Sign 5.anim deleted file mode 100644 index 29520cf8..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Sign 5.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign 5.res b/addons/godot-xr-tools/hands/animations/left/Sign 5.res new file mode 100644 index 00000000..3205e249 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Sign 5.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign_Point.anim b/addons/godot-xr-tools/hands/animations/left/Sign_Point.anim deleted file mode 100644 index d2ef6072..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Sign_Point.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Sign_Point.res b/addons/godot-xr-tools/hands/animations/left/Sign_Point.res new file mode 100644 index 00000000..f3346f05 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Sign_Point.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Straight.anim b/addons/godot-xr-tools/hands/animations/left/Straight.anim deleted file mode 100644 index 1a1b0869..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Straight.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Straight.res b/addons/godot-xr-tools/hands/animations/left/Straight.res new file mode 100644 index 00000000..9b1918d6 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Straight.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Surfer.anim b/addons/godot-xr-tools/hands/animations/left/Surfer.anim deleted file mode 100644 index 3f17542e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Surfer.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Surfer.res b/addons/godot-xr-tools/hands/animations/left/Surfer.res new file mode 100644 index 00000000..d4b03e48 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Surfer.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/Thumb.anim b/addons/godot-xr-tools/hands/animations/left/Thumb.anim deleted file mode 100644 index 4ef925f8..00000000 Binary files a/addons/godot-xr-tools/hands/animations/left/Thumb.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/left/Thumb.res b/addons/godot-xr-tools/hands/animations/left/Thumb.res new file mode 100644 index 00000000..1b40d9fb Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/left/Thumb.res differ diff --git a/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres b/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres index 0bba1f4f..ae6f20af 100644 --- a/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres +++ b/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres @@ -1,32 +1,32 @@ -[gd_resource type="AnimationNodeBlendTree" load_steps=6 format=2] +[gd_resource type="AnimationNodeBlendTree" load_steps=6 format=3 uid="uid://dl8yf7ipqotd1"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="1"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="2"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="3"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="4"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="5"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] [resource] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1", "output", 0, "Grip" ] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("1") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("2") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("3") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("4") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("5") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] diff --git a/addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn b/addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn index df41f937..a18d2d2a 100644 --- a/addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn +++ b/addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn @@ -1,74 +1,81 @@ -[gd_scene load_steps=36 format=2] +[gd_scene load_steps=37 format=3 uid="uid://bxipj7hyjwy6f"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip Shaft.anim" type="Animation" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Hold.anim" type="Animation" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Horns.anim" type="Animation" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 1.anim" type="Animation" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 2.anim" type="Animation" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Default pose.anim" type="Animation" id=7] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 3.anim" type="Animation" id=8] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Cup.anim" type="Animation" id=9] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.anim" type="Animation" id=10] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=11] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign_Point.anim" type="Animation" id=12] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign 5.anim" type="Animation" id=13] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Straight.anim" type="Animation" id=14] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Surfer.anim" type="Animation" id=15] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign 2.anim" type="Animation" id=16] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign 3.anim" type="Animation" id=17] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign 4.anim" type="Animation" id=18] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Thumb.anim" type="Animation" id=19] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinch Flat.anim" type="Animation" id=20] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinch Large.anim" type="Animation" id=21] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Middle.anim" type="Animation" id=22] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Peace.anim" type="Animation" id=23] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Metal.anim" type="Animation" id=24] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/OK.anim" type="Animation" id=25] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinch Middle.anim" type="Animation" id=26] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinch Ring.anim" type="Animation" id=27] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Rounded.anim" type="Animation" id=28] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinch Tight.anim" type="Animation" id=29] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/PingPong.anim" type="Animation" id=30] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinch Up.anim" type="Animation" id=31] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pistol.anim" type="Animation" id=32] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinky.anim" type="Animation" id=33] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Ring.anim" type="Animation" id=34] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign 1.anim" type="Animation" id=35] +[ext_resource type="Animation" uid="uid://do01jton6rk42" path="res://addons/godot-xr-tools/hands/animations/right/Cup.res" id="1_mq7eu"] +[ext_resource type="Animation" uid="uid://ky28birj4su6" path="res://addons/godot-xr-tools/hands/animations/right/Default pose.res" id="2_kxlaj"] +[ext_resource type="Animation" uid="uid://daqddcrbpam0c" path="res://addons/godot-xr-tools/hands/animations/right/Grip 1.res" id="3_5xubn"] +[ext_resource type="Animation" uid="uid://r8hleealhrqt" path="res://addons/godot-xr-tools/hands/animations/right/Grip 2.res" id="4_y3ovo"] +[ext_resource type="Animation" uid="uid://rs7vpclot07o" path="res://addons/godot-xr-tools/hands/animations/right/Grip 3.res" id="5_0d4pg"] +[ext_resource type="Animation" uid="uid://d1xnpyc08njjx" path="res://addons/godot-xr-tools/hands/animations/right/Grip 4.res" id="6_nabm2"] +[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="7_gy2yb"] +[ext_resource type="Animation" uid="uid://c8dghcftg1thx" path="res://addons/godot-xr-tools/hands/animations/right/Grip Shaft.res" id="8_ffwxq"] +[ext_resource type="Animation" uid="uid://ccds2u22gbxn7" path="res://addons/godot-xr-tools/hands/animations/right/Grip.res" id="9_y16mo"] +[ext_resource type="Animation" uid="uid://bv5tuc1kjv0k5" path="res://addons/godot-xr-tools/hands/animations/right/Hold.res" id="10_g8e21"] +[ext_resource type="Animation" uid="uid://cdjfhqnr4n2mr" path="res://addons/godot-xr-tools/hands/animations/right/Horns.res" id="11_b3lks"] +[ext_resource type="Animation" uid="uid://b1kqsodcr1til" path="res://addons/godot-xr-tools/hands/animations/right/Metal.res" id="12_p14fk"] +[ext_resource type="Animation" uid="uid://cg6fsqb2iuuih" path="res://addons/godot-xr-tools/hands/animations/right/Middle.res" id="13_4i278"] +[ext_resource type="Animation" uid="uid://c3isimdlxg54a" path="res://addons/godot-xr-tools/hands/animations/right/OK.res" id="14_qk7tg"] +[ext_resource type="Animation" uid="uid://bxmc3vlfih764" path="res://addons/godot-xr-tools/hands/animations/right/Peace.res" id="15_ejppt"] +[ext_resource type="Animation" uid="uid://dg4v7rqiaje2h" path="res://addons/godot-xr-tools/hands/animations/right/Pinch Flat.res" id="16_7cyln"] +[ext_resource type="Animation" uid="uid://cuwwpxi44vwpm" path="res://addons/godot-xr-tools/hands/animations/right/Pinch Large.res" id="17_amtgc"] +[ext_resource type="Animation" uid="uid://c6vghurk7t5yb" path="res://addons/godot-xr-tools/hands/animations/right/Pinch Middle.res" id="18_pnqcq"] +[ext_resource type="Animation" uid="uid://mjotm5uukoo3" path="res://addons/godot-xr-tools/hands/animations/right/Pinch Ring.res" id="19_aeaff"] +[ext_resource type="Animation" uid="uid://ca21ej1p3g2yt" path="res://addons/godot-xr-tools/hands/animations/right/Pinch Tight.res" id="20_mghnf"] +[ext_resource type="Animation" uid="uid://cseojxi8rrqc" path="res://addons/godot-xr-tools/hands/animations/right/Pinch Up.res" id="21_1v6tw"] +[ext_resource type="Animation" uid="uid://c8hn123uon74u" path="res://addons/godot-xr-tools/hands/animations/right/PingPong.res" id="22_ueac0"] +[ext_resource type="Animation" uid="uid://b6ra3rqia1gvb" path="res://addons/godot-xr-tools/hands/animations/right/Pinky.res" id="23_7vyi4"] +[ext_resource type="Animation" uid="uid://csp3fdknowmi5" path="res://addons/godot-xr-tools/hands/animations/right/Pistol.res" id="24_nc600"] +[ext_resource type="Animation" uid="uid://2ttepgvf634h" path="res://addons/godot-xr-tools/hands/animations/right/Ring.res" id="25_20nj0"] +[ext_resource type="Animation" uid="uid://wcwa3p1qrhwr" path="res://addons/godot-xr-tools/hands/animations/right/Rounded.res" id="26_648rb"] +[ext_resource type="Animation" uid="uid://bcwx6a6mhsoj2" path="res://addons/godot-xr-tools/hands/animations/right/Sign 1.res" id="27_liq3y"] +[ext_resource type="Animation" uid="uid://btnsp36fjkldf" path="res://addons/godot-xr-tools/hands/animations/right/Sign 2.res" id="28_vdv8x"] +[ext_resource type="Animation" uid="uid://c35i6glt1ov2m" path="res://addons/godot-xr-tools/hands/animations/right/Sign 3.res" id="29_uairn"] +[ext_resource type="Animation" uid="uid://b8mmk2ufmlyf" path="res://addons/godot-xr-tools/hands/animations/right/Sign 4.res" id="30_351lm"] +[ext_resource type="Animation" uid="uid://ddgl3lsnlfiny" path="res://addons/godot-xr-tools/hands/animations/right/Sign 5.res" id="31_o4yst"] +[ext_resource type="Animation" uid="uid://ccy3e7a0hvxyl" path="res://addons/godot-xr-tools/hands/animations/right/Sign_Point.res" id="32_02kj7"] +[ext_resource type="Animation" uid="uid://d3h36bkauutoq" path="res://addons/godot-xr-tools/hands/animations/right/Straight.res" id="33_gpxgh"] +[ext_resource type="Animation" uid="uid://bq7cjxdn28jcv" path="res://addons/godot-xr-tools/hands/animations/right/Surfer.res" id="34_ldn4j"] +[ext_resource type="Animation" uid="uid://d2ukhr3n2r1u8" path="res://addons/godot-xr-tools/hands/animations/right/Thumb.res" id="35_xnxq3"] + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_reqae"] +_data = { +"Cup": ExtResource("1_mq7eu"), +"Default pose": ExtResource("2_kxlaj"), +"Grip": ExtResource("9_y16mo"), +"Grip 1": ExtResource("3_5xubn"), +"Grip 2": ExtResource("4_y3ovo"), +"Grip 3": ExtResource("5_0d4pg"), +"Grip 4": ExtResource("6_nabm2"), +"Grip 5": ExtResource("7_gy2yb"), +"Grip Shaft": ExtResource("8_ffwxq"), +"Hold": ExtResource("10_g8e21"), +"Horns": ExtResource("11_b3lks"), +"Metal": ExtResource("12_p14fk"), +"Middle": ExtResource("13_4i278"), +"OK": ExtResource("14_qk7tg"), +"Peace": ExtResource("15_ejppt"), +"Pinch Flat": ExtResource("16_7cyln"), +"Pinch Large": ExtResource("17_amtgc"), +"Pinch Middle": ExtResource("18_pnqcq"), +"Pinch Ring": ExtResource("19_aeaff"), +"Pinch Tight": ExtResource("20_mghnf"), +"Pinch Up": ExtResource("21_1v6tw"), +"PingPong": ExtResource("22_ueac0"), +"Pinky": ExtResource("23_7vyi4"), +"Pistol": ExtResource("24_nc600"), +"Ring": ExtResource("25_20nj0"), +"Rounded": ExtResource("26_648rb"), +"Sign 1": ExtResource("27_liq3y"), +"Sign 2": ExtResource("28_vdv8x"), +"Sign 3": ExtResource("29_uairn"), +"Sign 4": ExtResource("30_351lm"), +"Sign 5": ExtResource("31_o4yst"), +"Sign_Point": ExtResource("32_02kj7"), +"Straight": ExtResource("33_gpxgh"), +"Surfer": ExtResource("34_ldn4j"), +"Thumb": ExtResource("35_xnxq3") +} [node name="AnimationPlayer" type="AnimationPlayer"] -anims/Cup = ExtResource( 9 ) -"anims/Default pose" = ExtResource( 7 ) -anims/Grip = ExtResource( 2 ) -"anims/Grip 1" = ExtResource( 5 ) -"anims/Grip 2" = ExtResource( 6 ) -"anims/Grip 3" = ExtResource( 8 ) -"anims/Grip 4" = ExtResource( 10 ) -"anims/Grip 5" = ExtResource( 11 ) -"anims/Grip Shaft" = ExtResource( 1 ) -anims/Hold = ExtResource( 3 ) -anims/Horns = ExtResource( 4 ) -anims/Metal = ExtResource( 24 ) -anims/Middle = ExtResource( 22 ) -anims/OK = ExtResource( 25 ) -anims/Peace = ExtResource( 23 ) -"anims/Pinch Flat" = ExtResource( 20 ) -"anims/Pinch Large" = ExtResource( 21 ) -"anims/Pinch Middle" = ExtResource( 26 ) -"anims/Pinch Ring" = ExtResource( 27 ) -"anims/Pinch Tight" = ExtResource( 29 ) -"anims/Pinch Up" = ExtResource( 31 ) -anims/PingPong = ExtResource( 30 ) -anims/Pinky = ExtResource( 33 ) -anims/Pistol = ExtResource( 32 ) -anims/Ring = ExtResource( 34 ) -anims/Rounded = ExtResource( 28 ) -"anims/Sign 1" = ExtResource( 35 ) -"anims/Sign 2" = ExtResource( 16 ) -"anims/Sign 3" = ExtResource( 17 ) -"anims/Sign 4" = ExtResource( 18 ) -"anims/Sign 5" = ExtResource( 13 ) -anims/Sign_Point = ExtResource( 12 ) -anims/Straight = ExtResource( 14 ) -anims/Surfer = ExtResource( 15 ) -anims/Thumb = ExtResource( 19 ) +libraries = { +"": SubResource("AnimationLibrary_reqae") +} diff --git a/addons/godot-xr-tools/hands/animations/right/Cup.anim b/addons/godot-xr-tools/hands/animations/right/Cup.anim deleted file mode 100644 index 2b1b44e2..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Cup.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Cup.res b/addons/godot-xr-tools/hands/animations/right/Cup.res new file mode 100644 index 00000000..8c51ec0e Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Cup.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Default pose.anim b/addons/godot-xr-tools/hands/animations/right/Default pose.anim deleted file mode 100644 index 19c3cd0e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Default pose.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Default pose.res b/addons/godot-xr-tools/hands/animations/right/Default pose.res new file mode 100644 index 00000000..04330644 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Default pose.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 1.anim b/addons/godot-xr-tools/hands/animations/right/Grip 1.anim deleted file mode 100644 index 2b918b26..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip 1.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 1.res b/addons/godot-xr-tools/hands/animations/right/Grip 1.res new file mode 100644 index 00000000..a948e075 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip 1.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 2.anim b/addons/godot-xr-tools/hands/animations/right/Grip 2.anim deleted file mode 100644 index 1b0a1848..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip 2.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 2.res b/addons/godot-xr-tools/hands/animations/right/Grip 2.res new file mode 100644 index 00000000..0edc4bc8 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip 2.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 3.anim b/addons/godot-xr-tools/hands/animations/right/Grip 3.anim deleted file mode 100644 index 2db55377..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip 3.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 3.res b/addons/godot-xr-tools/hands/animations/right/Grip 3.res new file mode 100644 index 00000000..3217e8f8 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip 3.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 4.anim b/addons/godot-xr-tools/hands/animations/right/Grip 4.anim deleted file mode 100644 index 1570b8cb..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip 4.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 4.res b/addons/godot-xr-tools/hands/animations/right/Grip 4.res new file mode 100644 index 00000000..59b168b6 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip 4.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 5.anim b/addons/godot-xr-tools/hands/animations/right/Grip 5.anim deleted file mode 100644 index 79ca3edb..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip 5.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip 5.res b/addons/godot-xr-tools/hands/animations/right/Grip 5.res new file mode 100644 index 00000000..c8564347 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip 5.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip Shaft.anim b/addons/godot-xr-tools/hands/animations/right/Grip Shaft.anim deleted file mode 100644 index aa2389c2..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip Shaft.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip Shaft.res b/addons/godot-xr-tools/hands/animations/right/Grip Shaft.res new file mode 100644 index 00000000..af238ac6 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip Shaft.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip.anim b/addons/godot-xr-tools/hands/animations/right/Grip.anim deleted file mode 100644 index 987f856f..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Grip.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Grip.res b/addons/godot-xr-tools/hands/animations/right/Grip.res new file mode 100644 index 00000000..601dcf75 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Grip.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Hold.anim b/addons/godot-xr-tools/hands/animations/right/Hold.anim deleted file mode 100644 index 5f3df85e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Hold.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Hold.res b/addons/godot-xr-tools/hands/animations/right/Hold.res new file mode 100644 index 00000000..e9e7b202 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Hold.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Horns.anim b/addons/godot-xr-tools/hands/animations/right/Horns.anim deleted file mode 100644 index 4e9a2c80..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Horns.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Horns.res b/addons/godot-xr-tools/hands/animations/right/Horns.res new file mode 100644 index 00000000..dc96a648 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Horns.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Metal.anim b/addons/godot-xr-tools/hands/animations/right/Metal.anim deleted file mode 100644 index d96c3813..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Metal.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Metal.res b/addons/godot-xr-tools/hands/animations/right/Metal.res new file mode 100644 index 00000000..9586df28 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Metal.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Middle.anim b/addons/godot-xr-tools/hands/animations/right/Middle.anim deleted file mode 100644 index 073e7e34..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Middle.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Middle.res b/addons/godot-xr-tools/hands/animations/right/Middle.res new file mode 100644 index 00000000..58b0b176 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Middle.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/OK.anim b/addons/godot-xr-tools/hands/animations/right/OK.anim deleted file mode 100644 index 4366eedf..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/OK.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/OK.res b/addons/godot-xr-tools/hands/animations/right/OK.res new file mode 100644 index 00000000..0c34865d Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/OK.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Peace.anim b/addons/godot-xr-tools/hands/animations/right/Peace.anim deleted file mode 100644 index a7808e7d..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Peace.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Peace.res b/addons/godot-xr-tools/hands/animations/right/Peace.res new file mode 100644 index 00000000..706c3650 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Peace.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Flat.anim b/addons/godot-xr-tools/hands/animations/right/Pinch Flat.anim deleted file mode 100644 index ed752b39..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinch Flat.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Flat.res b/addons/godot-xr-tools/hands/animations/right/Pinch Flat.res new file mode 100644 index 00000000..bb791493 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinch Flat.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Large.anim b/addons/godot-xr-tools/hands/animations/right/Pinch Large.anim deleted file mode 100644 index d0c37ddf..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinch Large.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Large.res b/addons/godot-xr-tools/hands/animations/right/Pinch Large.res new file mode 100644 index 00000000..868e737f Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinch Large.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Middle.anim b/addons/godot-xr-tools/hands/animations/right/Pinch Middle.anim deleted file mode 100644 index 8d784c7b..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinch Middle.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Middle.res b/addons/godot-xr-tools/hands/animations/right/Pinch Middle.res new file mode 100644 index 00000000..7bc904e4 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinch Middle.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Ring.anim b/addons/godot-xr-tools/hands/animations/right/Pinch Ring.anim deleted file mode 100644 index ec619667..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinch Ring.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Ring.res b/addons/godot-xr-tools/hands/animations/right/Pinch Ring.res new file mode 100644 index 00000000..346567a4 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinch Ring.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Tight.anim b/addons/godot-xr-tools/hands/animations/right/Pinch Tight.anim deleted file mode 100644 index 18a72e5e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinch Tight.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Tight.res b/addons/godot-xr-tools/hands/animations/right/Pinch Tight.res new file mode 100644 index 00000000..a828be77 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinch Tight.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Up.anim b/addons/godot-xr-tools/hands/animations/right/Pinch Up.anim deleted file mode 100644 index f9b9ff1e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinch Up.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinch Up.res b/addons/godot-xr-tools/hands/animations/right/Pinch Up.res new file mode 100644 index 00000000..edef1248 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinch Up.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/PingPong.anim b/addons/godot-xr-tools/hands/animations/right/PingPong.anim deleted file mode 100644 index 2498677e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/PingPong.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/PingPong.res b/addons/godot-xr-tools/hands/animations/right/PingPong.res new file mode 100644 index 00000000..d422d4d9 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/PingPong.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinky.anim b/addons/godot-xr-tools/hands/animations/right/Pinky.anim deleted file mode 100644 index 4f4dcf5b..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pinky.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pinky.res b/addons/godot-xr-tools/hands/animations/right/Pinky.res new file mode 100644 index 00000000..818f6d80 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pinky.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pistol.anim b/addons/godot-xr-tools/hands/animations/right/Pistol.anim deleted file mode 100644 index 99122b53..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Pistol.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Pistol.res b/addons/godot-xr-tools/hands/animations/right/Pistol.res new file mode 100644 index 00000000..40c3cde6 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Pistol.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Ring.anim b/addons/godot-xr-tools/hands/animations/right/Ring.anim deleted file mode 100644 index d833aaa2..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Ring.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Ring.res b/addons/godot-xr-tools/hands/animations/right/Ring.res new file mode 100644 index 00000000..9d0e1c3d Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Ring.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Rounded.anim b/addons/godot-xr-tools/hands/animations/right/Rounded.anim deleted file mode 100644 index aa2d6246..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Rounded.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Rounded.res b/addons/godot-xr-tools/hands/animations/right/Rounded.res new file mode 100644 index 00000000..02e1a7fb Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Rounded.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 1.anim b/addons/godot-xr-tools/hands/animations/right/Sign 1.anim deleted file mode 100644 index 907c1c9d..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Sign 1.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 1.res b/addons/godot-xr-tools/hands/animations/right/Sign 1.res new file mode 100644 index 00000000..b5f12afe Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Sign 1.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 2.anim b/addons/godot-xr-tools/hands/animations/right/Sign 2.anim deleted file mode 100644 index d9eb445e..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Sign 2.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 2.res b/addons/godot-xr-tools/hands/animations/right/Sign 2.res new file mode 100644 index 00000000..eb398d6d Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Sign 2.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 3.anim b/addons/godot-xr-tools/hands/animations/right/Sign 3.anim deleted file mode 100644 index 52cc0482..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Sign 3.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 3.res b/addons/godot-xr-tools/hands/animations/right/Sign 3.res new file mode 100644 index 00000000..f69a4ad1 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Sign 3.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 4.anim b/addons/godot-xr-tools/hands/animations/right/Sign 4.anim deleted file mode 100644 index 0966f588..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Sign 4.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 4.res b/addons/godot-xr-tools/hands/animations/right/Sign 4.res new file mode 100644 index 00000000..e93f3935 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Sign 4.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 5.anim b/addons/godot-xr-tools/hands/animations/right/Sign 5.anim deleted file mode 100644 index aae40b62..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Sign 5.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign 5.res b/addons/godot-xr-tools/hands/animations/right/Sign 5.res new file mode 100644 index 00000000..69f68f45 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Sign 5.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign_Point.anim b/addons/godot-xr-tools/hands/animations/right/Sign_Point.anim deleted file mode 100644 index 71f40ff0..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Sign_Point.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Sign_Point.res b/addons/godot-xr-tools/hands/animations/right/Sign_Point.res new file mode 100644 index 00000000..8f648703 Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Sign_Point.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Straight.anim b/addons/godot-xr-tools/hands/animations/right/Straight.anim deleted file mode 100644 index 4ab1d930..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Straight.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Straight.res b/addons/godot-xr-tools/hands/animations/right/Straight.res new file mode 100644 index 00000000..cd658ecc Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Straight.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Surfer.anim b/addons/godot-xr-tools/hands/animations/right/Surfer.anim deleted file mode 100644 index 25643557..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Surfer.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Surfer.res b/addons/godot-xr-tools/hands/animations/right/Surfer.res new file mode 100644 index 00000000..01cfa17a Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Surfer.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/Thumb.anim b/addons/godot-xr-tools/hands/animations/right/Thumb.anim deleted file mode 100644 index eec925c1..00000000 Binary files a/addons/godot-xr-tools/hands/animations/right/Thumb.anim and /dev/null differ diff --git a/addons/godot-xr-tools/hands/animations/right/Thumb.res b/addons/godot-xr-tools/hands/animations/right/Thumb.res new file mode 100644 index 00000000..f82ac7fd Binary files /dev/null and b/addons/godot-xr-tools/hands/animations/right/Thumb.res differ diff --git a/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres b/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres index 10237fc0..f56fb58b 100644 --- a/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres +++ b/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres @@ -1,32 +1,32 @@ -[gd_resource type="AnimationNodeBlendTree" load_steps=6 format=2] +[gd_resource type="AnimationNodeBlendTree" load_steps=6 format=3 uid="uid://m85b1gogdums"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="1"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="2"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=4] +[sub_resource type="AnimationNodeBlend2" id="4"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=3] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="3"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="5"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] [resource] -graph_offset = Vector2( -753.664, -85.6991 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 4 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 3 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1", "output", 0, "Grip" ] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("1") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("2") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("4") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("3") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("5") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] diff --git a/addons/godot-xr-tools/hands/hand.gd b/addons/godot-xr-tools/hands/hand.gd index 3ac7fccd..a63f5fa9 100644 --- a/addons/godot-xr-tools/hands/hand.gd +++ b/addons/godot-xr-tools/hands/hand.gd @@ -1,6 +1,7 @@ -tool -class_name XRToolsHand, "res://addons/godot-xr-tools/editor/icons/hand.svg" -extends Spatial +@tool +@icon("res://addons/godot-xr-tools/editor/icons/hand.svg") +class_name XRToolsHand +extends Node3D ## XR Tools Hand Script @@ -8,7 +9,7 @@ extends Spatial ## This script manages a godot-xr-tools hand. It animates the hand blending ## grip and trigger animations based on controller input. ## -## Additionally the hand script detects world-scale changes in the ARVRServer +## Additionally the hand script detects world-scale changes in the XRServer ## and re-scales the hand appropriately so the hand stays scaled to the ## physical hand of the user. @@ -18,24 +19,29 @@ signal hand_scale_changed(scale) ## Blend tree to use -export var hand_blend_tree : AnimationNodeBlendTree setget set_hand_blend_tree +@export var hand_blend_tree : AnimationNodeBlendTree: set = set_hand_blend_tree ## Override the hand material -export var hand_material_override : Material setget set_hand_material_override +@export var hand_material_override : Material: set = set_hand_material_override ## Default hand pose -export var default_pose : Resource setget set_default_pose +@export var default_pose : XRToolsHandPoseSettings: set = set_default_pose +## Name of the Grip action in the OpenXR Action Map. +@export var grip_action : String = "grip" + +## Name of the Trigger action in the OpenXR Action Map. +@export var trigger_action : String = "trigger" ## Last world scale (for scaling hands) var _last_world_scale : float = 1.0 ## Initial hand transform (from controller) - used for scaling hands -var _transform : Transform +var _transform : Transform3D ## Hand mesh -var _hand_mesh : MeshInstance +var _hand_mesh : MeshInstance3D ## Hand animation player var _animation_player : AnimationPlayer @@ -74,9 +80,9 @@ class PoseOverride: settings = s -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHand" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHand" ## Called when the node enters the scene tree for the first time. @@ -85,7 +91,7 @@ func _ready() -> void: _transform = transform # Find the relevant hand nodes - _hand_mesh = _find_child(self, "MeshInstance") + _hand_mesh = _find_child(self, "MeshInstance3D") _animation_player = _find_child(self, "AnimationPlayer") _animation_tree = _find_child(self, "AnimationTree") @@ -100,61 +106,51 @@ func _ready() -> void: ## It then reads the grip and trigger action values to animate the hand. func _process(_delta: float) -> void: # Do not run physics if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return - # Scale the hand mesh with the world scale. This is required for OpenXR plugin - # 1.3.0 and later where the plugin no-longer scales the controllers with - # world_scale - if ARVRServer.world_scale != _last_world_scale: - _last_world_scale = ARVRServer.world_scale + # Scale the hand mesh with the world scale. + if XRServer.world_scale != _last_world_scale: + _last_world_scale = XRServer.world_scale transform = _transform.scaled(Vector3.ONE * _last_world_scale) emit_signal("hand_scale_changed", _last_world_scale) # Animate the hand mesh with the controller inputs - var controller : ARVRController = get_parent() + var controller : XRController3D = get_parent() if controller: - var grip : float = controller.get_joystick_axis(JOY_VR_ANALOG_GRIP) - var trigger : float = controller.get_joystick_axis(JOY_VR_ANALOG_TRIGGER) + var grip : float = controller.get_float(grip_action) + var trigger : float = controller.get_float(trigger_action) # Allow overriding of grip and trigger if _force_grip >= 0.0: grip = _force_grip if _force_trigger >= 0.0: trigger = _force_trigger - # Uncomment for workaround for bug in OpenXR plugin 1.1.1 and earlier - # giving values from -1.0 to 1.0. Note that when controllers are not - # being tracking yet this will result in a value of 0.5 - # grip = (grip + 1.0) * 0.5 - # trigger = (trigger + 1.0) * 0.5 - $AnimationTree.set("parameters/Grip/blend_amount", grip) $AnimationTree.set("parameters/Trigger/blend_amount", trigger) - # var grip_state = controller.is_button_pressed(JOY_VR_GRIP) - # print("Pressed: " + str(grip_state)) # This method verifies the hand has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Check hand for mesh instance - if not _find_child(self, "MeshInstance"): - return "Hand does not have a MeshInstance" + if not _find_child(self, "MeshInstance3D"): + warnings.append("Hand does not have a MeshInstance3D") # Check hand for animation player if not _find_child(self, "AnimationPlayer"): - return "Hand does not have a AnimationPlayer" + warnings.append("Hand does not have a AnimationPlayer") # Check hand for animation tree var tree : AnimationTree = _find_child(self, "AnimationTree") if not tree: - return "Hand does not have a AnimationTree" - - # Check hand animation tree has a root - if not tree.tree_root: - return "Hand AnimationTree has no root" + warnings.append("Hand does not have a AnimationTree") + elif not tree.tree_root: + warnings.append("Hand AnimationTree has no root") - # Passed basic validation - return "" + # Return warnings + return warnings ## Find an [XRToolsHand] node. @@ -162,8 +158,8 @@ func _get_configuration_warning(): ## This function searches from the specified node for an [XRToolsHand] assuming ## the node is a sibling of the hand under an [ARVRController]. static func find_instance(node : Node) -> XRToolsHand: - return XRTools.find_child( - ARVRHelpers.get_arvr_controller(node), + return XRTools.find_xr_child( + XRHelpers.get_xr_controller(node), "*", "XRToolsHand") as XRToolsHand @@ -184,7 +180,7 @@ func set_hand_material_override(material : Material) -> void: ## Set the default open-hand pose -func set_default_pose(pose : Resource) -> void: +func set_default_pose(pose : XRToolsHandPoseSettings) -> void: default_pose = pose if is_inside_tree(): _update_pose() @@ -317,7 +313,7 @@ func _remove_pose_override(who : Node) -> bool: # Check for a match if pose.who == who: # Remove the override - _pose_overrides.remove(pos) + _pose_overrides.remove_at(pos) modified = true length -= 1 else: diff --git a/addons/godot-xr-tools/hands/hand_physics_bone.gd b/addons/godot-xr-tools/hands/hand_physics_bone.gd index cf0110f3..998d35d8 100644 --- a/addons/godot-xr-tools/hands/hand_physics_bone.gd +++ b/addons/godot-xr-tools/hands/hand_physics_bone.gd @@ -1,15 +1,15 @@ -tool +@tool class_name XRToolsHandPhysicsBone -extends BoneAttachment +extends BoneAttachment3D ## XR Tools Physics Hand Bone ## ## This script adds a physics-bone to a godot-xr-tools physics hand. ## -## It extends from [BoneAttachment] to track the position of the bone in -## the hand skeleton, and uses this position to move a [KinematicBody] -## physics-bone with a [CapsuleShape] collider. +## It extends from [BoneAttachment3D] to track the position of the bone in +## the hand skeleton, and uses this position to move a [CharacterBody3D] +## physics-bone with a [CapsuleShape3D] collider. ## ## The physics-bone is manually driven with to the position and rotation of the ## skeletal-bone. The physics-bone is set as top-level to prevent the @@ -17,7 +17,7 @@ extends BoneAttachment ## collider which the physics engine cannot tolerate. ## ## To handle scaling, this script subscribes to the hand_scale_changed signal -## emitted by the [XRToolsHand] script and manually adjusts the [CapsuleShape] +## emitted by the [XRToolsHand] script and manually adjusts the [CapsuleShape3D] ## collider of the physics-bone to keep it sized appropriately. ## ## There are additional collision and group settings for this specific @@ -25,31 +25,31 @@ extends BoneAttachment ## Length of the physics-bone -export var length : float = 0.03 +@export var length : float = 0.03 ## Ratio of bone length to width -export var width_ratio : float = 0.3 +@export var width_ratio : float = 0.3 ## Additional collision layer for this one bone -export (int, LAYERS_3D_PHYSICS) var collision_layer : int = 0 +@export_flags_3d_physics var collision_layer : int = 0 ## Additional bone group for this one bone -export var bone_group : String = "" +@export var bone_group : String = "" # Physics-bone collider shape -var _bone_shape : CapsuleShape +var _bone_shape : CapsuleShape3D # Physics-bone body node -var _physics_bone : KinematicBody +var _physics_bone : CharacterBody3D # Node attached to the skeletal-bone, and the target of the physics-bone -var _skeletal_bone : Spatial +var _skeletal_bone : Node3D -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHandPhysicsBone" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHandPhysicsBone" # Called when the node enters the scene tree. This constructs the physics-bone @@ -58,37 +58,37 @@ func _ready(): # Connect the 'hand_scale_changed' signal var physics_hand := XRToolsHand.find_instance(self) as XRToolsPhysicsHand if physics_hand: - physics_hand.connect("hand_scale_changed", self, "_on_hand_scale_changed") + physics_hand.hand_scale_changed.connect(_on_hand_scale_changed) # Construct the physics-bone shape - _bone_shape = CapsuleShape.new() + _bone_shape = CapsuleShape3D.new() _bone_shape.margin = physics_hand.margin - _on_hand_scale_changed(ARVRServer.world_scale) + _on_hand_scale_changed(XRServer.world_scale) # Construct the physics-bone collision shape - var bone_collision := CollisionShape.new() + var bone_collision := CollisionShape3D.new() bone_collision.set_name("BoneCollision") bone_collision.shape = _bone_shape - bone_collision.transform.basis = Basis(Vector3.RIGHT, PI/2) + #bone_collision.transform.basis = Basis(Vector3.RIGHT, PI/2) # Construct the physics-bone body - _physics_bone = KinematicBody.new() + _physics_bone = CharacterBody3D.new() _physics_bone.set_name("BoneBody") - _physics_bone.set_as_toplevel(true) + _physics_bone.set_as_top_level(true) _physics_bone.collision_layer = physics_hand.collision_layer | collision_layer _physics_bone.collision_mask = 0 _physics_bone.add_child(bone_collision) # Set the optional bone group for all bones in the hand - if not physics_hand.bone_group.empty(): + if not physics_hand.bone_group.is_empty(): _physics_bone.add_to_group(physics_hand.bone_group) # Set the optional bone group for this one bone - if not bone_group.empty(): + if not bone_group.is_empty(): _physics_bone.add_to_group(bone_group) # Construct the bone middle spatial - _skeletal_bone = Spatial.new() + _skeletal_bone = Node3D.new() _skeletal_bone.transform.origin = Vector3.UP * length / 2 # Add the physics-bone body to this hand bone @@ -116,7 +116,8 @@ func _move_bone(delta: float) -> void: var bone_vel := (bone_xform.origin - _physics_bone.global_transform.origin) / delta # Move the physics-bone into position - _physics_bone.move_and_slide(bone_vel, Vector3.UP) + _physics_bone.velocity = bone_vel + _physics_bone.move_and_slide() # Rotate the physics-bone into the correct rotation _physics_bone.global_transform.basis = bone_xform.basis @@ -128,8 +129,8 @@ func _teleport_bone() -> void: var bone_xform := _skeletal_bone.global_transform # Set the bone position - _physics_bone.global_transform = Transform( - Basis(bone_xform.basis.get_rotation_quat()), + _physics_bone.global_transform = Transform3D( + Basis(bone_xform.basis.get_rotation_quaternion()), bone_xform.origin) diff --git a/addons/godot-xr-tools/hands/materials/african_hands.material b/addons/godot-xr-tools/hands/materials/african_hands.material index b0037a36..e132a8f9 100644 Binary files a/addons/godot-xr-tools/hands/materials/african_hands.material and b/addons/godot-xr-tools/hands/materials/african_hands.material differ diff --git a/addons/godot-xr-tools/hands/materials/african_hands_realistic.material b/addons/godot-xr-tools/hands/materials/african_hands_realistic.material index 52313d1d..4f54528d 100644 Binary files a/addons/godot-xr-tools/hands/materials/african_hands_realistic.material and b/addons/godot-xr-tools/hands/materials/african_hands_realistic.material differ diff --git a/addons/godot-xr-tools/hands/materials/caucasian_hand.material b/addons/godot-xr-tools/hands/materials/caucasian_hand.material index 8019e13b..a0cfb2e3 100644 Binary files a/addons/godot-xr-tools/hands/materials/caucasian_hand.material and b/addons/godot-xr-tools/hands/materials/caucasian_hand.material differ diff --git a/addons/godot-xr-tools/hands/materials/caucasian_hands_realistic.material b/addons/godot-xr-tools/hands/materials/caucasian_hands_realistic.material index 81eda924..2f7b83a3 100644 Binary files a/addons/godot-xr-tools/hands/materials/caucasian_hands_realistic.material and b/addons/godot-xr-tools/hands/materials/caucasian_hands_realistic.material differ diff --git a/addons/godot-xr-tools/hands/materials/cleaning_glove.material b/addons/godot-xr-tools/hands/materials/cleaning_glove.material index e863e354..798d37d6 100644 Binary files a/addons/godot-xr-tools/hands/materials/cleaning_glove.material and b/addons/godot-xr-tools/hands/materials/cleaning_glove.material differ diff --git a/addons/godot-xr-tools/hands/materials/ghost_hand.tres b/addons/godot-xr-tools/hands/materials/ghost_hand.tres index f335b640..7d7f6c1b 100644 --- a/addons/godot-xr-tools/hands/materials/ghost_hand.tres +++ b/addons/godot-xr-tools/hands/materials/ghost_hand.tres @@ -1,16 +1,18 @@ -[gd_resource type="SpatialMaterial" load_steps=3 format=2] +[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://p0q2df2dmy62"] -[ext_resource path="res://addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png" type="Texture" id=1] +[ext_resource type="Texture2D" uid="uid://dgkfppran5j1f" path="res://addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png" id="1_rbe3r"] +[ext_resource type="Texture2D" uid="uid://d2iocwfr47kqp" path="res://addons/godot-xr-tools/hands/textures/glove_fingerless_occlusionRoughnessMetallic.png" id="2_qqman"] -[sub_resource type="SpatialMaterial" id=1] -flags_transparent = true -params_depth_draw_mode = 1 -albedo_texture = ExtResource( 1 ) +[sub_resource type="ORMMaterial3D" id="ORMMaterial3D_wu6j1"] +transparency = 1 +depth_draw_mode = 1 +albedo_texture = ExtResource("1_rbe3r") +orm_texture = ExtResource("2_qqman") [resource] render_priority = -1 -next_pass = SubResource( 1 ) -flags_transparent = true -flags_unshaded = true -flags_no_depth_test = true -albedo_color = Color( 0, 1, 1, 0.25098 ) +next_pass = SubResource("ORMMaterial3D_wu6j1") +transparency = 1 +no_depth_test = true +shading_mode = 0 +albedo_color = Color(0, 1, 1, 0.25098) diff --git a/addons/godot-xr-tools/hands/materials/glove_african_dark_camo.material b/addons/godot-xr-tools/hands/materials/glove_african_dark_camo.material index e2f2aef7..9385f6c9 100644 Binary files a/addons/godot-xr-tools/hands/materials/glove_african_dark_camo.material and b/addons/godot-xr-tools/hands/materials/glove_african_dark_camo.material differ diff --git a/addons/godot-xr-tools/hands/materials/glove_african_green_camo.material b/addons/godot-xr-tools/hands/materials/glove_african_green_camo.material index 46c15549..c9a7bf85 100644 Binary files a/addons/godot-xr-tools/hands/materials/glove_african_green_camo.material and b/addons/godot-xr-tools/hands/materials/glove_african_green_camo.material differ diff --git a/addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material b/addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material index e8227bcc..41019dfd 100644 Binary files a/addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material and b/addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material differ diff --git a/addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material b/addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material index 9c98b47b..4b4146d8 100644 Binary files a/addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material and b/addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material differ diff --git a/addons/godot-xr-tools/hands/materials/labglove.material b/addons/godot-xr-tools/hands/materials/labglove.material index 46558c78..29dbbe8f 100644 Binary files a/addons/godot-xr-tools/hands/materials/labglove.material and b/addons/godot-xr-tools/hands/materials/labglove.material differ diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import index 6413199a..1314ffb2 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Glove_L.gltf-ac6c06fe48ca0d7ce0f9faffd177a897.scn" +uid="uid://bu07alt6vkbaq" +path="res://.godot/imported/Hand_Glove_L.gltf-ac6c06fe48ca0d7ce0f9faffd177a897.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" -dest_files=[ "res://.import/Hand_Glove_L.gltf-ac6c06fe48ca0d7ce0f9faffd177a897.scn" ] +dest_files=["res://.godot/imported/Hand_Glove_L.gltf-ac6c06fe48ca0d7ce0f9faffd177a897.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import index c4a0f778..8c122459 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Glove_R.gltf-0e99922c663867da8d37af9597ab1ce8.scn" +uid="uid://w7th3d2hl7b5" +path="res://.godot/imported/Hand_Glove_R.gltf-0e99922c663867da8d37af9597ab1ce8.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" -dest_files=[ "res://.import/Hand_Glove_R.gltf-0e99922c663867da8d37af9597ab1ce8.scn" ] +dest_files=["res://.godot/imported/Hand_Glove_R.gltf-0e99922c663867da8d37af9597ab1ce8.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import index 7b5d9f83..6fb44fef 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Glove_low_L.gltf-7b94b12c0dff159d494da6cafd52895d.scn" +uid="uid://bnx4hithcij6y" +path="res://.godot/imported/Hand_Glove_low_L.gltf-7b94b12c0dff159d494da6cafd52895d.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" -dest_files=[ "res://.import/Hand_Glove_low_L.gltf-7b94b12c0dff159d494da6cafd52895d.scn" ] +dest_files=["res://.godot/imported/Hand_Glove_low_L.gltf-7b94b12c0dff159d494da6cafd52895d.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import index d8b624b6..31c53556 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Glove_low_R.gltf-c32907596b2287c95aff0e704780ef3d.scn" +uid="uid://csgsp0wuw8ucy" +path="res://.godot/imported/Hand_Glove_low_R.gltf-c32907596b2287c95aff0e704780ef3d.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" -dest_files=[ "res://.import/Hand_Glove_low_R.gltf-c32907596b2287c95aff0e704780ef3d.scn" ] +dest_files=["res://.godot/imported/Hand_Glove_low_R.gltf-c32907596b2287c95aff0e704780ef3d.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import index 46bc2563..fb4f1ce3 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Nails_L.gltf-22452b307072e9d363b1f547e2b6a365.scn" +uid="uid://q1l3fknstir2" +path="res://.godot/imported/Hand_Nails_L.gltf-22452b307072e9d363b1f547e2b6a365.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" -dest_files=[ "res://.import/Hand_Nails_L.gltf-22452b307072e9d363b1f547e2b6a365.scn" ] +dest_files=["res://.godot/imported/Hand_Nails_L.gltf-22452b307072e9d363b1f547e2b6a365.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import index d6535061..d198397f 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Nails_R.gltf-35869d6a39400588d95465aa5e3b528d.scn" +uid="uid://c6s5nvekg0isa" +path="res://.godot/imported/Hand_Nails_R.gltf-35869d6a39400588d95465aa5e3b528d.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" -dest_files=[ "res://.import/Hand_Nails_R.gltf-35869d6a39400588d95465aa5e3b528d.scn" ] +dest_files=["res://.godot/imported/Hand_Nails_R.gltf-35869d6a39400588d95465aa5e3b528d.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import index 8965d9fc..40d4e92e 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Nails_low_L.gltf-60d8096917582bfe1d760ff1ad173fc8.scn" +uid="uid://c4nba0qpi0uls" +path="res://.godot/imported/Hand_Nails_low_L.gltf-60d8096917582bfe1d760ff1ad173fc8.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" -dest_files=[ "res://.import/Hand_Nails_low_L.gltf-60d8096917582bfe1d760ff1ad173fc8.scn" ] +dest_files=["res://.godot/imported/Hand_Nails_low_L.gltf-60d8096917582bfe1d760ff1ad173fc8.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import index 01e18a6b..53fea667 100644 --- a/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_Nails_low_R.gltf-7d9fc9507def4b4fd9c10cdae7aa6e11.scn" +uid="uid://dunu03tc5vdbh" +path="res://.godot/imported/Hand_Nails_low_R.gltf-7d9fc9507def4b4fd9c10cdae7aa6e11.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" -dest_files=[ "res://.import/Hand_Nails_low_R.gltf-7d9fc9507def4b4fd9c10cdae7aa6e11.scn" ] +dest_files=["res://.godot/imported/Hand_Nails_low_R.gltf-7d9fc9507def4b4fd9c10cdae7aa6e11.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import index d4e8e176..44b7650e 100644 --- a/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_low_L.gltf-a83bdf9115e4fb62c63deabade61cbbb.scn" +uid="uid://16colgxrw27d" +path="res://.godot/imported/Hand_low_L.gltf-a83bdf9115e4fb62c63deabade61cbbb.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" -dest_files=[ "res://.import/Hand_low_L.gltf-a83bdf9115e4fb62c63deabade61cbbb.scn" ] +dest_files=["res://.godot/imported/Hand_low_L.gltf-a83bdf9115e4fb62c63deabade61cbbb.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import index eb3a0bdb..dcf37b51 100644 --- a/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import +++ b/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/Hand_low_R.gltf-8b164aff014e5c5bfa2eccc8e40e7e97.scn" +uid="uid://cjrac51wst3tu" +path="res://.godot/imported/Hand_low_R.gltf-8b164aff014e5c5bfa2eccc8e40e7e97.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" -dest_files=[ "res://.import/Hand_low_R.gltf-8b164aff014e5c5bfa2eccc8e40e7e97.scn" ] +dest_files=["res://.godot/imported/Hand_low_R.gltf-8b164aff014e5c5bfa2eccc8e40e7e97.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/hand_l.gltf.import b/addons/godot-xr-tools/hands/model/hand_l.gltf.import index 2ed7bdb2..326d0842 100644 --- a/addons/godot-xr-tools/hands/model/hand_l.gltf.import +++ b/addons/godot-xr-tools/hands/model/hand_l.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/hand_l.gltf-6ba1595ac4c28aef3719b7f0b4f2f4f2.scn" +uid="uid://dhaqth6q5yw4n" +path="res://.godot/imported/hand_l.gltf-6ba1595ac4c28aef3719b7f0b4f2f4f2.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/hand_l.gltf" -dest_files=[ "res://.import/hand_l.gltf-6ba1595ac4c28aef3719b7f0b4f2f4f2.scn" ] +dest_files=["res://.godot/imported/hand_l.gltf-6ba1595ac4c28aef3719b7f0b4f2f4f2.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/model/hand_r.gltf.import b/addons/godot-xr-tools/hands/model/hand_r.gltf.import index e8d0f779..1f91a8d9 100644 --- a/addons/godot-xr-tools/hands/model/hand_r.gltf.import +++ b/addons/godot-xr-tools/hands/model/hand_r.gltf.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/hand_r.gltf-dd429687cadefbc3e7a21ae26addfb30.scn" +uid="uid://ds1t8vc0kxoeo" +path="res://.godot/imported/hand_r.gltf-dd429687cadefbc3e7a21ae26addfb30.scn" [deps] source_file="res://addons/godot-xr-tools/hands/model/hand_r.gltf" -dest_files=[ "res://.import/hand_r.gltf-dd429687cadefbc3e7a21ae26addfb30.scn" ] +dest_files=["res://.godot/imported/hand_r.gltf-dd429687cadefbc3e7a21ae26addfb30.scn"] [params] -nodes/root_type="Spatial" +nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=false -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 -meshes/light_baking=0 -meshes/lightmap_texel_size=0.1 +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true -animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/addons/godot-xr-tools/hands/physics_hand.gd b/addons/godot-xr-tools/hands/physics_hand.gd index 9144a5ce..5934817a 100644 --- a/addons/godot-xr-tools/hands/physics_hand.gd +++ b/addons/godot-xr-tools/hands/physics_hand.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsPhysicsHand extends XRToolsHand @@ -20,21 +20,21 @@ const DEFAULT_LAYER := 0b0000_0000_0000_0010_0000_0000_0000_0000 ## Additionally [XRToolsHandPhysicsBone] nodes can specify additional ## bone-specific collision layers - for example to give the fore-finger bone ## additional collision capabilities. -export (int, LAYERS_3D_PHYSICS) var collision_layer : int = DEFAULT_LAYER +@export_flags_3d_physics var collision_layer : int = DEFAULT_LAYER ## Bone collision margin applied to all [XRToolsHandPhysicsBone] children. ## ## This is used for fine-tuning the collision margins for all ## [XRToolsHandPhysicsBone] children in the hand. -export var margin : float = 0.004 +@export var margin : float = 0.004 ## Group applied to all [XRToolsHandPhysicsBone] children. ## ## This is used to set groups for every bone in the hand. Additionally ## [XRToolsHandPhysicsBone] nodes can specify additional bone-specific groups. -export var bone_group : String = "" +@export var bone_group : String = "" -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsPhysicsHand" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsPhysicsHand" or super(name) diff --git a/addons/godot-xr-tools/hands/poses/hand_pose_settings.gd b/addons/godot-xr-tools/hands/poses/hand_pose_settings.gd index d8ece425..355a2a94 100644 --- a/addons/godot-xr-tools/hands/poses/hand_pose_settings.gd +++ b/addons/godot-xr-tools/hands/poses/hand_pose_settings.gd @@ -1,4 +1,5 @@ -class_name XRToolsHandPoseSettings, "res://addons/godot-xr-tools/editor/icons/hand.svg" +@icon("res://addons/godot-xr-tools/editor/icons/hand.svg") +class_name XRToolsHandPoseSettings extends Resource @@ -9,7 +10,7 @@ extends Resource ## Hand-open pose -export var open_pose : Animation +@export var open_pose : Animation ## Hand-closed pose -export var closed_pose : Animation +@export var closed_pose : Animation diff --git a/addons/godot-xr-tools/hands/poses/pose_default_left.tres b/addons/godot-xr-tools/hands/poses/pose_default_left.tres index e47cb2b3..26ba106f 100644 --- a/addons/godot-xr-tools/hands/poses/pose_default_left.tres +++ b/addons/godot-xr-tools/hands/poses/pose_default_left.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://dertgu7k8alls"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip.anim" type="Animation" id=3] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1"] +[ext_resource type="Animation" uid="uid://plad1r85f7ws" path="res://addons/godot-xr-tools/hands/animations/left/Grip.res" id="1_oobiv"] +[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="2_tar64"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 3 ) +script = ExtResource("1") +open_pose = ExtResource("2_tar64") +closed_pose = ExtResource("1_oobiv") diff --git a/addons/godot-xr-tools/hands/poses/pose_default_right.tres b/addons/godot-xr-tools/hands/poses/pose_default_right.tres index 9b18b4f6..dc2430bb 100644 --- a/addons/godot-xr-tools/hands/poses/pose_default_right.tres +++ b/addons/godot-xr-tools/hands/poses/pose_default_right.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://dmpjtk0l8vh6v"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip.anim" type="Animation" id=3] +[ext_resource type="Animation" uid="uid://ccds2u22gbxn7" path="res://addons/godot-xr-tools/hands/animations/right/Grip.res" id="1_o7bqr"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_ytvcl"] +[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="2_u3fe0"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 3 ) +script = ExtResource("1_ytvcl") +open_pose = ExtResource("2_u3fe0") +closed_pose = ExtResource("1_o7bqr") diff --git a/addons/godot-xr-tools/hands/poses/pose_point_left.tres b/addons/godot-xr-tools/hands/poses/pose_point_left.tres index e2854931..267151ac 100644 --- a/addons/godot-xr-tools/hands/poses/pose_point_left.tres +++ b/addons/godot-xr-tools/hands/poses/pose_point_left.tres @@ -1,9 +1,9 @@ -[gd_resource type="Resource" load_steps=3 format=2] +[gd_resource type="Resource" load_steps=3 format=3 uid="uid://ciw0f7mg4ai0k"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Sign 1.anim" type="Animation" id=2] +[ext_resource type="Animation" uid="uid://cevirj0eagdrq" path="res://addons/godot-xr-tools/hands/animations/left/Sign 1.res" id="1_idx1j"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_oxfi3"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 2 ) +script = ExtResource("1_oxfi3") +open_pose = ExtResource("1_idx1j") +closed_pose = ExtResource("1_idx1j") diff --git a/addons/godot-xr-tools/hands/poses/pose_point_right.tres b/addons/godot-xr-tools/hands/poses/pose_point_right.tres index abb64323..b3bc9f23 100644 --- a/addons/godot-xr-tools/hands/poses/pose_point_right.tres +++ b/addons/godot-xr-tools/hands/poses/pose_point_right.tres @@ -1,9 +1,9 @@ -[gd_resource type="Resource" load_steps=3 format=2] +[gd_resource type="Resource" load_steps=3 format=3 uid="uid://bhvrpfo4ecbub"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Sign 1.anim" type="Animation" id=2] +[ext_resource type="Animation" uid="uid://bcwx6a6mhsoj2" path="res://addons/godot-xr-tools/hands/animations/right/Sign 1.res" id="1_jc8b4"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_pkv6s"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 2 ) +script = ExtResource("1_pkv6s") +open_pose = ExtResource("1_jc8b4") +closed_pose = ExtResource("1_jc8b4") diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn index 10a78a37..5af1d46d 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://bpdj5njb8nhot"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_L.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://dhaqth6q5yw4n" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_x4lr3"] +[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ej4yx"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gacaa"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_seoit"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_rtx6p"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_y01rx"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_o4h0a"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ej4yx") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_gacaa") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_seoit") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_rtx6p") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_y01rx") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="LeftHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) +[node name="LeftHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_x4lr3") -[node name="Hand_L" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) +[node name="Hand_L" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) -[node name="mesh_Hand_L" parent="Hand_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) +[node name="Skeleton3D" parent="Hand_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_L" instance=ExtResource( 1 )] +[node name="mesh_Hand_L" parent="Hand_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="AnimationPlayer" parent="Hand_L" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_o4h0a") anim_player = NodePath("../Hand_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn index 7a72363e..17605995 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn @@ -1,211 +1,223 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=14 format=3 uid="uid://nqiyqnx42m61"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/labglove.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip.anim" type="Animation" id=7] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=8] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=9] +[ext_resource type="PackedScene" uid="uid://dhaqth6q5yw4n" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_0aa1r"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="9"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u4nb4"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7blad"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_dcp65"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jjpal"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_djjo6"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 9 ) -default_pose = ExtResource( 8 ) - -[node name="Hand_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_L/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_L" parent="Hand_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="1"] -transform = Transform( 1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_nwkwa"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_u4nb4") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_7blad") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_dcp65") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_jjpal") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_djjo6") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("9") +default_pose = ExtResource("3_0aa1r") + +[node name="Hand_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Hand_L" parent="Hand_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_L@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_L" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, 0.0514604, -0.017651, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_L@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892202, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_L@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_L@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_L" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, 0.0336562, -0.0231681, 0.0231985, -0.000511129, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_L@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, 0.0419384, -0.0509326, 0.041317, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_L@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983147, 0.648829, -0.743577, 0.161601, -0.00569706, 0.0301916, -0.117561 ) +[node name="Hand_L@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869 ) +[node name="Hand_L@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_L" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.997479, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_L@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997157, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_L@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328061, -0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_L@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_L@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) bone_name = "Middle_Distal_L" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_L@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_L@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.988591, 0.629924, -0.762173, -0.149291, 0.000778396, -0.0314857, -0.111722 ) +[node name="Hand_L@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, 0.924068, 0.0253391, 0.114105, -0.0742599, 0.99069, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_L@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_L" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_L@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, 0.239304, 0.0579745, 0.0185536, -0.305761, 0.951927, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_L@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.7072, -0.683325, -0.181481, 0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_L@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_L/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, 0.939845, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_L@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_L" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_L" instance=ExtResource( 2 )] -anims/closed_hand = ExtResource( 7 ) -anims/open_hand = ExtResource( 6 ) +[node name="AnimationPlayer" parent="Hand_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_nwkwa") anim_player = NodePath("../Hand_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn index 39b24ab4..ef1c2d37 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://njx823gyk04n"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=6] +[ext_resource type="PackedScene" uid="uid://q1l3fknstir2" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_k56uy"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="5"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_x12eo"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kw2gg"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_o8j0s"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cxcnq"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_yn70n"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_v8owg"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_x12eo") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_kw2gg") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_o8j0s") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_cxcnq") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_yn70n") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="LeftHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 5 ) -default_pose = ExtResource( 4 ) +[node name="LeftHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("5") +default_pose = ExtResource("3_k56uy") -[node name="Hand_Nails_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) +[node name="Hand_Nails_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) -[node name="mesh_Hand_Nails_L" parent="Hand_Nails_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 6 ) +[node name="Skeleton3D" parent="Hand_Nails_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_Nails_L" instance=ExtResource( 2 )] +[node name="mesh_Hand_Nails_L" parent="Hand_Nails_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("6") + +[node name="AnimationPlayer" parent="Hand_Nails_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_v8owg") anim_player = NodePath("../Hand_Nails_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn index 628435fc..e4e77707 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn @@ -1,211 +1,223 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=14 format=3 uid="uid://cy03d57iyrci"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip.anim" type="Animation" id=7] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=8] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=9] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://q1l3fknstir2" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_fye1l"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="9"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qo0kg"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_j4paf"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_07l6n"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vwqya"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_5tj4h"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 9 ) -default_pose = ExtResource( 8 ) - -[node name="Hand_Nails_L" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Nails_L/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_Nails_L" parent="Hand_Nails_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="1"] -transform = Transform( 1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_w000o"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_qo0kg") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_j4paf") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_07l6n") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_vwqya") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_5tj4h") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("9") +default_pose = ExtResource("3_fye1l") + +[node name="Hand_Nails_L" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Nails_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Hand_Nails_L" parent="Hand_Nails_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_Nails_L@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_L" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, 0.0514604, -0.017651, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892202, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_L" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, 0.0336562, -0.0231681, 0.0231985, -0.000511129, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, 0.0419384, -0.0509326, 0.041317, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983147, 0.648829, -0.743577, 0.161601, -0.00569706, 0.0301916, -0.117561 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_L" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.997479, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997157, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328061, -0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) bone_name = "Middle_Distal_L" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.988591, 0.629924, -0.762173, -0.149291, 0.000778396, -0.0314857, -0.111722 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, 0.924068, 0.0253391, 0.114105, -0.0742599, 0.99069, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Nails_L@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_L" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Nails_L@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, 0.239304, 0.0579745, 0.0185536, -0.305761, 0.951927, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Nails_L@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.7072, -0.683325, -0.181481, 0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Nails_L@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Nails_L/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, 0.939845, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Nails_L@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Nails_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_L" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Nails_L" instance=ExtResource( 1 )] -anims/closed_hand = ExtResource( 7 ) -anims/open_hand = ExtResource( 6 ) +[node name="AnimationPlayer" parent="Hand_Nails_L" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_w000o") anim_player = NodePath("../Hand_Nails_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn index 1ea095cc..a27b6a1a 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn @@ -1,204 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://ddsj74hpt1kgb"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=7] +[ext_resource type="PackedScene" uid="uid://bu07alt6vkbaq" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_rnhp7"] +[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="5"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_t6qch"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4dkr2"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_y0e2n"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_idffn"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_g64cp"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftPhysicsHand" type="Spatial"] -script = ExtResource( 6 ) -hand_blend_tree = ExtResource( 3 ) -default_pose = ExtResource( 7 ) - -[node name="Hand_Glove_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Glove_L/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Glove_L" parent="Hand_Glove_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="1"] -transform = Transform( 1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_6y0fw"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_t6qch") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_4dkr2") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_y0e2n") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_idffn") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_g64cp") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftPhysicsHand" type="Node3D"] +script = ExtResource("6") +hand_blend_tree = ExtResource("3") +default_pose = ExtResource("3_rnhp7") + +[node name="Hand_Glove_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Glove_L" parent="Hand_Glove_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="Hand_Glove_L@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_L" -script = ExtResource( 5 ) +bone_idx = 0 +script = ExtResource("5") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, 0.0514604, -0.017651, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 1 +script = ExtResource("5") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892202, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 2 +script = ExtResource("5") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_L" -script = ExtResource( 5 ) +bone_idx = 3 +script = ExtResource("5") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, 0.0336562, -0.0231681, 0.0231985, -0.000511129, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 5 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, 0.0419384, -0.0509326, 0.041317, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 6 +script = ExtResource("5") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983147, 0.648829, -0.743577, 0.161601, -0.00569706, 0.0301916, -0.117561 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 7 +script = ExtResource("5") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_L" -script = ExtResource( 5 ) +bone_idx = 8 +script = ExtResource("5") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.997479, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 10 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997157, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 11 +script = ExtResource("5") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328061, -0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 12 +script = ExtResource("5") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) bone_name = "Middle_Distal_L" -script = ExtResource( 5 ) +bone_idx = 13 +script = ExtResource("5") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 15 +script = ExtResource("5") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 16 +script = ExtResource("5") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.988591, 0.629924, -0.762173, -0.149291, 0.000778396, -0.0314857, -0.111722 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 17 +script = ExtResource("5") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, 0.924068, 0.0253391, 0.114105, -0.0742599, 0.99069, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Glove_L@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_L" -script = ExtResource( 5 ) +bone_idx = 18 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Glove_L@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 20 +script = ExtResource("5") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, 0.239304, 0.0579745, 0.0185536, -0.305761, 0.951927, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Glove_L@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 21 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.7072, -0.683325, -0.181481, 0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Glove_L@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 22 +script = ExtResource("5") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Glove_L/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, 0.939845, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Glove_L@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Glove_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_L" -script = ExtResource( 5 ) +bone_idx = 23 +script = ExtResource("5") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Glove_L" instance=ExtResource( 2 )] +[node name="AnimationPlayer" parent="Hand_Glove_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_6y0fw") anim_player = NodePath("../Hand_Glove_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn index 30ebf6b1..60a45d6e 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn @@ -1,58 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://hpr0v012ghsb"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=6] +[ext_resource type="PackedScene" uid="uid://bu07alt6vkbaq" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_s33di"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="4"] +[ext_resource type="Material" uid="uid://b718ylp68nhtc" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" id="5"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qtjek"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_acswy"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_3125k"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kjpaa"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kisbg"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftHand" type="Spatial"] -script = ExtResource( 3 ) -hand_blend_tree = ExtResource( 4 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Glove_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="mesh_Glove_L" parent="Hand_Glove_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="AnimationPlayer" parent="Hand_Glove_L" instance=ExtResource( 2 )] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_yoy4c"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_qtjek") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_acswy") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_3125k") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_kjpaa") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_kisbg") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("4") +default_pose = ExtResource("3_s33di") + +[node name="Hand_Glove_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Glove_L" parent="Hand_Glove_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="AnimationPlayer" parent="Hand_Glove_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_yoy4c") anim_player = NodePath("../Hand_Glove_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn index 039c6f61..84e076bf 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://d1tl07geqm5xq"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_R.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] +[ext_resource type="PackedScene" uid="uid://ds1t8vc0kxoeo" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_xmpie"] +[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_coci4"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_me2sf"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_oarao"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gm5ny"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_3o6s4"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_jyl6y"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_coci4") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_me2sf") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_oarao") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_gm5ny") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_3o6s4") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="RightHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) +[node name="RightHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_xmpie") -[node name="Hand_R" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) +[node name="Hand_R" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) -[node name="mesh_Hand_R" parent="Hand_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) +[node name="Skeleton3D" parent="Hand_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_R" instance=ExtResource( 2 )] +[node name="mesh_Hand_R" parent="Hand_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="AnimationPlayer" parent="Hand_R" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_jyl6y") anim_player = NodePath("../Hand_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn index 5ff6ef90..4a0c5303 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn @@ -1,207 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://cigx2gnf4tg4d"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_R.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/labglove.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=7] +[ext_resource type="PackedScene" uid="uid://ds1t8vc0kxoeo" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_23oai"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="7"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vuxsk"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5q5w8"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_bh13w"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ntfdl"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_bsbib"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 7 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_R" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_R/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_R" parent="Hand_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="1"] -transform = Transform( 1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_tchuk"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_vuxsk") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_5q5w8") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_bh13w") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_ntfdl") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_bsbib") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("7") +default_pose = ExtResource("3_23oai") + +[node name="Hand_R" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Hand_R" parent="Hand_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_R@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_R" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, -0.0514604, 0.017651, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_R@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892202, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_R@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_R@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_R" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, -0.0336562, 0.0231681, -0.0231985, -0.000511129, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_R@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, -0.0419384, 0.0509327, -0.041317, 0.204661, 0.97796, -0.0514382, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_R@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, -0.644453, 0.0854741, 0.040588, 0.178251, 0.983147, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561 ) +[node name="Hand_R@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869 ) +[node name="Hand_R@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_R" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.997479, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_R@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997157, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_R@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, -0.643161, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765465, -0.00328062, 0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_R@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_R@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) bone_name = "Middle_Distal_R" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_R@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_R@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, -0.634603, -0.0200164, -0.0794845, -0.127948, 0.988591, -0.629924, -0.762173, -0.149291, -0.000778398, -0.0314857, -0.111722 ) +[node name="Hand_R@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.99069, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_R@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_R" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_R@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, -0.239304, -0.0579745, -0.0185536, -0.305761, 0.951927, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_R@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.7072, -0.683325, -0.181481, -0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_R@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_R/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, -0.939845, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_R@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_R" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_R" instance=ExtResource( 2 )] +[node name="AnimationPlayer" parent="Hand_R" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_tchuk") anim_player = NodePath("../Hand_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn index c9a30b03..3062ad97 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://raeeicvvindd"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] +[ext_resource type="PackedScene" uid="uid://c6s5nvekg0isa" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_lydk3"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vm3m2"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cim8x"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_j022x"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0hd6d"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_okkj6"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_l2q6m"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_vm3m2") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_cim8x") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_j022x") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_0hd6d") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_okkj6") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="RightHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) +[node name="RightHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_lydk3") -[node name="Hand_Nails_R" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) +[node name="Hand_Nails_R" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) -[node name="mesh_Hand_Nails_R" parent="Hand_Nails_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) +[node name="Skeleton3D" parent="Hand_Nails_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_Nails_R" instance=ExtResource( 2 )] +[node name="mesh_Hand_Nails_R" parent="Hand_Nails_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="AnimationPlayer" parent="Hand_Nails_R" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_l2q6m") anim_player = NodePath("../Hand_Nails_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn index 66cb58fd..50ddcf59 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn @@ -1,207 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://kcqomcjq52np"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=7] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://c6s5nvekg0isa" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_gqplw"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="7"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lgih3"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_wop42"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ufkef"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o5b51"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_pdljy"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 7 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Nails_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Nails_R/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_Nails_R" parent="Hand_Nails_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="1"] -transform = Transform( 1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_8gtsg"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_lgih3") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_wop42") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ufkef") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_o5b51") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_pdljy") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("7") +default_pose = ExtResource("3_gqplw") + +[node name="Hand_Nails_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Nails_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Hand_Nails_R" parent="Hand_Nails_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_Nails_R@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_R" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, -0.0514604, 0.017651, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892202, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_R" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, -0.0336562, 0.0231681, -0.0231985, -0.000511129, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, -0.0419384, 0.0509327, -0.041317, 0.204661, 0.97796, -0.0514382, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, -0.644453, 0.0854741, 0.040588, 0.178251, 0.983147, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_R" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.997479, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997157, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, -0.643161, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765465, -0.00328062, 0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) bone_name = "Middle_Distal_R" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, -0.634603, -0.0200164, -0.0794845, -0.127948, 0.988591, -0.629924, -0.762173, -0.149291, -0.000778398, -0.0314857, -0.111722 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.99069, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Nails_R@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_R" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Nails_R@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, -0.239304, -0.0579745, -0.0185536, -0.305761, 0.951927, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Nails_R@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.7072, -0.683325, -0.181481, -0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Nails_R@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Nails_R/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, -0.939845, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Nails_R@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Nails_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_R" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Nails_R" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_Nails_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_8gtsg") anim_player = NodePath("../Hand_Nails_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn index 28bfa876..83b6ff74 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn @@ -1,204 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://b6xesntm4qeo5"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=7] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://w7th3d2hl7b5" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_h0fv3"] +[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="5"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nsl06"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ocujq"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_o4l8c"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p0302"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_umc4l"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightPhysicsHand" type="Spatial"] -script = ExtResource( 6 ) -hand_blend_tree = ExtResource( 3 ) -default_pose = ExtResource( 7 ) - -[node name="Hand_Glove_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Glove_R/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Glove_R" parent="Hand_Glove_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="1"] -transform = Transform( 1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_7jd3e"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_nsl06") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ocujq") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_o4l8c") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_p0302") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_umc4l") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightPhysicsHand" type="Node3D"] +script = ExtResource("6") +hand_blend_tree = ExtResource("3") +default_pose = ExtResource("3_h0fv3") + +[node name="Hand_Glove_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Glove_R" parent="Hand_Glove_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="Hand_Glove_R@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_R" -script = ExtResource( 5 ) +bone_idx = 0 +script = ExtResource("5") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, -0.0514604, 0.017651, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 1 +script = ExtResource("5") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892202, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 2 +script = ExtResource("5") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_R" -script = ExtResource( 5 ) +bone_idx = 3 +script = ExtResource("5") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, -0.0336562, 0.0231681, -0.0231985, -0.000511129, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 5 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, -0.0419384, 0.0509327, -0.041317, 0.204661, 0.97796, -0.0514382, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 6 +script = ExtResource("5") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, -0.644453, 0.0854741, 0.040588, 0.178251, 0.983147, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 7 +script = ExtResource("5") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_R" -script = ExtResource( 5 ) +bone_idx = 8 +script = ExtResource("5") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.997479, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 10 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997157, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 11 +script = ExtResource("5") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, -0.643161, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765465, -0.00328062, 0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 12 +script = ExtResource("5") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) bone_name = "Middle_Distal_R" -script = ExtResource( 5 ) +bone_idx = 13 +script = ExtResource("5") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 15 +script = ExtResource("5") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 16 +script = ExtResource("5") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, -0.634603, -0.0200164, -0.0794845, -0.127948, 0.988591, -0.629924, -0.762173, -0.149291, -0.000778398, -0.0314857, -0.111722 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 17 +script = ExtResource("5") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.99069, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Glove_R@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_R" -script = ExtResource( 5 ) +bone_idx = 18 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Glove_R@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 20 +script = ExtResource("5") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, -0.239304, -0.0579745, -0.0185536, -0.305761, 0.951927, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Glove_R@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 21 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.7072, -0.683325, -0.181481, -0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Glove_R@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 22 +script = ExtResource("5") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Glove_R/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, -0.939845, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Glove_R@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Glove_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_R" -script = ExtResource( 5 ) +bone_idx = 23 +script = ExtResource("5") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Glove_R" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_Glove_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_7jd3e") anim_player = NodePath("../Hand_Glove_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn index 6bfbdc31..3ac11a0e 100644 --- a/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn +++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn @@ -1,58 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://dup2vp8v5rpi5"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=6] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://w7th3d2hl7b5" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_3ih8a"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="4"] +[ext_resource type="Material" uid="uid://b718ylp68nhtc" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" id="5"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_r46i5"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_v5idg"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cqi1y"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4vdom"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_hef27"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightHand" type="Spatial"] -script = ExtResource( 3 ) -hand_blend_tree = ExtResource( 4 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Glove_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="mesh_Glove_R" parent="Hand_Glove_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="AnimationPlayer" parent="Hand_Glove_R" instance=ExtResource( 1 )] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_g6ftu"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_r46i5") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_v5idg") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_cqi1y") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4vdom") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_hef27") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("4") +default_pose = ExtResource("3_3ih8a") + +[node name="Hand_Glove_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Glove_R" parent="Hand_Glove_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="AnimationPlayer" parent="Hand_Glove_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_g6ftu") anim_player = NodePath("../Hand_Glove_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn index a433f83a..1899c636 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn @@ -1,30 +1,79 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=13 format=3 uid="uid://bq86r4yll8po"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" type="Material" id=6] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://16colgxrw27d" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_wyae6"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="5"] +[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="6"] -[node name="LeftHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 5 ) -default_pose = ExtResource( 4 ) +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qtto3"] +animation = &"Grip" -[node name="Hand_low_L" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4i0yd"] +animation = &"Grip" -[node name="mesh_Hand_low_L" parent="Hand_low_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 6 ) +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_fahbc"] +filter_enabled = true +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[node name="AnimationPlayer" parent="Hand_low_L" instance=ExtResource( 1 )] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_470u2"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_fhgyt"] +filter_enabled = true +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_d6sxb"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_qtto3") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_4i0yd") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_fahbc") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_470u2") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_fhgyt") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("5") +default_pose = ExtResource("3_wyae6") + +[node name="Hand_low_L" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Hand_low_L" parent="Hand_low_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("6") + +[node name="AnimationPlayer" parent="Hand_low_L" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = ExtResource( 5 ) +tree_root = SubResource("AnimationNodeBlendTree_d6sxb") anim_player = NodePath("../Hand_low_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn index d860126f..7455a9dd 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://b4kad2kuba1yn"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] +[ext_resource type="PackedScene" uid="uid://c4nba0qpi0uls" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_ry7qg"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ar6i3"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_r1b52"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_d643f"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c3h37"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ihxeh"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, -60.58 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_4tr00"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ar6i3") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_r1b52") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_d643f") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_c3h37") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_ihxeh") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="LeftHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) +[node name="LeftHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_ry7qg") -[node name="Hand_Nails_low_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) +[node name="Hand_Nails_low_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) -[node name="mesh_Hand_Nails_low_L" parent="Hand_Nails_low_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) +[node name="Skeleton3D" parent="Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_Nails_low_L" instance=ExtResource( 2 )] +[node name="mesh_Hand_Nails_low_L" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="AnimationPlayer" parent="Hand_Nails_low_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_4tr00") anim_player = NodePath("../Hand_Nails_low_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn index e30b827a..651261ff 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn @@ -1,207 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://b8hc2ex21u8xj"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/labglove.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=7] +[ext_resource type="PackedScene" uid="uid://16colgxrw27d" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_4017m"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="7"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a581x"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_si6rq"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_jv1ag"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_3qeiu"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4eh8j"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, -60.58 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 7 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_low_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_low_L/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_low_L" parent="Hand_low_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="1"] -transform = Transform( 1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_vftdd"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_a581x") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_si6rq") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_jv1ag") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_3qeiu") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_4eh8j") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("7") +default_pose = ExtResource("3_4017m") + +[node name="Hand_low_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Hand_low_L" parent="Hand_low_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_low_L@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_L" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, 0.0514604, -0.017651, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_low_L@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892202, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_low_L@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_low_L@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_L" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, 0.0336562, -0.0231681, 0.0231985, -0.000511129, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_low_L@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, 0.0419384, -0.0509326, 0.041317, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_low_L@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983147, 0.648829, -0.743577, 0.161601, -0.00569706, 0.0301916, -0.117561 ) +[node name="Hand_low_L@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869 ) +[node name="Hand_low_L@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_L" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.997479, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_low_L@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997157, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_low_L@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328061, -0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_low_L@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_low_L@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) bone_name = "Middle_Distal_L" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_low_L@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_low_L@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.988591, 0.629924, -0.762173, -0.149291, 0.000778396, -0.0314857, -0.111722 ) +[node name="Hand_low_L@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, 0.924068, 0.0253391, 0.114105, -0.0742599, 0.99069, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_low_L@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_L" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_low_L@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, 0.239304, 0.0579745, 0.0185536, -0.305761, 0.951927, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_low_L@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.7072, -0.683325, -0.181481, 0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_low_L@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_low_L/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, 0.939845, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_low_L@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_low_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_L" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_low_L" instance=ExtResource( 2 )] +[node name="AnimationPlayer" parent="Hand_low_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_vftdd") anim_player = NodePath("../Hand_low_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn index 9fe0aac8..c2354807 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn @@ -1,207 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://bdwmserhqai5h"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=7] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://c4nba0qpi0uls" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_t17lq"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="7"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_uqn4v"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_783qd"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_uetxr"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_52cah"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4js8y"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, -60.58 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 7 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Nails_low_L" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Nails_low_L/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_Nails_low_L" parent="Hand_Nails_low_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="1"] -transform = Transform( 1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_8iblu"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_uqn4v") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_783qd") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_uetxr") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_52cah") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_4js8y") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("7") +default_pose = ExtResource("3_t17lq") + +[node name="Hand_Nails_low_L" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Hand_Nails_low_L" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_L" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, 0.0514604, -0.017651, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892202, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_L" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, 0.0336562, -0.0231681, 0.0231985, -0.000511129, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, 0.0419384, -0.0509326, 0.041317, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983147, 0.648829, -0.743577, 0.161601, -0.00569706, 0.0301916, -0.117561 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_L" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.997479, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997157, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328061, -0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) bone_name = "Middle_Distal_L" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.988591, 0.629924, -0.762173, -0.149291, 0.000778396, -0.0314857, -0.111722 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, 0.924068, 0.0253391, 0.114105, -0.0742599, 0.99069, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_L" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_L" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, 0.239304, 0.0579745, 0.0185536, -0.305761, 0.951927, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_L" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.7072, -0.683325, -0.181481, 0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_L" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Nails_low_L/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, 0.939845, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Nails_low_L@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Nails_low_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_L" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Nails_low_L" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_Nails_low_L" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_8iblu") anim_player = NodePath("../Hand_Nails_low_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn index fe5faaa2..7e8f30d7 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn @@ -1,207 +1,226 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://bj1aas6kty3qx"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=7] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://bnx4hithcij6y" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="2"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_oehre"] +[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="5"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8ybkh"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_onyre"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_y2hch"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_33lkx"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_yde33"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, -60.58 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftPhysicsHand" type="Spatial"] -script = ExtResource( 6 ) -hand_blend_tree = ExtResource( 3 ) -default_pose = ExtResource( 7 ) - -[node name="Hand_Glove_low_L" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Glove_low_L/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Glove_low_L" parent="Hand_Glove_low_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="1"] -transform = Transform( 1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_gfg8a"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_8ybkh") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_onyre") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_y2hch") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_33lkx") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_yde33") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftPhysicsHand" type="Node3D"] +script = ExtResource("6") +hand_blend_tree = ExtResource("3") +default_pose = ExtResource("3_oehre") + +[node name="Hand_Glove_low_L" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Glove_low_L" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_L" -script = ExtResource( 5 ) +bone_idx = 0 +script = ExtResource("5") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, 0.0514604, -0.017651, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 1 +script = ExtResource("5") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892202, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 2 +script = ExtResource("5") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_L" -script = ExtResource( 5 ) +bone_idx = 3 +script = ExtResource("5") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, 0.0336562, -0.0231681, 0.0231985, -0.000511129, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 5 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, 0.0419384, -0.0509326, 0.041317, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 6 +script = ExtResource("5") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983147, 0.648829, -0.743577, 0.161601, -0.00569706, 0.0301916, -0.117561 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 7 +script = ExtResource("5") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_L" -script = ExtResource( 5 ) +bone_idx = 8 +script = ExtResource("5") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.997479, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 10 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997157, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 11 +script = ExtResource("5") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328061, -0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 12 +script = ExtResource("5") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) bone_name = "Middle_Distal_L" -script = ExtResource( 5 ) +bone_idx = 13 +script = ExtResource("5") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 15 +script = ExtResource("5") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 16 +script = ExtResource("5") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.988591, 0.629924, -0.762173, -0.149291, 0.000778396, -0.0314857, -0.111722 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 17 +script = ExtResource("5") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, 0.924068, 0.0253391, 0.114105, -0.0742599, 0.99069, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_L" -script = ExtResource( 5 ) +bone_idx = 18 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_L" -script = ExtResource( 5 ) +bone_idx = 20 +script = ExtResource("5") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, 0.239304, 0.0579745, 0.0185536, -0.305761, 0.951927, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_L" -script = ExtResource( 5 ) +bone_idx = 21 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.7072, -0.683325, -0.181481, 0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_L" -script = ExtResource( 5 ) +bone_idx = 22 +script = ExtResource("5") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Glove_low_L/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, 0.939845, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Glove_low_L@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_L" -script = ExtResource( 5 ) +bone_idx = 23 +script = ExtResource("5") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Glove_low_L" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_Glove_low_L" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_gfg8a") anim_player = NodePath("../Hand_Glove_low_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 -parameters/Trigger/blend_amount = 0 +parameters/Trigger/blend_amount = 0.0 [editable path="Hand_Glove_low_L"] diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn index 980b130f..26176eba 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn @@ -1,61 +1,82 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://bx1xdisoqo1f6"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" type="Resource" id=6] +[ext_resource type="PackedScene" uid="uid://bnx4hithcij6y" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_iq5xt"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="4"] +[ext_resource type="Material" uid="uid://b718ylp68nhtc" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" id="5"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a8arv"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_n3ud5"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ncqlk"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_csu2l"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_akg52"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, -60.58 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="LeftHand" type="Spatial"] -script = ExtResource( 3 ) -hand_blend_tree = ExtResource( 4 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Glove_low_L" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15 ) - -[node name="mesh_Glove_low_L" parent="Hand_Glove_low_L/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="AnimationPlayer" parent="Hand_Glove_low_L" instance=ExtResource( 2 )] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_2oq6b"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_a8arv") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_n3ud5") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ncqlk") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_csu2l") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_akg52") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="LeftHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("4") +default_pose = ExtResource("3_iq5xt") + +[node name="Hand_Glove_low_L" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="mesh_Glove_low_L" parent="Hand_Glove_low_L/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="AnimationPlayer" parent="Hand_Glove_low_L" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_2oq6b") anim_player = NodePath("../Hand_Glove_low_L/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 -parameters/Trigger/blend_amount = 0 +parameters/Trigger/blend_amount = 0.0 [editable path="Hand_Glove_low_L"] diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn index 764cd87f..530078bc 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://xqimcf20s2jp"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://cjrac51wst3tu" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"] +[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_r4xyu"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_sjc0m"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bf0db"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kdora"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_l50hj"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vrc3g"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ayvqt"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_sjc0m") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_bf0db") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_kdora") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l50hj") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_vrc3g") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="RightHand" type="Spatial"] -script = ExtResource( 4 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) +[node name="RightHand" type="Node3D"] +script = ExtResource("4") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_r4xyu") -[node name="Hand_low_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) +[node name="Hand_low_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) -[node name="mesh_Hand_low_R" parent="Hand_low_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 3 ) +[node name="Skeleton3D" parent="Hand_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_low_R" instance=ExtResource( 1 )] +[node name="mesh_Hand_low_R" parent="Hand_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("3") + +[node name="AnimationPlayer" parent="Hand_low_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_ayvqt") anim_player = NodePath("../Hand_low_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn index c1f7fc31..e985370a 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn @@ -1,61 +1,79 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://l2n30mpbkdyw"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://dunu03tc5vdbh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_f67ka"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_mbwcx"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dyc5q"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_dknar"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_covtt"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_h5uio"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_7kqgu"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_mbwcx") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_dyc5q") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_dknar") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_covtt") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_h5uio") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[node name="RightHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) +[node name="RightHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_f67ka") -[node name="Hand_Nails_low_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) +[node name="Hand_Nails_low_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) -[node name="mesh_Hand_Nails_low_R" parent="Hand_Nails_low_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) +[node name="Skeleton3D" parent="Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) -[node name="AnimationPlayer" parent="Hand_Nails_low_R" instance=ExtResource( 1 )] +[node name="mesh_Hand_Nails_low_R" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="AnimationPlayer" parent="Hand_Nails_low_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_7kqgu") anim_player = NodePath("../Hand_Nails_low_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn index 42153c00..727b2826 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn @@ -1,207 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://bkdeegb8w3oah"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/labglove.material" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=8] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://cjrac51wst3tu" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"] +[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_e8slj"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="4"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="6"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="8"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_60yel"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_caigx"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_73xac"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_neei8"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_sdm1s"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightPhysicsHand" type="Spatial"] -script = ExtResource( 4 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 6 ) -default_pose = ExtResource( 5 ) - -[node name="Hand_low_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_low_R/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_low_R" parent="Hand_low_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 3 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="1"] -transform = Transform( 1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_l7k65"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_60yel") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_caigx") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_73xac") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_neei8") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_sdm1s") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightPhysicsHand" type="Node3D"] +script = ExtResource("4") +hand_blend_tree = ExtResource("6") +default_pose = ExtResource("3_e8slj") + +[node name="Hand_low_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Hand_low_R" parent="Hand_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("3") + +[node name="Hand_low_R@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_R" -script = ExtResource( 8 ) +bone_idx = 0 +script = ExtResource("8") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, -0.0514604, 0.017651, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_low_R@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_R" -script = ExtResource( 8 ) +bone_idx = 1 +script = ExtResource("8") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892202, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_low_R@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_R" -script = ExtResource( 8 ) +bone_idx = 2 +script = ExtResource("8") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_low_R@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_R" -script = ExtResource( 8 ) +bone_idx = 3 +script = ExtResource("8") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, -0.0336562, 0.0231681, -0.0231985, -0.000511129, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_low_R@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_R" -script = ExtResource( 8 ) +bone_idx = 5 +script = ExtResource("8") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, -0.0419384, 0.0509327, -0.041317, 0.204661, 0.97796, -0.0514382, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_low_R@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_R" -script = ExtResource( 8 ) +bone_idx = 6 +script = ExtResource("8") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, -0.644453, 0.0854741, 0.040588, 0.178251, 0.983147, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561 ) +[node name="Hand_low_R@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_R" -script = ExtResource( 8 ) +bone_idx = 7 +script = ExtResource("8") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869 ) +[node name="Hand_low_R@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_R" -script = ExtResource( 8 ) +bone_idx = 8 +script = ExtResource("8") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.997479, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_low_R@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_R" -script = ExtResource( 8 ) +bone_idx = 10 +script = ExtResource("8") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997157, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_low_R@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_R" -script = ExtResource( 8 ) +bone_idx = 11 +script = ExtResource("8") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, -0.643161, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765465, -0.00328062, 0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_low_R@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_R" -script = ExtResource( 8 ) +bone_idx = 12 +script = ExtResource("8") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_low_R@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) bone_name = "Middle_Distal_R" -script = ExtResource( 8 ) +bone_idx = 13 +script = ExtResource("8") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_low_R@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_R" -script = ExtResource( 8 ) +bone_idx = 15 +script = ExtResource("8") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_low_R@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_R" -script = ExtResource( 8 ) +bone_idx = 16 +script = ExtResource("8") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, -0.634603, -0.0200164, -0.0794845, -0.127948, 0.988591, -0.629924, -0.762173, -0.149291, -0.000778398, -0.0314857, -0.111722 ) +[node name="Hand_low_R@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_R" -script = ExtResource( 8 ) +bone_idx = 17 +script = ExtResource("8") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.99069, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_low_R@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_R" -script = ExtResource( 8 ) +bone_idx = 18 +script = ExtResource("8") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_low_R@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_R" -script = ExtResource( 8 ) +bone_idx = 20 +script = ExtResource("8") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, -0.239304, -0.0579745, -0.0185536, -0.305761, 0.951927, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_low_R@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_R" -script = ExtResource( 8 ) +bone_idx = 21 +script = ExtResource("8") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.7072, -0.683325, -0.181481, -0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_low_R@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_R" -script = ExtResource( 8 ) +bone_idx = 22 +script = ExtResource("8") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_low_R/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, -0.939845, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_low_R@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_low_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_R" -script = ExtResource( 8 ) +bone_idx = 23 +script = ExtResource("8") length = 0.015 -[node name="AnimationPlayer" parent="Hand_low_R" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_low_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_l7k65") anim_player = NodePath("../Hand_low_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn index 8193eb19..2a07a3f5 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn @@ -1,207 +1,223 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://btf05hjpw6k05"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=7] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://dunu03tc5vdbh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_b86a5"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"] +[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="5"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="7"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_rw5cd"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_3liek"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_j2nhk"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_svl77"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_8t3gu"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightPhysicsHand" type="Spatial"] -script = ExtResource( 3 ) -__meta__ = { -"_editor_description_": "" -} -hand_blend_tree = ExtResource( 7 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Nails_low_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Nails_low_R/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Hand_Nails_low_R" parent="Hand_Nails_low_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="1"] -transform = Transform( 1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_li0ij"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_rw5cd") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_3liek") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_j2nhk") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_svl77") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_8t3gu") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightPhysicsHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("7") +default_pose = ExtResource("3_b86a5") + +[node name="Hand_Nails_low_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Hand_Nails_low_R" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_R" -script = ExtResource( 4 ) +bone_idx = 0 +script = ExtResource("4") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, -0.0514604, 0.017651, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 1 +script = ExtResource("4") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892202, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 2 +script = ExtResource("4") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_R" -script = ExtResource( 4 ) +bone_idx = 3 +script = ExtResource("4") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, -0.0336562, 0.0231681, -0.0231985, -0.000511129, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 5 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, -0.0419384, 0.0509327, -0.041317, 0.204661, 0.97796, -0.0514382, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 6 +script = ExtResource("4") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, -0.644453, 0.0854741, 0.040588, 0.178251, 0.983147, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 7 +script = ExtResource("4") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_R" -script = ExtResource( 4 ) +bone_idx = 8 +script = ExtResource("4") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.997479, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 10 +script = ExtResource("4") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997157, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 11 +script = ExtResource("4") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, -0.643161, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765465, -0.00328062, 0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 12 +script = ExtResource("4") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) bone_name = "Middle_Distal_R" -script = ExtResource( 4 ) +bone_idx = 13 +script = ExtResource("4") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 15 +script = ExtResource("4") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 16 +script = ExtResource("4") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, -0.634603, -0.0200164, -0.0794845, -0.127948, 0.988591, -0.629924, -0.762173, -0.149291, -0.000778398, -0.0314857, -0.111722 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 17 +script = ExtResource("4") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.99069, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_R" -script = ExtResource( 4 ) +bone_idx = 18 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_R" -script = ExtResource( 4 ) +bone_idx = 20 +script = ExtResource("4") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, -0.239304, -0.0579745, -0.0185536, -0.305761, 0.951927, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_R" -script = ExtResource( 4 ) +bone_idx = 21 +script = ExtResource("4") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.7072, -0.683325, -0.181481, -0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_R" -script = ExtResource( 4 ) +bone_idx = 22 +script = ExtResource("4") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Nails_low_R/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, -0.939845, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Nails_low_R@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Nails_low_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_R" -script = ExtResource( 4 ) +bone_idx = 23 +script = ExtResource("4") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Nails_low_R" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_Nails_low_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_li0ij") anim_player = NodePath("../Hand_Nails_low_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn index 4abd534f..e180b80d 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn @@ -1,207 +1,226 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=14 format=3 uid="uid://c2uvwvdlsfuep"] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" type="Script" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/physics_hand.gd" type="Script" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=7] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://csgsp0wuw8ucy" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="2"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_xodao"] +[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="5"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="6"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_47dg5"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u8oa1"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_p10ot"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xl7l4"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_wmdow"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightPhysicsHand" type="Spatial"] -script = ExtResource( 6 ) -hand_blend_tree = ExtResource( 3 ) -default_pose = ExtResource( 7 ) - -[node name="Hand_Glove_low_R" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="Skeleton" parent="Hand_Glove_low_R/Armature" index="0"] -bones/0/bound_children = [ NodePath("BoneRoot") ] -bones/1/bound_children = [ NodePath("BoneThumbMetacarpal") ] -bones/2/bound_children = [ NodePath("BoneThumbProximal") ] -bones/3/bound_children = [ NodePath("BoneThumbDistal") ] -bones/5/bound_children = [ NodePath("BoneIndexMetacarpal") ] -bones/6/bound_children = [ NodePath("BoneIndexProximal") ] -bones/7/bound_children = [ NodePath("BoneIndexMiddle") ] -bones/8/bound_children = [ NodePath("BoneIndexDistal") ] -bones/10/bound_children = [ NodePath("BoneMiddleMetacarpal") ] -bones/11/bound_children = [ NodePath("BoneMiddleProximal") ] -bones/12/bound_children = [ NodePath("BoneMiddleMiddle") ] -bones/13/bound_children = [ NodePath("BoneMiddleDistal") ] -bones/15/bound_children = [ NodePath("BoneRingMetacarpal") ] -bones/16/bound_children = [ NodePath("BoneRingProximal") ] -bones/17/bound_children = [ NodePath("BoneRingMiddle") ] -bones/18/bound_children = [ NodePath("BoneRingDistal") ] -bones/20/bound_children = [ NodePath("BonePinkyMetacarpal") ] -bones/21/bound_children = [ NodePath("BonePinkyProximal") ] -bones/22/bound_children = [ NodePath("BonePinkyMiddle") ] -bones/23/bound_children = [ NodePath("BonePinkyDistal") ] - -[node name="mesh_Glove_low_R" parent="Hand_Glove_low_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 4 ) - -[node name="BoneRoot" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="1"] -transform = Transform( 1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_vnv28"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_47dg5") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_u8oa1") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_p10ot") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_xl7l4") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_wmdow") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightPhysicsHand" type="Node3D"] +script = ExtResource("6") +hand_blend_tree = ExtResource("3") +default_pose = ExtResource("3_xodao") + +[node name="Hand_Glove_low_R" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Glove_low_R" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("4") + +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneRoot" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) bone_name = "Wrist_R" -script = ExtResource( 5 ) +bone_idx = 0 +script = ExtResource("5") width_ratio = 0.8 -[node name="BoneThumbMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="2"] -transform = Transform( 0.998519, -0.0514604, 0.017651, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.5936e-05 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneThumbMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) bone_name = "Thumb_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 1 +script = ExtResource("5") length = 0.05 -[node name="BoneThumbProximal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="3"] -transform = Transform( 0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892202, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353647 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneThumbProximal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) bone_name = "Thumb_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 2 +script = ExtResource("5") -[node name="BoneThumbDistal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="4"] -transform = Transform( 0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneThumbDistal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) bone_name = "Thumb_Distal_R" -script = ExtResource( 5 ) +bone_idx = 3 +script = ExtResource("5") length = 0.02 -[node name="BoneIndexMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="5"] -transform = Transform( 0.999165, -0.0336562, 0.0231681, -0.0231985, -0.000511129, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneIndexMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) bone_name = "Index_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 5 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneIndexProximal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="6"] -transform = Transform( 0.997821, -0.0419384, 0.0509327, -0.041317, 0.204661, 0.97796, -0.0514382, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneIndexProximal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) bone_name = "Index_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 6 +script = ExtResource("5") -[node name="BoneIndexMiddle" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="7"] -transform = Transform( 0.759851, -0.644453, 0.0854741, 0.040588, 0.178251, 0.983147, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneIndexMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) bone_name = "Index_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 7 +script = ExtResource("5") length = 0.025 bone_group = "index_finger" -[node name="BoneIndexDistal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="8"] -transform = Transform( 0.356468, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneIndexDistal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) bone_name = "Index_Distal_R" -script = ExtResource( 5 ) +bone_idx = 8 +script = ExtResource("5") length = 0.02 bone_group = "index_finger" -[node name="BoneMiddleMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="9"] -transform = Transform( 0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.997479, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneMiddleMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) bone_name = "Middle_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 10 +script = ExtResource("5") length = 0.08 width_ratio = 0.2 -[node name="BoneMiddleProximal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="10"] -transform = Transform( 0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997157, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneMiddleProximal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) bone_name = "Middle_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 11 +script = ExtResource("5") -[node name="BoneMiddleMiddle" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="11"] -transform = Transform( 0.764922, -0.643161, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765465, -0.00328062, 0.000328453, -0.00532286, -0.123817 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneMiddleMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) bone_name = "Middle_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 12 +script = ExtResource("5") length = 0.025 -[node name="BoneMiddleDistal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="12"] -transform = Transform( 0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467056, -0.148631 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneMiddleDistal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) bone_name = "Middle_Distal_R" -script = ExtResource( 5 ) +bone_idx = 13 +script = ExtResource("5") length = 0.02 -[node name="BoneRingMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="13"] -transform = Transform( 0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneRingMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) bone_name = "Ring_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 15 +script = ExtResource("5") length = 0.07 width_ratio = 0.2 -[node name="BoneRingProximal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="14"] -transform = Transform( 0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651962, -0.0233502, -0.0731075 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneRingProximal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) bone_name = "Ring_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 16 +script = ExtResource("5") length = 0.028 -[node name="BoneRingMiddle" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="15"] -transform = Transform( 0.772579, -0.634603, -0.0200164, -0.0794845, -0.127948, 0.988591, -0.629924, -0.762173, -0.149291, -0.000778398, -0.0314857, -0.111722 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneRingMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) bone_name = "Ring_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 17 +script = ExtResource("5") length = 0.025 -[node name="BoneRingDistal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="16"] -transform = Transform( 0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.99069, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BoneRingDistal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) bone_name = "Ring_Distal_R" -script = ExtResource( 5 ) +bone_idx = 18 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMetacarpal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="17"] -transform = Transform( 0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.57587e-07, -0.0299734, 3.59416e-05 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BonePinkyMetacarpal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) bone_name = "Little_Metacarpal_R" -script = ExtResource( 5 ) +bone_idx = 20 +script = ExtResource("5") length = 0.07 width_ratio = 0.18 -[node name="BonePinkyProximal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="18"] -transform = Transform( 0.969212, -0.239304, -0.0579745, -0.0185536, -0.305761, 0.951927, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BonePinkyProximal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) bone_name = "Little_Proximal_R" -script = ExtResource( 5 ) +bone_idx = 21 +script = ExtResource("5") length = 0.02 -[node name="BonePinkyMiddle" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="19"] -transform = Transform( 0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.7072, -0.683325, -0.181481, -0.00901248, -0.0520231, -0.0951004 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BonePinkyMiddle" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) bone_name = "Little_Intermediate_R" -script = ExtResource( 5 ) +bone_idx = 22 +script = ExtResource("5") length = 0.015 -[node name="BonePinkyDistal" type="BoneAttachment" parent="Hand_Glove_low_R/Armature/Skeleton" index="20"] -transform = Transform( 0.340891, -0.939845, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417 ) +[node name="Hand_Glove_low_R@Armature@Skeleton@BonePinkyDistal" type="BoneAttachment3D" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) bone_name = "Little_Distal_R" -script = ExtResource( 5 ) +bone_idx = 23 +script = ExtResource("5") length = 0.015 -[node name="AnimationPlayer" parent="Hand_Glove_low_R" instance=ExtResource( 1 )] +[node name="AnimationPlayer" parent="Hand_Glove_low_R" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_vnv28") anim_player = NodePath("../Hand_Glove_low_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 -parameters/Trigger/blend_amount = 0 +parameters/Trigger/blend_amount = 0.0 [editable path="Hand_Glove_low_R"] diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn index eafc74c2..a258c443 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn @@ -1,61 +1,82 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://chumpejwiub7f"] -[ext_resource path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/hand.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" type="AnimationNodeBlendTree" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" type="Resource" id=6] +[ext_resource type="PackedScene" uid="uid://csgsp0wuw8ucy" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="1"] +[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"] +[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_2wryo"] +[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="4"] +[ext_resource type="Material" uid="uid://b718ylp68nhtc" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" id="5"] -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jjiin"] +animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_501h4"] +animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id=3] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_1dqi4"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4o3a2"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_5v4fm"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -587.059, 45.3009 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[node name="RightHand" type="Spatial"] -script = ExtResource( 3 ) -hand_blend_tree = ExtResource( 4 ) -default_pose = ExtResource( 6 ) - -[node name="Hand_Glove_low_R" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15 ) - -[node name="mesh_Glove_low_R" parent="Hand_Glove_low_R/Armature/Skeleton" index="0"] -material/0 = ExtResource( 5 ) - -[node name="AnimationPlayer" parent="Hand_Glove_low_R" instance=ExtResource( 2 )] +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ra758"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_jjiin") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_501h4") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_1dqi4") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4o3a2") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_5v4fm") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="RightHand" type="Node3D"] +script = ExtResource("3") +hand_blend_tree = ExtResource("4") +default_pose = ExtResource("3_2wryo") + +[node name="Hand_Glove_low_R" parent="." instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, -0.05, 0.15) + +[node name="Skeleton3D" parent="Hand_Glove_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Glove_low_R" parent="Hand_Glove_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("5") + +[node name="AnimationPlayer" parent="Hand_Glove_low_R" instance=ExtResource("2")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource( 6 ) +tree_root = SubResource("AnimationNodeBlendTree_ra758") anim_player = NodePath("../Hand_Glove_low_R/AnimationPlayer") active = true parameters/Grip/blend_amount = 0 -parameters/Trigger/blend_amount = 0 +parameters/Trigger/blend_amount = 0.0 [editable path="Hand_Glove_low_R"] diff --git a/addons/godot-xr-tools/hands/textures/african_baseColor.png.import b/addons/godot-xr-tools/hands/textures/african_baseColor.png.import index 76549137..be520188 100644 --- a/addons/godot-xr-tools/hands/textures/african_baseColor.png.import +++ b/addons/godot-xr-tools/hands/textures/african_baseColor.png.import @@ -1,37 +1,34 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/african_baseColor.png-c1a63b2c85973a5f7673482d994697e9.s3tc.stex" -path.etc="res://.import/african_baseColor.png-c1a63b2c85973a5f7673482d994697e9.etc.stex" +type="CompressedTexture2D" +uid="uid://cs7m7m0k2506g" +path="res://.godot/imported/african_baseColor.png-c1a63b2c85973a5f7673482d994697e9.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://addons/godot-xr-tools/hands/textures/african_baseColor.png" -dest_files=[ "res://.import/african_baseColor.png-c1a63b2c85973a5f7673482d994697e9.s3tc.stex", "res://.import/african_baseColor.png-c1a63b2c85973a5f7673482d994697e9.etc.stex" ] +dest_files=["res://.godot/imported/african_baseColor.png-c1a63b2c85973a5f7673482d994697e9.ctex"] [params] -compress/mode=2 +compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/godot-xr-tools/hands/textures/african_realistic_baseColor.png.import b/addons/godot-xr-tools/hands/textures/african_realistic_baseColor.png.import index 70fadef4..9ab4c6d4 100644 --- a/addons/godot-xr-tools/hands/textures/african_realistic_baseColor.png.import +++ b/addons/godot-xr-tools/hands/textures/african_realistic_baseColor.png.import @@ -1,37 +1,34 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/african_realistic_baseColor.png-67cf0f3230115c16edbeaf7b76430f7c.s3tc.stex" -path.etc="res://.import/african_realistic_baseColor.png-67cf0f3230115c16edbeaf7b76430f7c.etc.stex" +type="CompressedTexture2D" +uid="uid://dk8o82rjww802" +path="res://.godot/imported/african_realistic_baseColor.png-67cf0f3230115c16edbeaf7b76430f7c.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://addons/godot-xr-tools/hands/textures/african_realistic_baseColor.png" -dest_files=[ "res://.import/african_realistic_baseColor.png-67cf0f3230115c16edbeaf7b76430f7c.s3tc.stex", "res://.import/african_realistic_baseColor.png-67cf0f3230115c16edbeaf7b76430f7c.etc.stex" ] +dest_files=["res://.godot/imported/african_realistic_baseColor.png-67cf0f3230115c16edbeaf7b76430f7c.ctex"] [params] -compress/mode=2 +compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/godot-xr-tools/hands/textures/caucasian_baseColor.png.import b/addons/godot-xr-tools/hands/textures/caucasian_baseColor.png.import index 63223d13..6ef2fdef 100644 --- a/addons/godot-xr-tools/hands/textures/caucasian_baseColor.png.import +++ b/addons/godot-xr-tools/hands/textures/caucasian_baseColor.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.s3tc.stex" -path.etc="res://.import/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.etc.stex" +type="CompressedTexture2D" +uid="uid://c506svon268ms" +path.s3tc="res://.godot/imported/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.s3tc.ctex" +path.etc2="res://.godot/imported/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/caucasian_baseColor.png" -dest_files=[ "res://.import/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.s3tc.stex", "res://.import/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.etc.stex" ] +dest_files=["res://.godot/imported/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.s3tc.ctex", "res://.godot/imported/caucasian_baseColor.png-2ffa4b91e9a1b3bcc11c22eccd941be7.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/caucasian_realistic_baseColor.png.import b/addons/godot-xr-tools/hands/textures/caucasian_realistic_baseColor.png.import index ea1634aa..877755be 100644 --- a/addons/godot-xr-tools/hands/textures/caucasian_realistic_baseColor.png.import +++ b/addons/godot-xr-tools/hands/textures/caucasian_realistic_baseColor.png.import @@ -1,37 +1,34 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/caucasian_realistic_baseColor.png-6d28d56c1e76917b749358861074492c.s3tc.stex" -path.etc="res://.import/caucasian_realistic_baseColor.png-6d28d56c1e76917b749358861074492c.etc.stex" +type="CompressedTexture2D" +uid="uid://n1xq4cm67o07" +path="res://.godot/imported/caucasian_realistic_baseColor.png-6d28d56c1e76917b749358861074492c.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://addons/godot-xr-tools/hands/textures/caucasian_realistic_baseColor.png" -dest_files=[ "res://.import/caucasian_realistic_baseColor.png-6d28d56c1e76917b749358861074492c.s3tc.stex", "res://.import/caucasian_realistic_baseColor.png-6d28d56c1e76917b749358861074492c.etc.stex" ] +dest_files=["res://.godot/imported/caucasian_realistic_baseColor.png-6d28d56c1e76917b749358861074492c.ctex"] [params] -compress/mode=2 +compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/godot-xr-tools/hands/textures/cleaning_glove_baseColor.png.import b/addons/godot-xr-tools/hands/textures/cleaning_glove_baseColor.png.import index f057caa5..6a06dbb9 100644 --- a/addons/godot-xr-tools/hands/textures/cleaning_glove_baseColor.png.import +++ b/addons/godot-xr-tools/hands/textures/cleaning_glove_baseColor.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.s3tc.stex" -path.etc="res://.import/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.etc.stex" +type="CompressedTexture2D" +uid="uid://dv711ytktesj2" +path.s3tc="res://.godot/imported/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.s3tc.ctex" +path.etc2="res://.godot/imported/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/cleaning_glove_baseColor.png" -dest_files=[ "res://.import/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.s3tc.stex", "res://.import/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.etc.stex" ] +dest_files=["res://.godot/imported/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.s3tc.ctex", "res://.godot/imported/cleaning_glove_baseColor.png-775896445d04c5f9ecad1dcd0609e336.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_african_dark_camo.png.import b/addons/godot-xr-tools/hands/textures/glove_african_dark_camo.png.import index 4f483079..f3ad84f5 100644 --- a/addons/godot-xr-tools/hands/textures/glove_african_dark_camo.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_african_dark_camo.png.import @@ -1,37 +1,34 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_african_dark_camo.png-3a526d8d251e73995f6fd3ba5cdd0b4e.s3tc.stex" -path.etc="res://.import/glove_african_dark_camo.png-3a526d8d251e73995f6fd3ba5cdd0b4e.etc.stex" +type="CompressedTexture2D" +uid="uid://cocorrka3dtq3" +path="res://.godot/imported/glove_african_dark_camo.png-3a526d8d251e73995f6fd3ba5cdd0b4e.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_african_dark_camo.png" -dest_files=[ "res://.import/glove_african_dark_camo.png-3a526d8d251e73995f6fd3ba5cdd0b4e.s3tc.stex", "res://.import/glove_african_dark_camo.png-3a526d8d251e73995f6fd3ba5cdd0b4e.etc.stex" ] +dest_files=["res://.godot/imported/glove_african_dark_camo.png-3a526d8d251e73995f6fd3ba5cdd0b4e.ctex"] [params] -compress/mode=2 +compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/godot-xr-tools/hands/textures/glove_african_green_camo.png.import b/addons/godot-xr-tools/hands/textures/glove_african_green_camo.png.import index bd900c77..a75b6fe7 100644 --- a/addons/godot-xr-tools/hands/textures/glove_african_green_camo.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_african_green_camo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.s3tc.stex" -path.etc="res://.import/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.etc.stex" +type="CompressedTexture2D" +uid="uid://bidphehpipwhg" +path.s3tc="res://.godot/imported/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.s3tc.ctex" +path.etc2="res://.godot/imported/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_african_green_camo.png" -dest_files=[ "res://.import/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.s3tc.stex", "res://.import/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.etc.stex" ] +dest_files=["res://.godot/imported/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.s3tc.ctex", "res://.godot/imported/glove_african_green_camo.png-b4a9e045aac0313108230034e03317fd.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_caucasian_dark_camo.png.import b/addons/godot-xr-tools/hands/textures/glove_caucasian_dark_camo.png.import index f5f084e0..747c121b 100644 --- a/addons/godot-xr-tools/hands/textures/glove_caucasian_dark_camo.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_caucasian_dark_camo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.s3tc.stex" -path.etc="res://.import/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.etc.stex" +type="CompressedTexture2D" +uid="uid://c7jutkax2fd1k" +path.s3tc="res://.godot/imported/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.s3tc.ctex" +path.etc2="res://.godot/imported/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_caucasian_dark_camo.png" -dest_files=[ "res://.import/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.s3tc.stex", "res://.import/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.etc.stex" ] +dest_files=["res://.godot/imported/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.s3tc.ctex", "res://.godot/imported/glove_caucasian_dark_camo.png-338e35680a2de0f7c6ad596eba6a3d5f.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png.import b/addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png.import index 1fb01cf8..d7a9d9e0 100644 --- a/addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.s3tc.stex" -path.etc="res://.import/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.etc.stex" +type="CompressedTexture2D" +uid="uid://dgkfppran5j1f" +path.s3tc="res://.godot/imported/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.s3tc.ctex" +path.etc2="res://.godot/imported/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_caucasian_green_camo.png" -dest_files=[ "res://.import/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.s3tc.stex", "res://.import/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.etc.stex" ] +dest_files=["res://.godot/imported/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.s3tc.ctex", "res://.godot/imported/glove_caucasian_green_camo.png-009f6b98bc0f9d73ac78a6b6900a0d00.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_fingerless_normal.png.import b/addons/godot-xr-tools/hands/textures/glove_fingerless_normal.png.import index 241f41df..075d3034 100644 --- a/addons/godot-xr-tools/hands/textures/glove_fingerless_normal.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_fingerless_normal.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.s3tc.stex" -path.etc="res://.import/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.etc.stex" +type="CompressedTexture2D" +uid="uid://bw8rmigwt5pr4" +path.s3tc="res://.godot/imported/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.s3tc.ctex" +path.etc2="res://.godot/imported/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_fingerless_normal.png" -dest_files=[ "res://.import/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.s3tc.stex", "res://.import/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.etc.stex" ] +dest_files=["res://.godot/imported/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.s3tc.ctex", "res://.godot/imported/glove_fingerless_normal.png-46736b8f0a977e37b17257f7bbbb718f.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=1 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://addons/godot-xr-tools/hands/textures/glove_fingerless_normal.png" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_fingerless_occlusionRoughnessMetallic.png.import b/addons/godot-xr-tools/hands/textures/glove_fingerless_occlusionRoughnessMetallic.png.import index 39367df1..8b11c531 100644 --- a/addons/godot-xr-tools/hands/textures/glove_fingerless_occlusionRoughnessMetallic.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_fingerless_occlusionRoughnessMetallic.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.s3tc.stex" -path.etc="res://.import/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.etc.stex" +type="CompressedTexture2D" +uid="uid://d2iocwfr47kqp" +path.s3tc="res://.godot/imported/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.s3tc.ctex" +path.etc2="res://.godot/imported/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_fingerless_occlusionRoughnessMetallic.png" -dest_files=[ "res://.import/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.s3tc.stex", "res://.import/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.etc.stex" ] +dest_files=["res://.godot/imported/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.s3tc.ctex", "res://.godot/imported/glove_fingerless_occlusionRoughnessMetallic.png-441bf1f84442c3cd6ae3834c9c982565.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_normal.png.import b/addons/godot-xr-tools/hands/textures/glove_normal.png.import index bc0a219c..23724ec5 100644 --- a/addons/godot-xr-tools/hands/textures/glove_normal.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_normal.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_normal.png-da82759e655cb7106cb0172b7076b948.s3tc.stex" -path.etc="res://.import/glove_normal.png-da82759e655cb7106cb0172b7076b948.etc.stex" +type="CompressedTexture2D" +uid="uid://dt6k4nuvpo38o" +path.s3tc="res://.godot/imported/glove_normal.png-da82759e655cb7106cb0172b7076b948.s3tc.ctex" +path.etc2="res://.godot/imported/glove_normal.png-da82759e655cb7106cb0172b7076b948.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_normal.png" -dest_files=[ "res://.import/glove_normal.png-da82759e655cb7106cb0172b7076b948.s3tc.stex", "res://.import/glove_normal.png-da82759e655cb7106cb0172b7076b948.etc.stex" ] +dest_files=["res://.godot/imported/glove_normal.png-da82759e655cb7106cb0172b7076b948.s3tc.ctex", "res://.godot/imported/glove_normal.png-da82759e655cb7106cb0172b7076b948.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=1 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://addons/godot-xr-tools/hands/textures/glove_normal.png" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png.import b/addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png.import index ab4e964d..2bfd1611 100644 --- a/addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png.import +++ b/addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.s3tc.stex" -path.etc="res://.import/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.etc.stex" +type="CompressedTexture2D" +uid="uid://yslwgnpbpeen" +path.s3tc="res://.godot/imported/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.s3tc.ctex" +path.etc2="res://.godot/imported/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/glove_occlusionRoughnessMetallic.png" -dest_files=[ "res://.import/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.s3tc.stex", "res://.import/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.etc.stex" ] +dest_files=["res://.godot/imported/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.s3tc.ctex", "res://.godot/imported/glove_occlusionRoughnessMetallic.png-1a61c4638e30c81daa59d92c8681eb2c.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/hands_normal.png.import b/addons/godot-xr-tools/hands/textures/hands_normal.png.import index 344211e5..998156c7 100644 --- a/addons/godot-xr-tools/hands/textures/hands_normal.png.import +++ b/addons/godot-xr-tools/hands/textures/hands_normal.png.import @@ -1,37 +1,34 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/hands_normal.png-291c7217751274bfe1199e3de899450f.s3tc.stex" -path.etc="res://.import/hands_normal.png-291c7217751274bfe1199e3de899450f.etc.stex" +type="CompressedTexture2D" +uid="uid://b6tgv6ucbgv3r" +path="res://.godot/imported/hands_normal.png-291c7217751274bfe1199e3de899450f.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://addons/godot-xr-tools/hands/textures/hands_normal.png" -dest_files=[ "res://.import/hands_normal.png-291c7217751274bfe1199e3de899450f.s3tc.stex", "res://.import/hands_normal.png-291c7217751274bfe1199e3de899450f.etc.stex" ] +dest_files=["res://.godot/imported/hands_normal.png-291c7217751274bfe1199e3de899450f.ctex"] [params] -compress/mode=2 +compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=1 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/godot-xr-tools/hands/textures/hands_occlusionRoughnessMetallic.png.import b/addons/godot-xr-tools/hands/textures/hands_occlusionRoughnessMetallic.png.import index 88618095..30c17360 100644 --- a/addons/godot-xr-tools/hands/textures/hands_occlusionRoughnessMetallic.png.import +++ b/addons/godot-xr-tools/hands/textures/hands_occlusionRoughnessMetallic.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.s3tc.stex" -path.etc="res://.import/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.etc.stex" +type="CompressedTexture2D" +uid="uid://h3sjbnu6uplb" +path.s3tc="res://.godot/imported/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.s3tc.ctex" +path.etc2="res://.godot/imported/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/hands_occlusionRoughnessMetallic.png" -dest_files=[ "res://.import/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.s3tc.stex", "res://.import/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.etc.stex" ] +dest_files=["res://.godot/imported/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.s3tc.ctex", "res://.godot/imported/hands_occlusionRoughnessMetallic.png-73229fc54301aa8833117ebde8abfd4e.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/hands/textures/labglove_baseColor.png.import b/addons/godot-xr-tools/hands/textures/labglove_baseColor.png.import index 7e41ecab..4320130c 100644 --- a/addons/godot-xr-tools/hands/textures/labglove_baseColor.png.import +++ b/addons/godot-xr-tools/hands/textures/labglove_baseColor.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.s3tc.stex" -path.etc="res://.import/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.etc.stex" +type="CompressedTexture2D" +uid="uid://d4gbpgjwjuovb" +path.s3tc="res://.godot/imported/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.s3tc.ctex" +path.etc2="res://.godot/imported/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/hands/textures/labglove_baseColor.png" -dest_files=[ "res://.import/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.s3tc.stex", "res://.import/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.etc.stex" ] +dest_files=["res://.godot/imported/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.s3tc.ctex", "res://.godot/imported/labglove_baseColor.png-2eb9fa4d9955a5755a96f0663ee3ceb2.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/images/icon.png.import b/addons/godot-xr-tools/images/icon.png.import index 55b19dee..7f907410 100644 --- a/addons/godot-xr-tools/images/icon.png.import +++ b/addons/godot-xr-tools/images/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icon.png-1d8efcc4c33e64800e22ea3150ef148d.stex" +type="CompressedTexture2D" +uid="uid://bcll0cv3rie0i" +path="res://.godot/imported/icon.png-1d8efcc4c33e64800e22ea3150ef148d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/godot-xr-tools/images/icon.png" -dest_files=[ "res://.import/icon.png-1d8efcc4c33e64800e22ea3150ef148d.stex" ] +dest_files=["res://.godot/imported/icon.png-1d8efcc4c33e64800e22ea3150ef148d.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/godot-xr-tools/images/ring.png.import b/addons/godot-xr-tools/images/ring.png.import index 46afadb2..dfa1e531 100644 --- a/addons/godot-xr-tools/images/ring.png.import +++ b/addons/godot-xr-tools/images/ring.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/ring.png-34d9c9e9780f2732148a5b14fcac48dd.s3tc.stex" -path.etc="res://.import/ring.png-34d9c9e9780f2732148a5b14fcac48dd.etc.stex" +type="CompressedTexture2D" +uid="uid://8s03ra8tp0hr" +path.s3tc="res://.godot/imported/ring.png-34d9c9e9780f2732148a5b14fcac48dd.s3tc.ctex" +path.etc2="res://.godot/imported/ring.png-34d9c9e9780f2732148a5b14fcac48dd.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/images/ring.png" -dest_files=[ "res://.import/ring.png-34d9c9e9780f2732148a5b14fcac48dd.s3tc.stex", "res://.import/ring.png-34d9c9e9780f2732148a5b14fcac48dd.etc.stex" ] +dest_files=["res://.godot/imported/ring.png-34d9c9e9780f2732148a5b14fcac48dd.s3tc.ctex", "res://.godot/imported/ring.png-34d9c9e9780f2732148a5b14fcac48dd.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/images/teleport_arrow.png.import b/addons/godot-xr-tools/images/teleport_arrow.png.import index fd993352..bc4f1012 100644 --- a/addons/godot-xr-tools/images/teleport_arrow.png.import +++ b/addons/godot-xr-tools/images/teleport_arrow.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.s3tc.stex" -path.etc="res://.import/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.etc.stex" +type="CompressedTexture2D" +uid="uid://ddoj6c345cb0c" +path.s3tc="res://.godot/imported/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.s3tc.ctex" +path.etc2="res://.godot/imported/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/images/teleport_arrow.png" -dest_files=[ "res://.import/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.s3tc.stex", "res://.import/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.etc.stex" ] +dest_files=["res://.godot/imported/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.s3tc.ctex", "res://.godot/imported/teleport_arrow.png-f1bd44b6f478277692b3fa29171b62d3.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/images/teleport_target.png.import b/addons/godot-xr-tools/images/teleport_target.png.import index 30747fcd..1e39e038 100644 --- a/addons/godot-xr-tools/images/teleport_target.png.import +++ b/addons/godot-xr-tools/images/teleport_target.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.s3tc.stex" -path.etc="res://.import/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.etc.stex" +type="CompressedTexture2D" +uid="uid://cu4j1s8qr1rjq" +path.s3tc="res://.godot/imported/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.s3tc.ctex" +path.etc2="res://.godot/imported/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://addons/godot-xr-tools/images/teleport_target.png" -dest_files=[ "res://.import/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.s3tc.stex", "res://.import/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.etc.stex" ] +dest_files=["res://.godot/imported/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.s3tc.ctex", "res://.godot/imported/teleport_target.png-cd812f7d5692711ac91f6c8a4753ad73.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/godot-xr-tools/interactables/interactable_area_button.gd b/addons/godot-xr-tools/interactables/interactable_area_button.gd index 2d48b864..d3ceebda 100644 --- a/addons/godot-xr-tools/interactables/interactable_area_button.gd +++ b/addons/godot-xr-tools/interactables/interactable_area_button.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsInteractableAreaButton -extends Area +extends Area3D ## XR Tools Interactable Area Button script @@ -18,58 +18,53 @@ signal button_released(button) ## Button object -export var button := NodePath() +@export var button := NodePath() ## Displacement when pressed -export var displacement : Vector3 = Vector3(0.0, -0.02, 0.0) +@export var displacement : Vector3 = Vector3(0.0, -0.02, 0.0) ## Displacement duration -export var duration : float = 0.1 +@export var duration : float = 0.1 ## If true, the button is pressed var pressed : bool = false -# Dictionary of trigger items pressing the button +## Dictionary of trigger items pressing the button var _trigger_items := {} -# Tween for animating button +## Tween for animating button var _tween: Tween # Node references -onready var _button: Spatial = get_node(button) +@onready var _button: Node3D = get_node(button) # Button positions -onready var _button_up := _button.transform.origin -onready var _button_down := _button_up + displacement +@onready var _button_up := _button.transform.origin +@onready var _button_down := _button_up + displacement -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableAreaButton" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableAreaButton" # Called when the node enters the scene tree for the first time. func _ready(): - # Construct the button animation tween - _tween = Tween.new() - _tween.set_name("Tween") - add_child(_tween) - # Connect area signals - if connect("area_entered", self, "_on_button_entered"): + if area_entered.connect(_on_button_entered): push_error("Unable to connect button area signal") - if connect("area_exited", self, "_on_button_exited"): + if area_exited.connect(_on_button_exited): push_error("Unable to connect button area signal") - if connect("body_entered", self, "_on_button_entered"): + if body_entered.connect(_on_button_entered): push_error("Unable to connect button area signal") - if connect("body_exited", self, "_on_button_exited"): + if body_exited.connect(_on_button_exited): push_error("Unable to connect button area signal") # Called when an area or body enters the button area -func _on_button_entered(item: Spatial) -> void: +func _on_button_entered(item: Node3D) -> void: # Add to the dictionary of trigger items _trigger_items[item] = item @@ -78,54 +73,54 @@ func _on_button_entered(item: Spatial) -> void: # Update state to pressed pressed = true - # Start the tween to move the button transform to the down position - _tween.interpolate_property( - _button, - "transform:origin", - null, - _button_down, - duration, - Tween.TRANS_LINEAR, - Tween.EASE_IN_OUT) - _tween.start() + # Kill the current tween + if _tween: + _tween.kill() + + # Construct the button animation tween + _tween = get_tree().create_tween() + _tween.set_trans(Tween.TRANS_LINEAR) + _tween.set_ease(Tween.EASE_IN_OUT) + _tween.tween_property(_button, "position", _button_down, duration) # Emit the pressed signal - emit_signal("button_pressed",self) + button_pressed.emit(self) # Called when an area or body exits the button area -func _on_button_exited(item: Spatial) -> void: +func _on_button_exited(item: Node3D) -> void: # Remove from the dictionary of triggered items _trigger_items.erase(item) # Detect transition to released - if pressed and _trigger_items.empty(): + if pressed and _trigger_items.is_empty(): # Update state to released pressed = false - # Start the tween to move the button transform to the up position - _tween.interpolate_property( - _button, - "transform:origin", - null, - _button_up, - duration, - Tween.TRANS_LINEAR, - Tween.EASE_IN_OUT) - _tween.start() + # Kill the current tween + if _tween: + _tween.kill() + + # Construct the button animation tween + _tween = get_tree().create_tween() + _tween.set_trans(Tween.TRANS_LINEAR) + _tween.set_ease(Tween.EASE_IN_OUT) + _tween.tween_property(_button, "position", _button_up, duration) # Emit the released signal - emit_signal("button_released",self) + button_released.emit(self) # Check button configuration -func _get_configuration_warning() -> String: +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Ensure a button has been specified if not get_node_or_null(button): - return "Button node to animate must be specified" + warnings.append("Button node to animate must be specified") # Ensure a valid duration if duration <= 0.0: - return "Duration must be a positive number" + warnings.append("Duration must be a positive number") - return "" + return warnings diff --git a/addons/godot-xr-tools/interactables/interactable_area_button.tscn b/addons/godot-xr-tools/interactables/interactable_area_button.tscn index 20218aa9..0163708a 100644 --- a/addons/godot-xr-tools/interactables/interactable_area_button.tscn +++ b/addons/godot-xr-tools/interactables/interactable_area_button.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://cme66uldrjl2i"] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_area_button.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_area_button.gd" id="1"] -[node name="InteractableAreaButton" type="Area"] +[node name="InteractableAreaButton" type="Area3D"] collision_layer = 0 collision_mask = 131072 -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/interactables/interactable_handle.gd b/addons/godot-xr-tools/interactables/interactable_handle.gd index ca927228..672018e7 100644 --- a/addons/godot-xr-tools/interactables/interactable_handle.gd +++ b/addons/godot-xr-tools/interactables/interactable_handle.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsInteractableHandle extends XRToolsPickable @@ -20,22 +20,25 @@ extends XRToolsPickable ## Distance from the handle origin to auto-snap the grab -export var snap_distance : float = 0.3 +@export var snap_distance : float = 0.3 # Handle origin spatial node -onready var handle_origin: Spatial = get_parent() +@onready var handle_origin: Node3D = get_parent() -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableHandle" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableHandle" or super(name) # Called when this handle is added to the scene func _ready() -> void: + # In Godot 4 we must now manually call our super class ready function + super() + # Ensure we start at our origin - transform = Transform.IDENTITY + transform = Transform3D.IDENTITY # Turn off processing - it will be turned on only when held set_process(false) @@ -57,7 +60,7 @@ func _process(_delta: float) -> void: # Called when the handle is picked up func pick_up(by, with_controller) -> void: # Call the base-class to perform the pickup - .pick_up(by, with_controller) + super(by, with_controller) # Enable the process function while held set_process(true) @@ -66,18 +69,20 @@ func pick_up(by, with_controller) -> void: # Called when the handle is dropped func let_go(_p_linear_velocity: Vector3, _p_angular_velocity: Vector3) -> void: # Call the base-class to perform the drop, but with no velocity - .let_go(Vector3.ZERO, Vector3.ZERO) + super(Vector3.ZERO, Vector3.ZERO) # Disable the process function as no-longer held set_process(false) # Snap the handle back to the origin - transform = Transform.IDENTITY + transform = Transform3D.IDENTITY + +# Check handle configurationv +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() -# Check handle configuration -func _get_configuration_warning() -> String: - if !transform.is_equal_approx(Transform.IDENTITY): - return "Interactable handle must have no transform from its parent handle origin" + if !transform.is_equal_approx(Transform3D.IDENTITY): + warnings.append("Interactable handle must have no transform from its parent handle origin") - return "" + return warnings diff --git a/addons/godot-xr-tools/interactables/interactable_handle.tscn b/addons/godot-xr-tools/interactables/interactable_handle.tscn index f4ae416a..35ad8e19 100644 --- a/addons/godot-xr-tools/interactables/interactable_handle.tscn +++ b/addons/godot-xr-tools/interactables/interactable_handle.tscn @@ -1,11 +1,10 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bddj5m7ull6g0"] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="1"] -[node name="InteractableHandle" type="RigidBody"] +[node name="InteractableHandle" type="RigidBody3D"] collision_layer = 262144 collision_mask = 0 -mode = 1 gravity_scale = 0.0 -script = ExtResource( 1 ) +script = ExtResource("1") picked_up_layer = 0 diff --git a/addons/godot-xr-tools/interactables/interactable_handle_driven.gd b/addons/godot-xr-tools/interactables/interactable_handle_driven.gd index d1c0c820..f9f5358e 100644 --- a/addons/godot-xr-tools/interactables/interactable_handle_driven.gd +++ b/addons/godot-xr-tools/interactables/interactable_handle_driven.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsInteractableHandleDriven -extends Spatial +extends Node3D ## XR Tools Interactable Handle Driven script @@ -24,9 +24,9 @@ signal released(interactable) var grabbed_handles := Array() -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableHandleDriven" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableHandleDriven" # Called when the node enters the scene tree for the first time. @@ -58,7 +58,7 @@ func _on_handle_dropped(handle: XRToolsInteractableHandle) -> void: grabbed_handles.erase(handle) # Disable processing when we drop the last handle - if grabbed_handles.empty(): + if grabbed_handles.is_empty(): # Disable physics processing set_process(false) @@ -71,9 +71,9 @@ func _hook_child_handles(node: Node) -> void: # If this node is a handle then hook its handle signals var handle := node as XRToolsInteractableHandle if handle: - if handle.connect("picked_up", self, "_on_handle_picked_up"): + if handle.picked_up.connect(_on_handle_picked_up): push_error("Unable to connect handle signal") - if handle.connect("dropped", self, "_on_handle_dropped"): + if handle.dropped.connect(_on_handle_dropped): push_error("Unable to connect handle signal") # Recurse into all children diff --git a/addons/godot-xr-tools/interactables/interactable_hinge.gd b/addons/godot-xr-tools/interactables/interactable_hinge.gd index c19b16a3..ce774a53 100644 --- a/addons/godot-xr-tools/interactables/interactable_hinge.gd +++ b/addons/godot-xr-tools/interactables/interactable_hinge.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsInteractableHinge extends XRToolsInteractableHandleDriven @@ -11,7 +11,7 @@ extends XRToolsInteractableHandleDriven ## The hinge rotates itelf around its local X axis, and so should be ## placed as a child of a node to translate and rotate as appropriate. ## -## The interactable hinge is not a [RigidBody], and as such will not react +## The interactable hinge is not a [RigidBody3D], and as such will not react ## to any collisions. @@ -20,47 +20,50 @@ signal hinge_moved(angle) ## Hinge minimum limit -export var hinge_limit_min : float = -45.0 setget _set_hinge_limit_min +@export var hinge_limit_min : float = -45.0: set = _set_hinge_limit_min ## Hinge maximum limit -export var hinge_limit_max : float = 45.0 setget _set_hinge_limit_max +@export var hinge_limit_max : float = 45.0: set = _set_hinge_limit_max ## Hinge step size (zero for no steps) -export var hinge_steps : float = 0.0 setget _set_hinge_steps +@export var hinge_steps : float = 0.0: set = _set_hinge_steps ## Hinge position -export var hinge_position : float = 0.0 setget _set_hinge_position +@export var hinge_position : float = 0.0: set = _set_hinge_position ## Default position -export var default_position : float = 0.0 setget _set_default_position +@export var default_position : float = 0.0: set = _set_default_position ## If true, the hinge moves to the default position when releases -export var default_on_release : bool = false +@export var default_on_release : bool = false # Hinge values in radians -onready var _hinge_limit_min_rad : float = deg2rad(hinge_limit_min) -onready var _hinge_limit_max_rad : float = deg2rad(hinge_limit_max) -onready var _hinge_steps_rad : float = deg2rad(hinge_steps) -onready var _hinge_position_rad : float = deg2rad(hinge_position) -onready var _default_position_rad : float = deg2rad(default_position) +@onready var _hinge_limit_min_rad : float = deg_to_rad(hinge_limit_min) +@onready var _hinge_limit_max_rad : float = deg_to_rad(hinge_limit_max) +@onready var _hinge_steps_rad : float = deg_to_rad(hinge_steps) +@onready var _hinge_position_rad : float = deg_to_rad(hinge_position) +@onready var _default_position_rad : float = deg_to_rad(default_position) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableHinge" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableHinge" or super(name) # Called when the node enters the scene tree for the first time. func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Set the initial position to match the initial hinge position value - transform = Transform( - Basis(Vector3(_hinge_position_rad, 0, 0)), + transform = Transform3D( + Basis.from_euler(Vector3(_hinge_position_rad, 0, 0)), Vector3.ZERO ) # Connect signals - if connect("released", self, "_on_hinge_released"): + if released.connect(_on_hinge_released): push_error("Cannot connect hinge released signal") @@ -70,9 +73,8 @@ func _process(_delta: float) -> void: var offset_sum := 0.0 for item in grabbed_handles: var handle := item as XRToolsInteractableHandle - var to_handle: Vector3 = global_transform.xform_inv(handle.global_transform.origin) - var to_handle_origin: Vector3 = global_transform.xform_inv( - handle.handle_origin.global_transform.origin) + var to_handle: Vector3 = handle.global_transform.origin * global_transform + var to_handle_origin: Vector3 = handle.handle_origin.global_transform.origin * global_transform to_handle.x = 0.0 to_handle_origin.x = 0.0 offset_sum += to_handle_origin.signed_angle_to(to_handle, Vector3.RIGHT) @@ -93,7 +95,7 @@ func move_hinge(position: float) -> void: # Update the current positon _hinge_position_rad = position - hinge_position = rad2deg(position) + hinge_position = rad_to_deg(position) # Emit the moved signal emit_signal("hinge_moved", hinge_position) @@ -108,33 +110,33 @@ func _on_hinge_released(_interactable: XRToolsInteractableHinge): # Called when hinge_limit_min is set externally func _set_hinge_limit_min(value: float) -> void: hinge_limit_min = value - _hinge_limit_min_rad = deg2rad(value) + _hinge_limit_min_rad = deg_to_rad(value) # Called when hinge_limit_max is set externally func _set_hinge_limit_max(value: float) -> void: hinge_limit_max = value - _hinge_limit_max_rad = deg2rad(value) + _hinge_limit_max_rad = deg_to_rad(value) # Called when hinge_steps is set externally func _set_hinge_steps(value: float) -> void: hinge_steps = value - _hinge_steps_rad = deg2rad(value) + _hinge_steps_rad = deg_to_rad(value) # Called when hinge_position is set externally func _set_hinge_position(value: float) -> void: - var position := deg2rad(value) + var position := deg_to_rad(value) position = _do_move_hinge(position) - hinge_position = rad2deg(position) + hinge_position = rad_to_deg(position) _hinge_position_rad = position # Called when default_position is set externally func _set_default_position(value: float) -> void: default_position = value - _default_position_rad = deg2rad(value) + _default_position_rad = deg_to_rad(value) # Do the hinge move @@ -148,7 +150,7 @@ func _do_move_hinge(position: float) -> float: # Move if necessary if position != _hinge_position_rad: - transform.basis = Basis(Vector3(position, 0.0, 0.0)) + transform.basis = Basis.from_euler(Vector3(position, 0.0, 0.0)) # Return the updated position return position diff --git a/addons/godot-xr-tools/interactables/interactable_joystick.gd b/addons/godot-xr-tools/interactables/interactable_joystick.gd index 92b91399..c33047fa 100644 --- a/addons/godot-xr-tools/interactables/interactable_joystick.gd +++ b/addons/godot-xr-tools/interactables/interactable_joystick.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsInteractableJoystick extends XRToolsInteractableHandleDriven @@ -11,7 +11,7 @@ extends XRToolsInteractableHandleDriven ## The joystick rotates itelf around its local X/Y axes, and so should be ## placed as a child of a node to translate and rotate as appropriate. ## -## The interactable joystick is not a [RigidBody], and as such will not react +## The interactable joystick is not a [RigidBody3D], and as such will not react ## to any collisions. @@ -27,66 +27,69 @@ const VECTOR_YZ := Vector3(0.0, 1.0, 1.0) ## Joystick X minimum limit -export var joystick_x_limit_min : float = -45.0 setget _set_joystick_x_limit_min +@export var joystick_x_limit_min : float = -45.0: set = _set_joystick_x_limit_min ## Joystick X maximum limit -export var joystick_x_limit_max : float = 45.0 setget _set_joystick_x_limit_max +@export var joystick_x_limit_max : float = 45.0: set = _set_joystick_x_limit_max ## Joystick Y minimum limit -export var joystick_y_limit_min : float = -45.0 setget _set_joystick_y_limit_min +@export var joystick_y_limit_min : float = -45.0: set = _set_joystick_y_limit_min ## Joystick Y maximum limit -export var joystick_y_limit_max : float = 45.0 setget _set_joystick_y_limit_max +@export var joystick_y_limit_max : float = 45.0: set = _set_joystick_y_limit_max ## Joystick X step size (zero for no steps) -export var joystick_x_steps : float = 0.0 setget _set_joystick_x_steps +@export var joystick_x_steps : float = 0.0: set = _set_joystick_x_steps ## Joystick Y step size (zero for no steps) -export var joystick_y_steps : float = 0.0 setget _set_joystick_y_steps +@export var joystick_y_steps : float = 0.0: set = _set_joystick_y_steps ## Joystick X position -export var joystick_x_position : float = 0.0 setget _set_joystick_x_position +@export var joystick_x_position : float = 0.0: set = _set_joystick_x_position ## Joystick Y position -export var joystick_y_position : float = 0.0 setget _set_joystick_y_position +@export var joystick_y_position : float = 0.0: set = _set_joystick_y_position ## Default X position -export var default_x_position : float = 0.0 setget _set_default_x_position +@export var default_x_position : float = 0.0: set = _set_default_x_position ## Default Y position -export var default_y_position : float = 0.0 setget _set_default_y_position +@export var default_y_position : float = 0.0: set = _set_default_y_position ## If true, the joystick moves to the default position when released -export var default_on_release : bool = false +@export var default_on_release : bool = false # Joystick values in radians -onready var _joystick_x_limit_min_rad : float = deg2rad(joystick_x_limit_min) -onready var _joystick_x_limit_max_rad : float = deg2rad(joystick_x_limit_max) -onready var _joystick_y_limit_min_rad : float = deg2rad(joystick_y_limit_min) -onready var _joystick_y_limit_max_rad : float = deg2rad(joystick_y_limit_max) -onready var _joystick_x_steps_rad : float = deg2rad(joystick_x_steps) -onready var _joystick_y_steps_rad : float = deg2rad(joystick_y_steps) -onready var _joystick_x_position_rad : float = deg2rad(joystick_x_position) -onready var _joystick_y_position_rad : float = deg2rad(joystick_y_position) -onready var _default_x_position_rad : float = deg2rad(default_x_position) -onready var _default_y_position_rad : float = deg2rad(default_y_position) +@onready var _joystick_x_limit_min_rad : float = deg_to_rad(joystick_x_limit_min) +@onready var _joystick_x_limit_max_rad : float = deg_to_rad(joystick_x_limit_max) +@onready var _joystick_y_limit_min_rad : float = deg_to_rad(joystick_y_limit_min) +@onready var _joystick_y_limit_max_rad : float = deg_to_rad(joystick_y_limit_max) +@onready var _joystick_x_steps_rad : float = deg_to_rad(joystick_x_steps) +@onready var _joystick_y_steps_rad : float = deg_to_rad(joystick_y_steps) +@onready var _joystick_x_position_rad : float = deg_to_rad(joystick_x_position) +@onready var _joystick_y_position_rad : float = deg_to_rad(joystick_y_position) +@onready var _default_x_position_rad : float = deg_to_rad(default_x_position) +@onready var _default_y_position_rad : float = deg_to_rad(default_y_position) -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableJoystick" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableJoystick" or super(name) # Called when the node enters the scene tree for the first time. func _ready(): + # In Godot 4 we must now manually call our super class ready function + super() + # Set the initial position to match the initial joystick position value - transform = Transform( - Basis(Vector3(_joystick_y_position_rad, _joystick_x_position_rad, 0)), + transform = Transform3D( + Basis.from_euler(Vector3(_joystick_y_position_rad, _joystick_x_position_rad, 0)), Vector3.ZERO) # Connect signals - if connect("released", self, "_on_joystick_released"): + if released.connect(_on_joystick_released): push_error("Cannot connect joystick released signal") @@ -97,7 +100,7 @@ func _process(_delta: float) -> void: return # Skip if no handles grabbed - if grabbed_handles.empty(): + if grabbed_handles.is_empty(): return # Get the total handle angular offsets @@ -105,9 +108,8 @@ func _process(_delta: float) -> void: var offset_y_sum := 0.0 for item in grabbed_handles: var handle := item as XRToolsInteractableHandle - var to_handle: Vector3 = global_transform.xform_inv(handle.global_transform.origin) - var to_handle_origin: Vector3 = global_transform.xform_inv( - handle.handle_origin.global_transform.origin) + var to_handle: Vector3 = handle.global_transform.origin * global_transform + var to_handle_origin: Vector3 = handle.handle_origin.global_transform.origin * global_transform var to_handle_x := to_handle * VECTOR_XZ var to_handle_origin_x := to_handle_origin * VECTOR_XZ @@ -137,8 +139,8 @@ func move_joystick(position_x: float, position_y: float) -> void: # Update the current positon _joystick_x_position_rad = position.x _joystick_y_position_rad = position.y - joystick_x_position = rad2deg(position.x) - joystick_y_position = rad2deg(position.y) + joystick_x_position = rad_to_deg(position.x) + joystick_y_position = rad_to_deg(position.y) # Emit the joystick signal emit_signal("joystick_moved", joystick_x_position, joystick_y_position) @@ -153,65 +155,65 @@ func _on_joystick_released(_interactable: XRToolsInteractableJoystick): # Called when joystick_x_limit_min is set externally func _set_joystick_x_limit_min(value: float) -> void: joystick_x_limit_min = value - _joystick_x_limit_min_rad = deg2rad(value) + _joystick_x_limit_min_rad = deg_to_rad(value) # Called when joystick_y_limit_min is set externally func _set_joystick_y_limit_min(value: float) -> void: joystick_y_limit_min = value - _joystick_y_limit_min_rad = deg2rad(value) + _joystick_y_limit_min_rad = deg_to_rad(value) # Called when joystick_x_limit_max is set externally func _set_joystick_x_limit_max(value: float) -> void: joystick_x_limit_max = value - _joystick_x_limit_max_rad = deg2rad(value) + _joystick_x_limit_max_rad = deg_to_rad(value) # Called when joystick_y_limit_max is set externally func _set_joystick_y_limit_max(value: float) -> void: joystick_y_limit_max = value - _joystick_y_limit_max_rad = deg2rad(value) + _joystick_y_limit_max_rad = deg_to_rad(value) # Called when joystick_x_steps is set externally func _set_joystick_x_steps(value: float) -> void: joystick_x_steps = value - _joystick_x_steps_rad = deg2rad(value) + _joystick_x_steps_rad = deg_to_rad(value) # Called when joystick_y_steps is set externally func _set_joystick_y_steps(value: float) -> void: joystick_y_steps = value - _joystick_y_steps_rad = deg2rad(value) + _joystick_y_steps_rad = deg_to_rad(value) # Called when joystick_x_position is set externally func _set_joystick_x_position(value: float) -> void: - var position := Vector2(deg2rad(value), _joystick_y_position_rad) + var position := Vector2(deg_to_rad(value), _joystick_y_position_rad) position = _do_move_joystick(position) - joystick_x_position = rad2deg(position.x) + joystick_x_position = rad_to_deg(position.x) _joystick_x_position_rad = position.x # Called when joystick_y_position is set externally func _set_joystick_y_position(value: float) -> void: - var position := Vector2(_joystick_x_position_rad, deg2rad(value)) + var position := Vector2(_joystick_x_position_rad, deg_to_rad(value)) position = _do_move_joystick(position) - joystick_y_position = rad2deg(position.y) + joystick_y_position = rad_to_deg(position.y) _joystick_y_position_rad = position.y # Called when default_x_position is set externally func _set_default_x_position(value: float) -> void: default_x_position = value - _default_x_position_rad = deg2rad(value) + _default_x_position_rad = deg_to_rad(value) # Called when default_y_position is set externally func _set_default_y_position(value: float) -> void: default_y_position = value - _default_y_position_rad = deg2rad(value) + _default_y_position_rad = deg_to_rad(value) # Do the joystick move @@ -228,7 +230,7 @@ func _do_move_joystick(position: Vector2) -> Vector2: # Move if necessary if position.x != _joystick_x_position_rad or position.y != _joystick_y_position_rad: - transform.basis = Basis(Vector3(position.y, position.x, 0.0)) + transform.basis = Basis.from_euler(Vector3(position.y, position.x, 0.0)) # Return the updated position return position diff --git a/addons/godot-xr-tools/interactables/interactable_slider.gd b/addons/godot-xr-tools/interactables/interactable_slider.gd index 229119d8..5faf517e 100644 --- a/addons/godot-xr-tools/interactables/interactable_slider.gd +++ b/addons/godot-xr-tools/interactables/interactable_slider.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsInteractableSlider extends XRToolsInteractableHandleDriven @@ -11,7 +11,7 @@ extends XRToolsInteractableHandleDriven ## The slider translates itelf along its local X axis, and so should be ## placed as a child of a node to translate and rotate as appropriate. ## -## The interactable slider is not a [RigidBody], and as such will not react +## The interactable slider is not a [RigidBody3D], and as such will not react ## to any collisions. @@ -20,39 +20,42 @@ signal slider_moved(position) ## Slider minimum limit -export var slider_limit_min : float = 0.0 +@export var slider_limit_min : float = 0.0 ## Slider maximum limit -export var slider_limit_max : float = 1.0 +@export var slider_limit_max : float = 1.0 ## Slider step size (zero for no steps) -export var slider_steps : float = 0.0 +@export var slider_steps : float = 0.0 ## Slider position -export var slider_position : float = 0.0 setget _set_slider_position +@export var slider_position : float = 0.0: set = _set_slider_position ## Default position -export var default_position : float = 0.0 +@export var default_position : float = 0.0 ## If true, the slider moves to the default position when released -export var default_on_release : bool = false +@export var default_on_release : bool = false -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableSlider" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableSlider" or super(name) # Called when the node enters the scene tree for the first time. func _ready() -> void: + # In Godot 4 we must now manually call our super class ready function + super() + # Set the initial position to match the initial slider position value - transform = Transform( + transform = Transform3D( Basis.IDENTITY, Vector3(slider_position, 0.0, 0.0) ) # Connect signals - if connect("released", self, "_on_slider_released"): + if released.connect(_on_slider_released): push_error("Cannot connect slider released signal") @@ -65,7 +68,7 @@ func _process(_delta: float) -> void: offset_sum += handle.global_transform.origin - handle.handle_origin.global_transform.origin # Rotate the offset sum vector from global into local coordinate space - offset_sum = global_transform.basis.xform_inv(offset_sum) + offset_sum = offset_sum * global_transform.basis # Get the average displacement in the X axis var offset := offset_sum.x / grabbed_handles.size() diff --git a/addons/godot-xr-tools/interactables/interactable_slider.tscn b/addons/godot-xr-tools/interactables/interactable_slider.tscn index e9cc7679..f864adcc 100644 --- a/addons/godot-xr-tools/interactables/interactable_slider.tscn +++ b/addons/godot-xr-tools/interactables/interactable_slider.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://b0r6edl74ddo7"] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" id="1"] -[node name="InteractableSlider" type="Spatial"] -script = ExtResource( 1 ) +[node name="InteractableSlider" type="Node3D"] +script = ExtResource("1") diff --git a/addons/godot-xr-tools/materials/capsule.tres b/addons/godot-xr-tools/materials/capsule.tres index feaeba31..a4e004f5 100644 --- a/addons/godot-xr-tools/materials/capsule.tres +++ b/addons/godot-xr-tools/materials/capsule.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpatialMaterial" format=2] +[gd_resource type="StandardMaterial3D" format=2] [resource] flags_transparent = true diff --git a/addons/godot-xr-tools/materials/highlight.tres b/addons/godot-xr-tools/materials/highlight.tres index d694cbe1..d7367129 100644 --- a/addons/godot-xr-tools/materials/highlight.tres +++ b/addons/godot-xr-tools/materials/highlight.tres @@ -1,75 +1,69 @@ -[gd_resource type="ShaderMaterial" load_steps=7 format=2] +[gd_resource type="ShaderMaterial" load_steps=7 format=3 uid="uid://dyuaw57o8y3i"] -[sub_resource type="VisualShaderNodeColorUniform" id=1] -uniform_name = "Color" +[sub_resource type="VisualShaderNodeColorParameter" id="VisualShaderNodeColorParameter_nl6jr"] +parameter_name = "Color" -[sub_resource type="VisualShaderNodeVectorOp" id=2] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0.5, 0.5, 0.5 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_8dcmn"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.5, 0.5, 0.5)] operator = 2 -[sub_resource type="VisualShaderNodeScalarConstant" id=3] +[sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_2331j"] constant = 0.1 -[sub_resource type="VisualShaderNodeFresnel" id=4] +[sub_resource type="VisualShaderNodeFresnel" id="VisualShaderNodeFresnel_tghd5"] -[sub_resource type="VisualShaderNodeVectorOp" id=5] +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_wy3ip"] operator = 2 -[sub_resource type="VisualShader" id=6] +[sub_resource type="VisualShader" id="VisualShader_wb0u4"] code = "shader_type spatial; -render_mode specular_schlick_ggx, async_visible; +uniform vec4 Color : source_color; -uniform vec4 Color : hint_color; - -void vertex() { -// Output:0 - -} - void fragment() { -// ColorUniform:2 - vec3 n_out2p0 = Color.rgb; - float n_out2p1 = Color.a; +// ColorParameter:2 + vec4 n_out2p0 = Color; + -// Scalar:4 +// FloatConstant:4 float n_out4p0 = 0.100000; + // VectorOp:3 - vec3 n_out3p0 = n_out2p0 * vec3(n_out4p0); + vec3 n_out3p0 = vec3(n_out2p0.xyz) * vec3(n_out4p0); + // Fresnel:5 float n_in5p3 = 1.00000; float n_out5p0 = pow(1.0 - clamp(dot(NORMAL, VIEW), 0.0, 1.0), n_in5p3); + // VectorOp:6 - vec3 n_out6p0 = n_out2p0 * vec3(n_out5p0); + vec3 n_out6p0 = vec3(n_out2p0.xyz) * vec3(n_out5p0); + // Output:0 ALBEDO = n_out3p0; EMISSION = n_out6p0; -} - -void light() { -// Output:0 } " -nodes/fragment/0/position = Vector2( 660, 60 ) -nodes/fragment/2/node = SubResource( 1 ) -nodes/fragment/2/position = Vector2( 40, 40 ) -nodes/fragment/3/node = SubResource( 2 ) -nodes/fragment/3/position = Vector2( 360, 60 ) -nodes/fragment/4/node = SubResource( 3 ) -nodes/fragment/4/position = Vector2( 20, 180 ) -nodes/fragment/5/node = SubResource( 4 ) -nodes/fragment/5/position = Vector2( 40, 340 ) -nodes/fragment/6/node = SubResource( 5 ) -nodes/fragment/6/position = Vector2( 360, 220 ) -nodes/fragment/connections = PoolIntArray( 2, 0, 3, 0, 3, 0, 0, 0, 4, 0, 3, 1, 2, 0, 6, 0, 5, 0, 6, 1, 6, 0, 0, 5 ) +nodes/fragment/0/position = Vector2(660, 60) +nodes/fragment/2/node = SubResource("VisualShaderNodeColorParameter_nl6jr") +nodes/fragment/2/position = Vector2(40, 40) +nodes/fragment/3/node = SubResource("VisualShaderNodeVectorOp_8dcmn") +nodes/fragment/3/position = Vector2(360, 60) +nodes/fragment/4/node = SubResource("VisualShaderNodeFloatConstant_2331j") +nodes/fragment/4/position = Vector2(20, 180) +nodes/fragment/5/node = SubResource("VisualShaderNodeFresnel_tghd5") +nodes/fragment/5/position = Vector2(40, 340) +nodes/fragment/6/node = SubResource("VisualShaderNodeVectorOp_wy3ip") +nodes/fragment/6/position = Vector2(360, 220) +nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 3, 0, 0, 0, 4, 0, 3, 1, 2, 0, 6, 0, 5, 0, 6, 1, 6, 0, 0, 5) [resource] -shader = SubResource( 6 ) -shader_param/Color = Color( 0.301961, 0.392157, 0.988235, 1 ) +render_priority = 0 +shader = SubResource("VisualShader_wb0u4") +shader_parameter/Color = Color(0.301961, 0.392157, 0.988235, 1) diff --git a/addons/godot-xr-tools/materials/pointer.tres b/addons/godot-xr-tools/materials/pointer.tres index da9fd0bd..ffa1437d 100644 --- a/addons/godot-xr-tools/materials/pointer.tres +++ b/addons/godot-xr-tools/materials/pointer.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpatialMaterial" format=2] +[gd_resource type="StandardMaterial3D" format=2] [resource] flags_unshaded = true diff --git a/addons/godot-xr-tools/materials/target.tres b/addons/godot-xr-tools/materials/target.tres index 71569029..48904d43 100644 --- a/addons/godot-xr-tools/materials/target.tres +++ b/addons/godot-xr-tools/materials/target.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] [ext_resource path="res://addons/godot-xr-tools/images/teleport_target.png" type="Texture" id=1] diff --git a/addons/godot-xr-tools/materials/teleport.shader b/addons/godot-xr-tools/materials/teleport.gdshader similarity index 77% rename from addons/godot-xr-tools/materials/teleport.shader rename to addons/godot-xr-tools/materials/teleport.gdshader index 4e914683..7a6503f2 100644 --- a/addons/godot-xr-tools/materials/teleport.shader +++ b/addons/godot-xr-tools/materials/teleport.gdshader @@ -4,8 +4,8 @@ render_mode unshaded, cull_disabled, skip_vertex_transform; uniform float scale_t = 0.2; uniform float length = 20.0; uniform float ws = 1.0; -uniform vec4 mix_color : hint_color; -uniform sampler2D arrow_texture : hint_albedo; +uniform vec4 mix_color : source_color; +uniform sampler2D arrow_texture : source_color; void vertex() { vec3 down = vec3(0.0, -1.0 / ws, 0.0); @@ -19,13 +19,13 @@ void vertex() { float t2 = t * t; // translate to our world vector - VERTEX = (WORLD_MATRIX * vec4(VERTEX, 1.0)).xyz; + VERTEX = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz; // and now create our arch VERTEX += down * t2; - // and apply our camera matrix - VERTEX = (INV_CAMERA_MATRIX * vec4(VERTEX, 1.0)).xyz; + // and apply our view matrix + VERTEX = (VIEW_MATRIX * vec4(VERTEX, 1.0)).xyz; } void fragment() { diff --git a/addons/godot-xr-tools/materials/teleport.tres b/addons/godot-xr-tools/materials/teleport.tres index 29439240..354e9c27 100644 --- a/addons/godot-xr-tools/materials/teleport.tres +++ b/addons/godot-xr-tools/materials/teleport.tres @@ -1,12 +1,13 @@ -[gd_resource type="ShaderMaterial" load_steps=3 format=2] +[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://bk72wfw25ff0v"] -[ext_resource path="res://addons/godot-xr-tools/materials/teleport.shader" type="Shader" id=1] -[ext_resource path="res://addons/godot-xr-tools/images/teleport_arrow.png" type="Texture" id=2] +[ext_resource type="Shader" path="res://addons/godot-xr-tools/materials/teleport.gdshader" id="1"] +[ext_resource type="Texture2D" uid="uid://ddoj6c345cb0c" path="res://addons/godot-xr-tools/images/teleport_arrow.png" id="2"] [resource] -shader = ExtResource( 1 ) -shader_param/scale_t = 0.2 -shader_param/length = 30.0 -shader_param/ws = 1.0 -shader_param/mix_color = Color( 0.176471, 0.313726, 0.862745, 1 ) -shader_param/arrow_texture = ExtResource( 2 ) +render_priority = 0 +shader = ExtResource("1") +shader_parameter/scale_t = 0.2 +shader_parameter/length = 30.0 +shader_parameter/ws = 1.0 +shader_parameter/mix_color = Color(0.176471, 0.313726, 0.862745, 1) +shader_parameter/arrow_texture = ExtResource("2") diff --git a/addons/godot-xr-tools/misc/arvr_helpers.gd b/addons/godot-xr-tools/misc/arvr_helpers.gd deleted file mode 100644 index ab178f3c..00000000 --- a/addons/godot-xr-tools/misc/arvr_helpers.gd +++ /dev/null @@ -1,135 +0,0 @@ -tool -class_name ARVRHelpers - - -## XR Tools Helper Rountines -## -## This script contains static functions to help find ARVR player nodes. -## -## As these functions are static, the caller must pass in a node located -## somewhere under the players [ARVROrigin]. - - -## Find the [ARVROrigin] node. -## -## This function searches for the [ARVROrigin] from the provided node. -## The caller may provide an optional path (relative to the node) to the -## [ARVROrigin] to support out-of-tree searches. -## -## The search is performed assuming the node is under the [ARVROrigin]. -static func get_arvr_origin(node: Node, path: NodePath = NodePath("")) -> ARVROrigin: - var origin: ARVROrigin - - # Try using the node path first - if path: - origin = node.get_node(path) as ARVROrigin - if origin: - return origin - - # Walk up the tree from the provided node looking for the origin - origin = XRTools.find_ancestor(node, "*", "ARVROrigin") - if origin: - return origin - - # We check our children but only one level - origin = XRTools.find_child(node, "*", "ARVROrigin", false) - if origin: - return origin - - # Could not find origin - return null - -## Find the [ARVRCamera] node. -## -## This function searches for the [ARVRCamera] from the provided node. -## The caller may provide an optional path (relative to the node) to the -## [ARVRCamera] to support out-of-tree searches. -## -## The search is performed assuming the node is under the [ARVROrigin]. -static func get_arvr_camera(node: Node, path: NodePath = NodePath("")) -> ARVRCamera: - var camera: ARVRCamera - - # Try using the node path first - if path: - camera = node.get_node(path) as ARVRCamera - if camera: - return camera - - # Get the origin - var origin := get_arvr_origin(node) - if !origin: - return null - - # Attempt to get by the default name - camera = origin.get_node_or_null("ARVRCamera") as ARVRCamera - if camera: - return camera - - # Search all children of the origin for the camera - camera = XRTools.find_child(origin, "*", "ARVRCamera", false) - if camera: - return camera - - # Could not find camera - return null - -## Find the [ARVRController] node. -## -## This function searches for the [ARVRController] from the provided node. -## The caller may provide an optional path (relative to the node) to the -## [ARVRController] to support out-of-tree searches. -## -## The search is performed assuming the node is under the [ARVRController]. -static func get_arvr_controller(node: Node, path: NodePath = NodePath("")) -> ARVRController: - var controller: ARVRController - - # Try using the node path first - if path: - controller = node.get_node(path) as ARVRController - if controller: - return controller - - # Search up from the node for the controller - return XRTools.find_ancestor(node, "*", "ARVRController") as ARVRController - -## Find the Left Hand Controller from a player node and an optional path -static func get_left_controller(node: Node, path: NodePath = NodePath("")) -> ARVRController: - return _get_controller(node, "LeftHandController", 1, path) - -## Find the Right Hand Controller from a player node and an optional path -static func get_right_controller(node: Node, path: NodePath = NodePath("")) -> ARVRController: - return _get_controller(node, "RightHandController", 2, path) - -# Find a controller given some search parameters -static func _get_controller( - var node: Node, - var default_name: String, - var id: int, - var path: NodePath) -> ARVRController: - var controller: ARVRController - - # Try using the node path first - if path: - controller = node.get_node(path) as ARVRController - if controller: - return controller - - # Get the origin - var origin := get_arvr_origin(node) - if !origin: - return null - - # Attempt to get by the default name - controller = origin.get_node_or_null(default_name) as ARVRController - if controller: - return controller - - # Search all children of the origin for the controller - for child in origin.get_children(): - controller = child as ARVRController - if controller and controller.controller_id == id: - return controller - - # Could not find the controller - return null - diff --git a/addons/godot-xr-tools/misc/hold_button.gd b/addons/godot-xr-tools/misc/hold_button.gd index 52296aff..80ad9bae 100644 --- a/addons/godot-xr-tools/misc/hold_button.gd +++ b/addons/godot-xr-tools/misc/hold_button.gd @@ -1,24 +1,24 @@ -tool +@tool class_name XRToolsHoldButton -extends Spatial +extends Node3D signal pressed # Enable our button -export var enabled : bool = false setget set_enabled +@export var enabled : bool = false: set = set_enabled -export (XRTools.Buttons) var activate_button : int = XRTools.Buttons.VR_TRIGGER +@export var activate_action : String = "trigger_click" # Countdown -export var hold_time : float = 2.0 +@export var hold_time : float = 2.0 # Color our our visualisation -export var color : Color = Color(1.0, 1.0, 1.0, 1.0) setget set_color +@export var color : Color = Color(1.0, 1.0, 1.0, 1.0): set = set_color # Size -export var size : Vector2 = Vector2(1.0, 1.0) setget set_size +@export var size : Vector2 = Vector2(1.0, 1.0): set = set_size var time_held = 0.0 @@ -26,14 +26,14 @@ var time_held = 0.0 var material : ShaderMaterial -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHoldButton" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHoldButton" # Called when the node enters the scene tree for the first time. func _ready(): - material = $Visualise.get_surface_material(0) + material = $Visualise.get_surface_override_material(0) if !Engine.is_editor_hint(): _set_time_held(0.0) @@ -50,13 +50,11 @@ func _process(delta): var button_pressed = false # we check all trackers - for i in ARVRServer.get_tracker_count(): - var tracker : ARVRPositionalTracker = ARVRServer.get_tracker(i) - if tracker.get_hand() != 0: - var joy_id = tracker.get_joy_id() - - if Input.is_joy_button_pressed(joy_id, activate_button): - button_pressed = true + var controllers = XRServer.get_trackers(XRServer.TRACKER_CONTROLLER) + for name in controllers: + var tracker : XRPositionalTracker = controllers[name] + if tracker.get_input(activate_action): + button_pressed = true if button_pressed: _set_time_held(time_held + delta) @@ -83,7 +81,7 @@ func _set_time_held(p_time_held): time_held = p_time_held if material: $Visualise.visible = time_held > 0.0 - material.set_shader_param("value", time_held/hold_time) + material.set_shader_parameter("value", time_held/hold_time) func set_size(p_size: Vector2): @@ -98,7 +96,7 @@ func _update_size(): mesh.size = size # updating the size will unset our material, so reset it - $Visualise.set_surface_material(0, material) + $Visualise.set_surface_override_material(0, material) func set_color(p_color: Color): @@ -108,4 +106,4 @@ func set_color(p_color: Color): func _update_color(): if material: - material.set_shader_param("albedo", color) + material.set_shader_parameter("albedo", color) diff --git a/addons/godot-xr-tools/misc/hold_button.tscn b/addons/godot-xr-tools/misc/hold_button.tscn index 6fd66782..2e690928 100644 --- a/addons/godot-xr-tools/misc/hold_button.tscn +++ b/addons/godot-xr-tools/misc/hold_button.tscn @@ -1,23 +1,23 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://cymteydkxagpp"] -[ext_resource path="res://addons/godot-xr-tools/misc/hold_button.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/misc/hold_button_visualshader.tres" type="Shader" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/misc/hold_button.gd" id="1"] +[ext_resource type="Shader" uid="uid://c6okm2ay0fkjf" path="res://addons/godot-xr-tools/misc/hold_button_visualshader.tres" id="2"] -[sub_resource type="QuadMesh" id=1] +[sub_resource type="QuadMesh" id="1"] resource_local_to_scene = true -[sub_resource type="ShaderMaterial" id=2] -resource_local_to_scene = true -shader = ExtResource( 2 ) -shader_param/albedo = Color( 1, 1, 1, 1 ) -shader_param/value = 0.2 -shader_param/fade = 0.05 -shader_param/radius = 0.8 -shader_param/width = 0.2 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tkbhq"] +render_priority = 0 +shader = ExtResource("2") +shader_parameter/albedo = Color(1, 1, 1, 1) +shader_parameter/fade = 0.05 +shader_parameter/radius = 0.8 +shader_parameter/value = 0.2 +shader_parameter/width = 0.2 -[node name="HoldButton" type="Spatial"] -script = ExtResource( 1 ) +[node name="HoldButton" type="Node3D"] +script = ExtResource("1") -[node name="Visualise" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) -material/0 = SubResource( 2 ) +[node name="Visualise" type="MeshInstance3D" parent="."] +mesh = SubResource("1") +surface_material_override/0 = SubResource("ShaderMaterial_tkbhq") diff --git a/addons/godot-xr-tools/misc/hold_button_visualshader.tres b/addons/godot-xr-tools/misc/hold_button_visualshader.tres index 22c5fd47..bddcbec9 100644 --- a/addons/godot-xr-tools/misc/hold_button_visualshader.tres +++ b/addons/godot-xr-tools/misc/hold_button_visualshader.tres @@ -1,110 +1,110 @@ -[gd_resource type="VisualShader" load_steps=28 format=2] +[gd_resource type="VisualShader" load_steps=28 format=3 uid="uid://c6okm2ay0fkjf"] -[sub_resource type="VisualShaderNodeScalarOp" id=1] +[sub_resource type="VisualShaderNodeFloatOp" id="1"] output_port_for_preview = 0 -default_input_values = [ 0, 0.0, 1, 0.1 ] +default_input_values = [0, 0.0, 1, 0.1] operator = 3 -[sub_resource type="VisualShaderNodeScalarUniform" id=2] -uniform_name = "width" +[sub_resource type="VisualShaderNodeFloatParameter" id="2"] +parameter_name = "width" -[sub_resource type="VisualShaderNodeScalarOp" id=11] +[sub_resource type="VisualShaderNodeFloatOp" id="11"] output_port_for_preview = 0 -default_input_values = [ 0, 1.0, 1, 0.0 ] +default_input_values = [0, 1.0, 1, 0.0] operator = 1 -[sub_resource type="VisualShaderNodeScalarOp" id=12] +[sub_resource type="VisualShaderNodeFloatOp" id="12"] output_port_for_preview = 0 operator = 1 -[sub_resource type="VisualShaderNodeScalarUniform" id=13] -uniform_name = "fade" +[sub_resource type="VisualShaderNodeFloatParameter" id="13"] +parameter_name = "fade" -[sub_resource type="VisualShaderNodeScalarOp" id=14] -default_input_values = [ 0, 0.0, 1, 2.0 ] +[sub_resource type="VisualShaderNodeFloatOp" id="14"] +default_input_values = [0, 0.0, 1, 2.0] operator = 3 -[sub_resource type="VisualShaderNodeVectorFunc" id=15] +[sub_resource type="VisualShaderNodeVectorFunc" id="15"] output_port_for_preview = 0 -[sub_resource type="VisualShaderNodeDotProduct" id=16] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, -1, 0 ) ] +[sub_resource type="VisualShaderNodeDotProduct" id="16"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0, -1, 0)] -[sub_resource type="VisualShaderNodeVectorOp" id=17] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, -1, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="17"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0, -1, 0)] operator = 8 -[sub_resource type="VisualShaderNodeColorUniform" id=3] -uniform_name = "albedo" +[sub_resource type="VisualShaderNodeColorParameter" id="3"] +parameter_name = "albedo" -[sub_resource type="VisualShaderNodeVectorDecompose" id=18] +[sub_resource type="VisualShaderNodeVectorDecompose" id="18"] -[sub_resource type="VisualShaderNodeIf" id=19] +[sub_resource type="VisualShaderNodeIf" id="19"] -[sub_resource type="VisualShaderNodeScalarOp" id=20] -default_input_values = [ 0, 6.28319, 1, 0.0 ] +[sub_resource type="VisualShaderNodeFloatOp" id="20"] +default_input_values = [0, 6.28319, 1, 0.0] operator = 1 -[sub_resource type="VisualShaderNodeScalarFunc" id=21] +[sub_resource type="VisualShaderNodeFloatFunc" id="21"] output_port_for_preview = 0 function = 4 -[sub_resource type="VisualShaderNodeScalarOp" id=22] +[sub_resource type="VisualShaderNodeFloatOp" id="22"] output_port_for_preview = 0 -default_input_values = [ 0, 0.0, 1, 6.28319 ] +default_input_values = [0, 0.0, 1, 6.28319] operator = 3 -[sub_resource type="VisualShaderNodeScalarUniform" id=23] -uniform_name = "value" +[sub_resource type="VisualShaderNodeFloatParameter" id="23"] +parameter_name = "value" -[sub_resource type="VisualShaderNodeScalarOp" id=24] +[sub_resource type="VisualShaderNodeFloatOp" id="24"] output_port_for_preview = 0 operator = 1 -[sub_resource type="VisualShaderNodeScalarOp" id=25] +[sub_resource type="VisualShaderNodeFloatOp" id="25"] output_port_for_preview = 0 operator = 3 -[sub_resource type="VisualShaderNodeScalarOp" id=26] +[sub_resource type="VisualShaderNodeFloatOp" id="26"] output_port_for_preview = 0 operator = 6 -[sub_resource type="VisualShaderNodeInput" id=4] +[sub_resource type="VisualShaderNodeInput" id="4"] output_port_for_preview = 0 input_name = "uv" -[sub_resource type="VisualShaderNodeScalarOp" id=27] -default_input_values = [ 0, 0.0, 1, 6.28319 ] +[sub_resource type="VisualShaderNodeFloatOp" id="27"] +default_input_values = [0, 0.0, 1, 6.28319] operator = 3 -[sub_resource type="VisualShaderNodeVectorOp" id=5] +[sub_resource type="VisualShaderNodeVectorOp" id="5"] output_port_for_preview = 0 -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 2, 2, 0 ) ] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(2, 2, 0)] operator = 2 -[sub_resource type="VisualShaderNodeVectorOp" id=6] +[sub_resource type="VisualShaderNodeVectorOp" id="6"] output_port_for_preview = 0 -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( -1, -1, 0 ) ] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(-1, -1, 0)] -[sub_resource type="VisualShaderNodeVectorLen" id=7] +[sub_resource type="VisualShaderNodeVectorLen" id="7"] output_port_for_preview = 0 -[sub_resource type="VisualShaderNodeScalarOp" id=8] +[sub_resource type="VisualShaderNodeFloatOp" id="8"] output_port_for_preview = 0 operator = 1 -[sub_resource type="VisualShaderNodeScalarUniform" id=9] -uniform_name = "radius" +[sub_resource type="VisualShaderNodeFloatParameter" id="9"] +parameter_name = "radius" -[sub_resource type="VisualShaderNodeScalarFunc" id=10] +[sub_resource type="VisualShaderNodeFloatFunc" id="10"] output_port_for_preview = 0 function = 12 [resource] code = "shader_type spatial; -render_mode specular_schlick_ggx, async_visible, unshaded; +render_mode unshaded; -uniform vec4 albedo : hint_color; +uniform vec4 albedo : source_color; uniform float value; uniform float fade; uniform float radius; @@ -112,54 +112,58 @@ uniform float width; -void vertex() { -// Output:0 - -} - void fragment() { -// ColorUniform:2 - vec3 n_out2p0 = albedo.rgb; - float n_out2p1 = albedo.a; +// ColorParameter:2 + vec4 n_out2p0 = albedo; + // Input:3 - vec3 n_out3p0 = vec3(UV, 0.0); + vec2 n_out3p0 = UV; + // VectorOp:4 vec3 n_in4p1 = vec3(2.00000, 2.00000, 0.00000); - vec3 n_out4p0 = n_out3p0 * n_in4p1; + vec3 n_out4p0 = vec3(n_out3p0, 0.0) * n_in4p1; + // VectorOp:5 vec3 n_in5p1 = vec3(-1.00000, -1.00000, 0.00000); vec3 n_out5p0 = n_out4p0 + n_in5p1; + // VectorFunc:17 vec3 n_out17p0 = normalize(n_out5p0); + // VectorOp:19 vec3 n_in19p1 = vec3(0.00000, -1.00000, 0.00000); vec3 n_out19p0 = cross(n_out17p0, n_in19p1); + // VectorDecompose:20 float n_out20p0 = n_out19p0.x; float n_out20p1 = n_out19p0.y; float n_out20p2 = n_out19p0.z; + // DotProduct:18 vec3 n_in18p1 = vec3(0.00000, -1.00000, 0.00000); float n_out18p0 = dot(n_out17p0, n_in18p1); -// ScalarFunc:24 + +// FloatFunc:24 float n_out24p0 = acos(n_out18p0); -// ScalarOp:23 + +// FloatOp:23 float n_in23p0 = 6.28319; float n_out23p0 = n_in23p0 - n_out24p0; + + vec3 n_out22p0; // If:22 float n_in22p1 = 0.00000; float n_in22p2 = 0.00001; - vec3 n_out22p0; if(abs(n_out20p2 - n_in22p1) < n_in22p2) { n_out22p0 = vec3(n_out24p0); @@ -173,124 +177,137 @@ void fragment() { n_out22p0 = vec3(n_out23p0); } -// ScalarOp:25 + +// FloatOp:25 float n_in25p1 = 6.28319; - float n_out25p0 = dot(n_out22p0, vec3(0.333333, 0.333333, 0.333333)) / n_in25p1; + float n_out25p0 = n_out22p0.x / n_in25p1; + -// ScalarUniform:26 +// FloatParameter:26 float n_out26p0 = value; -// ScalarOp:27 + +// FloatOp:27 float n_out27p0 = n_out25p0 - n_out26p0; -// ScalarUniform:14 + +// FloatParameter:14 float n_out14p0 = fade; -// ScalarOp:30 + +// FloatOp:30 float n_in30p1 = 6.28319; float n_out30p0 = n_out14p0 / n_in30p1; -// ScalarOp:28 + +// FloatOp:28 float n_out28p0 = n_out27p0 / n_out30p0; + // VectorLen:6 float n_out6p0 = length(n_out5p0); -// ScalarUniform:8 + +// FloatParameter:8 float n_out8p0 = radius; -// ScalarOp:7 + +// FloatOp:7 float n_out7p0 = n_out6p0 - n_out8p0; -// ScalarFunc:9 + +// FloatFunc:9 float n_out9p0 = abs(n_out7p0); -// ScalarUniform:11 + +// FloatParameter:11 float n_out11p0 = width; -// ScalarOp:15 + +// FloatOp:15 float n_in15p1 = 2.00000; float n_out15p0 = n_out11p0 / n_in15p1; -// ScalarOp:13 + +// FloatOp:13 float n_out13p0 = n_out9p0 - n_out15p0; -// ScalarOp:10 + +// FloatOp:10 float n_out10p0 = n_out13p0 / n_out14p0; -// ScalarOp:29 + +// FloatOp:29 float n_out29p0 = max(n_out28p0, n_out10p0); -// ScalarOp:12 + +// FloatOp:12 float n_in12p0 = 1.00000; float n_out12p0 = n_in12p0 - n_out29p0; + // Output:0 - ALBEDO = n_out2p0; + ALBEDO = vec3(n_out2p0.xyz); ALPHA = n_out12p0; -} - -void light() { -// Output:0 } " -graph_offset = Vector2( -115.723, -301.286 ) +graph_offset = Vector2(652.664, 119.317) flags/unshaded = true -nodes/fragment/0/position = Vector2( 1800, -40 ) -nodes/fragment/2/node = SubResource( 3 ) -nodes/fragment/2/position = Vector2( 1480, -200 ) -nodes/fragment/3/node = SubResource( 4 ) -nodes/fragment/3/position = Vector2( -220, 200 ) -nodes/fragment/4/node = SubResource( 5 ) -nodes/fragment/4/position = Vector2( -20, 200 ) -nodes/fragment/5/node = SubResource( 6 ) -nodes/fragment/5/position = Vector2( 180, 200 ) -nodes/fragment/6/node = SubResource( 7 ) -nodes/fragment/6/position = Vector2( 380, 200 ) -nodes/fragment/7/node = SubResource( 8 ) -nodes/fragment/7/position = Vector2( 580, 200 ) -nodes/fragment/8/node = SubResource( 9 ) -nodes/fragment/8/position = Vector2( 260, 440 ) -nodes/fragment/9/node = SubResource( 10 ) -nodes/fragment/9/position = Vector2( 780, 200 ) -nodes/fragment/10/node = SubResource( 1 ) -nodes/fragment/10/position = Vector2( 1200, 200 ) -nodes/fragment/11/node = SubResource( 2 ) -nodes/fragment/11/position = Vector2( 260, 600 ) -nodes/fragment/12/node = SubResource( 11 ) -nodes/fragment/12/position = Vector2( 1600, 60 ) -nodes/fragment/13/node = SubResource( 12 ) -nodes/fragment/13/position = Vector2( 1000, 200 ) -nodes/fragment/14/node = SubResource( 13 ) -nodes/fragment/14/position = Vector2( 260, 780 ) -nodes/fragment/15/node = SubResource( 14 ) -nodes/fragment/15/position = Vector2( 560, 600 ) -nodes/fragment/17/node = SubResource( 15 ) -nodes/fragment/17/position = Vector2( -380, -100 ) -nodes/fragment/18/node = SubResource( 16 ) -nodes/fragment/18/position = Vector2( -120, -40 ) -nodes/fragment/19/node = SubResource( 17 ) -nodes/fragment/19/position = Vector2( -120, -180 ) -nodes/fragment/20/node = SubResource( 18 ) -nodes/fragment/20/position = Vector2( 60, -180 ) -nodes/fragment/22/node = SubResource( 19 ) -nodes/fragment/22/position = Vector2( 620, -100 ) -nodes/fragment/23/node = SubResource( 20 ) -nodes/fragment/23/position = Vector2( 360, 40 ) -nodes/fragment/24/node = SubResource( 21 ) -nodes/fragment/24/position = Vector2( 60, -40 ) -nodes/fragment/25/node = SubResource( 22 ) -nodes/fragment/25/position = Vector2( 800, -100 ) -nodes/fragment/26/node = SubResource( 23 ) -nodes/fragment/26/position = Vector2( 660, -360 ) -nodes/fragment/27/node = SubResource( 24 ) -nodes/fragment/27/position = Vector2( 1000, -100 ) -nodes/fragment/28/node = SubResource( 25 ) -nodes/fragment/28/position = Vector2( 1200, -100 ) -nodes/fragment/29/node = SubResource( 26 ) -nodes/fragment/29/position = Vector2( 1400, 60 ) -nodes/fragment/30/node = SubResource( 27 ) -nodes/fragment/30/position = Vector2( 1000, -240 ) -nodes/fragment/connections = PoolIntArray( 2, 0, 0, 0, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 7, 0, 8, 0, 7, 1, 7, 0, 9, 0, 12, 0, 0, 1, 9, 0, 13, 0, 13, 0, 10, 0, 14, 0, 10, 1, 11, 0, 15, 0, 15, 0, 13, 1, 5, 0, 17, 0, 17, 0, 18, 0, 17, 0, 19, 0, 19, 0, 20, 0, 18, 0, 24, 0, 24, 0, 23, 1, 22, 0, 25, 0, 20, 2, 22, 0, 24, 0, 22, 3, 23, 0, 22, 4, 24, 0, 22, 5, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 28, 0, 28, 0, 29, 0, 10, 0, 29, 1, 29, 0, 12, 1, 14, 0, 30, 0, 30, 0, 28, 1, 2, 0, 0, 0, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 7, 0, 8, 0, 7, 1, 7, 0, 9, 0, 12, 0, 0, 1, 9, 0, 13, 0, 13, 0, 10, 0, 14, 0, 10, 1, 11, 0, 15, 0, 15, 0, 13, 1, 5, 0, 17, 0, 17, 0, 18, 0, 17, 0, 19, 0, 19, 0, 20, 0, 18, 0, 24, 0, 24, 0, 23, 1, 22, 0, 25, 0, 20, 2, 22, 0, 24, 0, 22, 3, 23, 0, 22, 4, 24, 0, 22, 5, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 28, 0, 28, 0, 29, 0, 10, 0, 29, 1, 29, 0, 12, 1, 14, 0, 30, 0, 30, 0, 28, 1 ) +nodes/fragment/0/position = Vector2(1800, -40) +nodes/fragment/2/node = SubResource("3") +nodes/fragment/2/position = Vector2(1480, -200) +nodes/fragment/3/node = SubResource("4") +nodes/fragment/3/position = Vector2(-220, 200) +nodes/fragment/4/node = SubResource("5") +nodes/fragment/4/position = Vector2(-20, 200) +nodes/fragment/5/node = SubResource("6") +nodes/fragment/5/position = Vector2(180, 200) +nodes/fragment/6/node = SubResource("7") +nodes/fragment/6/position = Vector2(380, 200) +nodes/fragment/7/node = SubResource("8") +nodes/fragment/7/position = Vector2(580, 200) +nodes/fragment/8/node = SubResource("9") +nodes/fragment/8/position = Vector2(260, 440) +nodes/fragment/9/node = SubResource("10") +nodes/fragment/9/position = Vector2(780, 200) +nodes/fragment/10/node = SubResource("1") +nodes/fragment/10/position = Vector2(1200, 200) +nodes/fragment/11/node = SubResource("2") +nodes/fragment/11/position = Vector2(260, 600) +nodes/fragment/12/node = SubResource("11") +nodes/fragment/12/position = Vector2(1600, 60) +nodes/fragment/13/node = SubResource("12") +nodes/fragment/13/position = Vector2(1000, 200) +nodes/fragment/14/node = SubResource("13") +nodes/fragment/14/position = Vector2(260, 780) +nodes/fragment/15/node = SubResource("14") +nodes/fragment/15/position = Vector2(560, 600) +nodes/fragment/17/node = SubResource("15") +nodes/fragment/17/position = Vector2(-380, -100) +nodes/fragment/18/node = SubResource("16") +nodes/fragment/18/position = Vector2(-120, -40) +nodes/fragment/19/node = SubResource("17") +nodes/fragment/19/position = Vector2(-120, -180) +nodes/fragment/20/node = SubResource("18") +nodes/fragment/20/position = Vector2(60, -180) +nodes/fragment/22/node = SubResource("19") +nodes/fragment/22/position = Vector2(620, -100) +nodes/fragment/23/node = SubResource("20") +nodes/fragment/23/position = Vector2(360, 40) +nodes/fragment/24/node = SubResource("21") +nodes/fragment/24/position = Vector2(60, -40) +nodes/fragment/25/node = SubResource("22") +nodes/fragment/25/position = Vector2(800, -100) +nodes/fragment/26/node = SubResource("23") +nodes/fragment/26/position = Vector2(660, -360) +nodes/fragment/27/node = SubResource("24") +nodes/fragment/27/position = Vector2(1000, -100) +nodes/fragment/28/node = SubResource("25") +nodes/fragment/28/position = Vector2(1200, -100) +nodes/fragment/29/node = SubResource("26") +nodes/fragment/29/position = Vector2(1400, 60) +nodes/fragment/30/node = SubResource("27") +nodes/fragment/30/position = Vector2(1000, -240) +nodes/fragment/connections = PackedInt32Array(2, 0, 0, 0, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 7, 0, 8, 0, 7, 1, 7, 0, 9, 0, 12, 0, 0, 1, 9, 0, 13, 0, 13, 0, 10, 0, 14, 0, 10, 1, 11, 0, 15, 0, 15, 0, 13, 1, 5, 0, 17, 0, 17, 0, 18, 0, 17, 0, 19, 0, 19, 0, 20, 0, 18, 0, 24, 0, 24, 0, 23, 1, 22, 0, 25, 0, 20, 2, 22, 0, 24, 0, 22, 3, 23, 0, 22, 4, 24, 0, 22, 5, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 28, 0, 28, 0, 29, 0, 10, 0, 29, 1, 29, 0, 12, 1, 14, 0, 30, 0, 30, 0, 28, 1) diff --git a/addons/godot-xr-tools/misc/move_to.gd b/addons/godot-xr-tools/misc/move_to.gd index bf44dbc5..2b907028 100644 --- a/addons/godot-xr-tools/misc/move_to.gd +++ b/addons/godot-xr-tools/misc/move_to.gd @@ -13,16 +13,16 @@ signal move_complete # Spatial to control -var _control: Spatial +var _control: Node3D # Spatial representing the target -var _target: Spatial +var _target: Node3D # Starting transform -var _start: Transform +var _start: Transform3D # Target offset -var _offset: Transform +var _offset: Transform3D # Move duration var _duration: float @@ -31,9 +31,9 @@ var _duration: float var _time: float = 0.0 -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsMoveTo" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsMoveTo" ## Initialize the XRToolsMoveTo @@ -69,7 +69,7 @@ func _process(delta: float) -> void: ## Start the move -func start(control: Spatial, target: Spatial, offset: Transform, speed: float) -> void: +func start(control: Node3D, target: Node3D, offset: Transform3D, speed: float) -> void: # Save the control and target _control = control _target = target diff --git a/addons/godot-xr-tools/misc/velocity_averager.gd b/addons/godot-xr-tools/misc/velocity_averager.gd index 26bbe334..624bde33 100644 --- a/addons/godot-xr-tools/misc/velocity_averager.gd +++ b/addons/godot-xr-tools/misc/velocity_averager.gd @@ -25,7 +25,7 @@ var _linear_distances := Array() var _angular_distances := Array() # Last transform -var _last_transform := Transform() +var _last_transform := Transform3D() # Has last transform flag var _has_last_transform := false @@ -59,7 +59,7 @@ func add_distance(delta: float, linear_distance: Vector3, angular_distance: Vect _angular_distances.pop_front() ## Add a transform to the averager -func add_transform(delta: float, transform: Transform): +func add_transform(delta: float, transform: Transform3D): # Handle saving the first transform if !_has_last_transform: _last_transform = transform diff --git a/addons/godot-xr-tools/misc/velocity_averager_linear.gd b/addons/godot-xr-tools/misc/velocity_averager_linear.gd index f8feacd8..f69bf7f4 100644 --- a/addons/godot-xr-tools/misc/velocity_averager_linear.gd +++ b/addons/godot-xr-tools/misc/velocity_averager_linear.gd @@ -23,7 +23,7 @@ var _time_deltas := Array() var _linear_distances := Array() # Last transform -var _last_transform := Transform() +var _last_transform := Transform3D() # Has last transform flag var _has_last_transform := false @@ -55,7 +55,7 @@ func add_velocity(delta: float, linear_velocity: Vector3): add_distance(delta, linear_velocity * delta) ## Add a transform to the averager -func add_transform(delta: float, transform: Transform): +func add_transform(delta: float, transform: Transform3D): # Handle saving the first transform if !_has_last_transform: _last_transform = transform diff --git a/addons/godot-xr-tools/misc/vr_common_shader_cache.gd b/addons/godot-xr-tools/misc/vr_common_shader_cache.gd index f13fe4b1..d7c96096 100644 --- a/addons/godot-xr-tools/misc/vr_common_shader_cache.gd +++ b/addons/godot-xr-tools/misc/vr_common_shader_cache.gd @@ -1,4 +1,4 @@ -extends Spatial +extends Node3D signal cooldown_finished diff --git a/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn b/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn index 74336d56..8c9ab26e 100644 --- a/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn +++ b/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn @@ -1,39 +1,39 @@ -[gd_scene load_steps=8 format=2] - -[ext_resource path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/materials/teleport.tres" type="Material" id=2] -[ext_resource path="res://addons/godot-xr-tools/materials/target.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/materials/capsule.tres" type="Material" id=4] -[ext_resource path="res://addons/godot-xr-tools/materials/pointer.tres" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/materials/highlight.tres" type="Material" id=6] - -[sub_resource type="PlaneMesh" id=1] -size = Vector2( 0.001, 0.001 ) - -[node name="VRCommonShaderCache" type="Spatial"] -script = ExtResource( 1 ) - -[node name="teleport" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 2 ) - -[node name="target" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 3 ) - -[node name="capsule" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 4 ) - -[node name="pointer" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 5 ) - -[node name="highlight" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 6 ) +[gd_scene load_steps=8 format=3] + +[ext_resource type="Script" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.gd" id="1"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/teleport.tres" id="2_6822k"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/target.tres" id="3_agvdv"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/capsule.tres" id="4_gxjsg"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/pointer.tres" id="5_12251"] +[ext_resource type="Material" uid="uid://dyuaw57o8y3i" path="res://addons/godot-xr-tools/materials/highlight.tres" id="6_ld6la"] + +[sub_resource type="PlaneMesh" id="1"] +size = Vector2(0.001, 0.001) + +[node name="VRCommonShaderCache" type="Node3D"] +script = ExtResource("1") + +[node name="teleport" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2_6822k") + +[node name="target" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("3_agvdv") + +[node name="capsule" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("4_gxjsg") + +[node name="pointer" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("5_12251") + +[node name="highlight" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("6_ld6la") diff --git a/addons/godot-xr-tools/misc/xr_helpers.gd b/addons/godot-xr-tools/misc/xr_helpers.gd new file mode 100644 index 00000000..603f7c34 --- /dev/null +++ b/addons/godot-xr-tools/misc/xr_helpers.gd @@ -0,0 +1,137 @@ +@tool +class_name XRHelpers + + +## XR Tools Helper Rountines +## +## This script contains static functions to help find XR player nodes. +## +## As these functions are static, the caller must pass in a node located +## somewhere under the players [XROrigin3D]. + + +## Find the [XROrigin3D] node. +## +## This function searches for the [XROrigin3D] from the provided node. +## The caller may provide an optional path (relative to the node) to the +## [XROrigin3D] to support out-of-tree searches. +## +## The search is performed assuming the node is under the [XROrigin3D]. +static func get_xr_origin(node: Node, path: NodePath = NodePath()) -> XROrigin3D: + var origin: XROrigin3D + + # Try using the node path first + if path: + origin = node.get_node(path) as XROrigin3D + if origin: + return origin + + # Walk up the tree from the provided node looking for the origin + origin = XRTools.find_xr_ancestor(node, "*", "XROrigin3D") + if origin: + return origin + + # We check our children but only one level + origin = XRTools.find_xr_child(node, "*", "XROrigin3D", false) + if origin: + return origin + + # Could not find origin + return null + +## Find the [XRCamera3D] node. +## +## This function searches for the [XRCamera3D] from the provided node. +## The caller may provide an optional path (relative to the node) to the +## [XRCamera3D] to support out-of-tree searches. +## +## The search is performed assuming the node is under the [XROrigin3D]. +static func get_xr_camera(node: Node, path: NodePath = NodePath()) -> XRCamera3D: + var camera: XRCamera3D + + # Try using the node path first + if path: + camera = node.get_node(path) as XRCamera3D + if camera: + return camera + + # Get the origin + var origin := get_xr_origin(node) + if !origin: + return null + + # Attempt to get by the default name + camera = origin.get_node_or_null("Camera") as XRCamera3D + if camera: + return camera + + # Search all children of the origin for the camera + camera = XRTools.find_xr_child(origin, "*", "XRCamera3D", false) + if camera: + return camera + + # Could not find camera + return null + +## Find the [XRController3D] node. +## +## This function searches for the [XRController3D] from the provided node. +## The caller may provide an optional path (relative to the node) to the +## [XRController3D] to support out-of-tree searches. +## +## The search is performed assuming the node is under the [XRController3D]. +static func get_xr_controller(node: Node, path: NodePath = NodePath()) -> XRController3D: + var controller: XRController3D + + # Try using the node path first + if path: + controller = node.get_node(path) as XRController3D + if controller: + return controller + + # Search up from the node for the controller + return XRTools.find_xr_ancestor(node, "*", "XRController3D") as XRController3D + +## Find the Left Hand [XRController3D] from a player node and an optional path +static func get_left_controller(node: Node, path: NodePath = NodePath()) -> XRController3D: + return _get_controller(node, "LeftHandController", "left_hand", path) + + +## Find the Right Hand [XRController3D] from a player node and an optional path +static func get_right_controller(node: Node, path: NodePath = NodePath()) -> XRController3D: + return _get_controller(node, "RightHandController", "right_hand", path) + + +## Find an [XRController3D] given some search parameters +static func _get_controller( + node: Node, + default_name: String, + tracker: String, + path: NodePath) -> XRController3D: + var controller: XRController3D + + # Try using the node path first + if path: + controller = node.get_node(path) as XRController3D + if controller: + return controller + + # Get the origin + var origin := get_xr_origin(node) + if !origin: + return null + + # Attempt to get by the default name + controller = origin.get_node_or_null(default_name) as XRController3D + if controller: + return controller + + # Search all children of the origin for the controller + for child in origin.get_children(): + controller = child as XRController3D + if controller and controller.tracker == tracker: + return controller + + # Could not find the controller + return null + diff --git a/addons/godot-xr-tools/objects/climbable.gd b/addons/godot-xr-tools/objects/climbable.gd index 6255aa71..e680d63f 100644 --- a/addons/godot-xr-tools/objects/climbable.gd +++ b/addons/godot-xr-tools/objects/climbable.gd @@ -1,5 +1,7 @@ -class_name XRToolsClimbable, "res://addons/godot-xr-tools/editor/icons/hand.svg" -extends Spatial +@tool +@icon("res://addons/godot-xr-tools/editor/icons/hand.svg") +class_name XRToolsClimbable +extends Node3D ## XR Tools Climbable Object @@ -17,16 +19,16 @@ var press_to_hold : bool = true var grab_locations := {} -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsClimbable" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsClimbable" # Called by XRToolsFunctionPickup func is_picked_up() -> bool: return false -func can_pick_up(_by: Spatial) -> bool: +func can_pick_up(_by: Node3D) -> bool: return true # Called by XRToolsFunctionPickup when user presses the action button while holding this object @@ -42,7 +44,7 @@ func decrease_is_closest(): pass # Called by XRToolsFunctionPickup when this is picked up by a controller -func pick_up(by: Spatial, _with_controller: ARVRController) -> void: +func pick_up(by: Node3D, _with_controller: XRController3D) -> void: save_grab_location(by) # Called by XRToolsFunctionPickup when this is let go by a controller @@ -50,9 +52,9 @@ func let_go(_p_linear_velocity: Vector3, _p_angular_velocity: Vector3) -> void: pass # Save the grab location -func save_grab_location(p: Spatial): +func save_grab_location(p: Node3D): grab_locations[p.get_instance_id()] = to_local(p.global_transform.origin) # Get the grab location in world-space -func get_grab_location(p: Spatial) -> Vector3: +func get_grab_location(p: Node3D) -> Vector3: return to_global(grab_locations[p.get_instance_id()]) diff --git a/addons/godot-xr-tools/objects/climbable.tscn b/addons/godot-xr-tools/objects/climbable.tscn index 010acd42..6cb25991 100644 --- a/addons/godot-xr-tools/objects/climbable.tscn +++ b/addons/godot-xr-tools/objects/climbable.tscn @@ -1,10 +1,10 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://cjyilbm4ucc7s"] -[ext_resource path="res://addons/godot-xr-tools/objects/climbable.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/climbable.gd" id="1"] -[node name="Climbable" type="StaticBody"] +[node name="Climbable" type="StaticBody3D"] collision_layer = 262145 collision_mask = 0 -script = ExtResource( 1 ) +script = ExtResource("1") -[node name="CollisionShape" type="CollisionShape" parent="."] +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] diff --git a/addons/godot-xr-tools/objects/grab_points/grab_point.gd b/addons/godot-xr-tools/objects/grab_points/grab_point.gd index c83a58de..51a5d03c 100644 --- a/addons/godot-xr-tools/objects/grab_points/grab_point.gd +++ b/addons/godot-xr-tools/objects/grab_points/grab_point.gd @@ -1,5 +1,5 @@ class_name XRToolsGrabPoint -extends Position3D +extends Marker3D ## XR Tools Grab Point Base Script @@ -10,7 +10,7 @@ extends Position3D ## If true, the grab point is enabled for grabbing -export var enabled : bool = true +@export var enabled : bool = true ## Test if a grabber can grab by this grab-point diff --git a/addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd b/addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd index a833f674..65f435d5 100644 --- a/addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd +++ b/addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsGrabPointHand extends XRToolsGrabPoint @@ -31,14 +31,13 @@ const RIGHT_HAND_PATH := "res://addons/godot-xr-tools/hands/scenes/lowpoly/right ## Which hand this grab point is for -export (Hand) var hand : int setget _set_hand +@export var hand : Hand: set = _set_hand ## Hand pose -export var hand_pose : Resource setget _set_hand_pose +@export var hand_pose : XRToolsHandPoseSettings: set = _set_hand_pose ## If true, the hand is shown in the editor -export (PreviewMode) \ - var editor_preview_mode : int = PreviewMode.CLOSED setget _set_editor_preview_mode +@export var editor_preview_mode : PreviewMode = PreviewMode.CLOSED: set = _set_editor_preview_mode ## Hand to use for editor preview @@ -48,7 +47,7 @@ var _editor_preview_hand : XRToolsHand ## Called when the node enters the scene tree for the first time. func _ready(): # If in the editor then update the preview - if Engine.editor_hint: + if Engine.is_editor_hint(): _update_editor_preview() @@ -64,32 +63,32 @@ func can_grab(_grabber : Node) -> bool: return false # Only allow left controller to grab left-hand grab points - if hand == Hand.LEFT and controller.controller_id != 1: + if hand == Hand.LEFT and controller.tracker != "left_hand": return false # Only allow right controller to grab right-hand grab points - if hand == Hand.RIGHT and controller.controller_id != 2: + if hand == Hand.RIGHT and controller.tracker != "right_hand": return false # Allow grab return true -func _set_hand(new_value : int) -> void: +func _set_hand(new_value : Hand) -> void: hand = new_value - if Engine.editor_hint: + if Engine.is_editor_hint(): _update_editor_preview() -func _set_hand_pose(new_value : Resource) -> void: +func _set_hand_pose(new_value : XRToolsHandPoseSettings) -> void: hand_pose = new_value - if Engine.editor_hint: + if Engine.is_editor_hint(): _update_editor_preview() -func _set_editor_preview_mode(new_value : int) -> void: +func _set_editor_preview_mode(new_value : PreviewMode) -> void: editor_preview_mode = new_value - if Engine.editor_hint: + if Engine.is_editor_hint(): _update_editor_preview() @@ -107,7 +106,7 @@ func _update_editor_preview() -> void: return # Construct the model - _editor_preview_hand = hand_scene.instance() + _editor_preview_hand = hand_scene.instantiate() # Set the pose if hand_pose: @@ -124,7 +123,7 @@ func _update_editor_preview() -> void: # Get the controller associated with a grabber -static func _get_grabber_controller(_grabber : Node) -> ARVRController: +static func _get_grabber_controller(_grabber : Node) -> XRController3D: # Ensure the grabber is valid if not is_instance_valid(_grabber): return null @@ -136,3 +135,4 @@ static func _get_grabber_controller(_grabber : Node) -> ARVRController: # Get the controller associated with the pickup return pickup.get_controller() + diff --git a/addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn b/addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn index 2f6d8155..875f686a 100644 --- a/addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn +++ b/addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://c25yxb0vt53vc"] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd" id="1"] -[node name="GrabPointHandLeft" type="Position3D"] +[node name="GrabPointHandLeft" type="Marker3D"] visible = false -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn b/addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn index 8d6e4766..08957a5b 100644 --- a/addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn +++ b/addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://ctw7nbntd5pcj"] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd" id="1"] -[node name="GrabPointHandRight" type="Position3D"] +[node name="GrabPointHandRight" type="Marker3D"] visible = false -script = ExtResource( 1 ) +script = ExtResource("1") hand = 1 diff --git a/addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd b/addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd index 2bd62163..46a6925e 100644 --- a/addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd +++ b/addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsGrabPointSnap extends XRToolsGrabPoint @@ -10,17 +10,17 @@ extends XRToolsGrabPoint ## Require grab-by to be in the specified group -export var require_group : String = "" +@export var require_group : String = "" ## Deny grab-by if in the specified group -export var exclude_group : String = "" +@export var exclude_group : String = "" # Called when the node enters the scene tree for the first time. func _ready(): # Add a Position3D child to help editor visibility - if Engine.editor_hint: - add_child(Position3D.new()) + if Engine.is_editor_hint(): + add_child(Marker3D.new()) ## Test if a grabber can grab by this grab-point @@ -38,11 +38,11 @@ func can_grab(_grabber : Node) -> bool: return false # Refuse if the grabber is not in the required group - if not require_group.empty() and not _grabber.is_in_group(require_group): + if not require_group.is_empty() and not _grabber.is_in_group(require_group): return false # Refuse if the grabber is in the excluded group - if not exclude_group.empty() and _grabber.is_in_group(exclude_group): + if not exclude_group.is_empty() and _grabber.is_in_group(exclude_group): return false # Allow the grab diff --git a/addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn b/addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn index 93883f24..0ce99795 100644 --- a/addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn +++ b/addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://dh8grd7s3n8kg"] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd" id="1"] -[node name="GrabPointSnap" type="Position3D"] +[node name="GrabPointSnap" type="Marker3D"] visible = false -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/objects/hand_pose_area.gd b/addons/godot-xr-tools/objects/hand_pose_area.gd index 1f69f040..9d39e722 100644 --- a/addons/godot-xr-tools/objects/hand_pose_area.gd +++ b/addons/godot-xr-tools/objects/hand_pose_area.gd @@ -1,6 +1,7 @@ -tool -class_name XRToolsHandPoseArea, "res://addons/godot-xr-tools/editor/icons/hand.svg" -extends Area +@tool +@icon("res://addons/godot-xr-tools/editor/icons/hand.svg") +class_name XRToolsHandPoseArea +extends Area3D ## XR Tools Hand Pose Area @@ -10,15 +11,15 @@ extends Area ## Priority level for this hand pose area -export var pose_priority : int +@export var pose_priority : int ## Left hand pose settings (XRToolsHandPoseSettings) -export var left_pose : Resource +@export var left_pose : XRToolsHandPoseSettings ## Right hand pose settings (XRToolsHandPoseSettings) -export var right_pose : Resource +@export var right_pose : XRToolsHandPoseSettings -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHandPoseArea" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHandPoseArea" diff --git a/addons/godot-xr-tools/objects/hand_pose_area.tscn b/addons/godot-xr-tools/objects/hand_pose_area.tscn index c6d7ae5b..e72ed0d1 100644 --- a/addons/godot-xr-tools/objects/hand_pose_area.tscn +++ b/addons/godot-xr-tools/objects/hand_pose_area.tscn @@ -1,9 +1,9 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://dc5t2qgmhb2nf"] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/hand_pose_area.gd" id="1"] -[node name="HandPoseArea" type="Area"] +[node name="HandPoseArea" type="Area3D"] collision_layer = 2097152 collision_mask = 0 monitoring = false -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/objects/highlight/highlight_material.gd b/addons/godot-xr-tools/objects/highlight/highlight_material.gd index bf28d2a2..d5b8eb29 100644 --- a/addons/godot-xr-tools/objects/highlight/highlight_material.gd +++ b/addons/godot-xr-tools/objects/highlight/highlight_material.gd @@ -1,22 +1,22 @@ -tool +@tool class_name XRToolsHighlightMaterial extends Node ## Mesh to highlight -export(NodePath) var highlight_mesh_instance +@export var highlight_mesh_instance : NodePath ## Material to set -export(Resource) var highlight_material +@export var highlight_material : Resource var _original_materials = Array() -var _highlight_mesh_instance: MeshInstance +var _highlight_mesh_instance: MeshInstance3D -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHighlightMaterial" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHighlightMaterial" # Called when the node enters the scene tree for the first time. @@ -27,30 +27,31 @@ func _ready(): # Save the materials if _highlight_mesh_instance: # if we can find a node remember which materials are currently set on each surface - for i in range(0, _highlight_mesh_instance.get_surface_material_count()): - _original_materials.push_back(_highlight_mesh_instance.get_surface_material(i)) + for i in range(0, _highlight_mesh_instance.get_surface_override_material_count()): + _original_materials.push_back(_highlight_mesh_instance.get_surface_override_material(i)) # Hook the highlight update - get_parent().connect("highlight_updated", self, "_on_highlight_updated") + get_parent().connect("highlight_updated", _on_highlight_updated) # Called when the pickable highlight changes func _on_highlight_updated(_pickable, enable: bool) -> void: # Set the materials if _highlight_mesh_instance: - for i in range(0, _highlight_mesh_instance.get_surface_material_count()): + for i in range(0, _highlight_mesh_instance.get_surface_override_material_count()): if enable: - _highlight_mesh_instance.set_surface_material(i, highlight_material) + _highlight_mesh_instance.set_surface_override_material(i, highlight_material) else: - _highlight_mesh_instance.set_surface_material(i, _original_materials[i]) + _highlight_mesh_instance.set_surface_override_material(i, _original_materials[i]) # This method verifies the node -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Verify parent supports highlighting var parent := get_parent() if not parent or not parent.has_signal("highlight_updated"): - return "Parent does not support highlighting" + warnings.append("Parent does not support highlighting") - # No issues - return "" + return warnings diff --git a/addons/godot-xr-tools/objects/highlight/highlight_ring.gd b/addons/godot-xr-tools/objects/highlight/highlight_ring.gd index 1525d91c..cabd79c5 100644 --- a/addons/godot-xr-tools/objects/highlight/highlight_ring.gd +++ b/addons/godot-xr-tools/objects/highlight/highlight_ring.gd @@ -1,21 +1,21 @@ -tool +@tool class_name XRToolsHighlightRing -extends MeshInstance +extends MeshInstance3D -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHighlightRing" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHighlightRing" # Called when the node enters the scene tree for the first time. func _ready(): # Turn off until requested - if not Engine.editor_hint: + if not Engine.is_editor_hint(): visible = false # Hook the highlight update - get_parent().connect("highlight_updated", self, "_on_highlight_updated") + get_parent().connect("highlight_updated", _on_highlight_updated) # Called when the pickable highlight changes @@ -24,11 +24,12 @@ func _on_highlight_updated(_pickable, enable: bool) -> void: # This method verifies the node -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Verify parent supports highlighting var parent := get_parent() if not parent or not parent.has_signal("highlight_updated"): - return "Parent does not support highlighting" + warnings.append("Parent does not support highlighting") - # No issues - return "" + return warnings diff --git a/addons/godot-xr-tools/objects/highlight/highlight_ring.tres b/addons/godot-xr-tools/objects/highlight/highlight_ring.tres index ebe21dac..ce16b222 100644 --- a/addons/godot-xr-tools/objects/highlight/highlight_ring.tres +++ b/addons/godot-xr-tools/objects/highlight/highlight_ring.tres @@ -1,6 +1,6 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] -[ext_resource path="res://addons/godot-xr-tools/images/ring.png" type="Texture" id=1] +[ext_resource path="res://addons/godot-xr-tools/images/ring.png" type="Texture2D" id=1] [resource] flags_transparent = true diff --git a/addons/godot-xr-tools/objects/highlight/highlight_ring.tscn b/addons/godot-xr-tools/objects/highlight/highlight_ring.tscn index a0e8aae2..5f5b9e3f 100644 --- a/addons/godot-xr-tools/objects/highlight/highlight_ring.tscn +++ b/addons/godot-xr-tools/objects/highlight/highlight_ring.tscn @@ -1,12 +1,12 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://da2qgxxwwitl6"] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tres" type="Material" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.gd" id="1"] +[ext_resource type="Material" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tres" id="2"] -[sub_resource type="QuadMesh" id=1] -size = Vector2( 0.05, 0.05 ) +[sub_resource type="QuadMesh" id="1"] +size = Vector2(0.05, 0.05) -[node name="HighlightRing" type="MeshInstance"] -mesh = SubResource( 1 ) -material/0 = ExtResource( 2 ) -script = ExtResource( 1 ) +[node name="HighlightRing" type="MeshInstance3D"] +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2") +script = ExtResource("1") diff --git a/addons/godot-xr-tools/objects/highlight/highlight_visible.gd b/addons/godot-xr-tools/objects/highlight/highlight_visible.gd index 684d73ac..b3f27558 100644 --- a/addons/godot-xr-tools/objects/highlight/highlight_visible.gd +++ b/addons/godot-xr-tools/objects/highlight/highlight_visible.gd @@ -1,21 +1,21 @@ -tool +@tool class_name XRToolsHighlightVisible -extends Spatial +extends Node3D -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsHighlightVisible" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsHighlightVisible" # Called when the node enters the scene tree for the first time. func _ready(): # Turn off until requested - if not Engine.editor_hint: + if not Engine.is_editor_hint(): visible = false # Hook the highlight update - get_parent().connect("highlight_updated", self, "_on_highlight_updated") + get_parent().connect("highlight_updated", _on_highlight_updated) # Called when the pickable highlight changes @@ -24,11 +24,12 @@ func _on_highlight_updated(_pickable, enable: bool) -> void: # This method verifies the node -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Verify parent supports highlighting var parent := get_parent() if not parent or not parent.has_signal("highlight_updated"): - return "Parent does not support highlighting" + warnings.append("Parent does not support highlighting") - # No issues - return "" + return warnings diff --git a/addons/godot-xr-tools/objects/interactable_area.gd b/addons/godot-xr-tools/objects/interactable_area.gd index 879acbc9..f31c171f 100644 --- a/addons/godot-xr-tools/objects/interactable_area.gd +++ b/addons/godot-xr-tools/objects/interactable_area.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsInteractableArea -extends Area +extends Area3D signal pointer_pressed(at) @@ -10,6 +10,6 @@ signal pointer_entered() signal pointer_exited() -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsInteractableArea" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsInteractableArea" diff --git a/addons/godot-xr-tools/objects/interactable_body.gd b/addons/godot-xr-tools/objects/interactable_body.gd index a6bdee82..21e211d6 100644 --- a/addons/godot-xr-tools/objects/interactable_body.gd +++ b/addons/godot-xr-tools/objects/interactable_body.gd @@ -1,5 +1,6 @@ class_name XRToolsInteractableBody -extends PhysicsBody +extends Node3D +# This should extend from PhysicsBody3D but https://github.com/godotengine/godot/issues/46073 signal pointer_pressed(at) diff --git a/addons/godot-xr-tools/objects/keyboard/virtual_key.gd b/addons/godot-xr-tools/objects/keyboard/virtual_key.gd index e5e51f87..70793ddc 100644 --- a/addons/godot-xr-tools/objects/keyboard/virtual_key.gd +++ b/addons/godot-xr-tools/objects/keyboard/virtual_key.gd @@ -2,20 +2,20 @@ extends Button ## Godot scan-code text -export var scan_code_text := "" +@export var scan_code_text := "" ## Unicode character -export var unicode := 0 +@export var unicode := 0 ## Shift modifier -export var shift_modifier := false +@export var shift_modifier := false func _ready(): # Find the VirtualKeyboard parent var keyboard = _get_virtual_keyboard() if keyboard: - connect("button_down", keyboard, "on_key_pressed", [scan_code_text, unicode, shift_modifier]) + button_down.connect(keyboard.on_key_pressed.bind(scan_code_text, unicode, shift_modifier)) # Get our virtual keyboard parent func _get_virtual_keyboard() -> XRToolsVirtualKeyboard2D: diff --git a/addons/godot-xr-tools/objects/keyboard/virtual_key.tscn b/addons/godot-xr-tools/objects/keyboard/virtual_key.tscn index 6a9497bc..b182fcbc 100644 --- a/addons/godot-xr-tools/objects/keyboard/virtual_key.tscn +++ b/addons/godot-xr-tools/objects/keyboard/virtual_key.tscn @@ -3,8 +3,8 @@ [ext_resource path="res://addons/godot-xr-tools/objects/keyboard/virtual_key.gd" type="Script" id=1] [node name="VirtualKey" type="Button"] -margin_right = 30.0 -margin_bottom = 25.0 +offset_right = 30.0 +offset_bottom = 25.0 +focus_mode = 0 focus_mode = 0 -enabled_focus_mode = 0 script = ExtResource( 1 ) diff --git a/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd b/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd index ceca39cc..b8af1803 100644 --- a/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd +++ b/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsVirtualKeyboard2D extends CanvasLayer @@ -24,23 +24,23 @@ var _alt_down := false var _mode: int = KeyboardMode.LOWER_CASE -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsVirtualKeyboard2D" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsVirtualKeyboard2D" # Handle key pressed from VirtualKey func on_key_pressed(scan_code_text: String, unicode: int, shift: bool): # Find the scan code - var scan_code := OS.find_scancode_from_string(scan_code_text) + var scan_code := OS.find_keycode_from_string(scan_code_text) # Create the InputEventKey var input := InputEventKey.new() - input.physical_scancode = scan_code + input.physical_keycode = scan_code input.unicode = unicode if unicode else scan_code input.pressed = true - input.scancode = scan_code - input.shift = shift + input.keycode = scan_code + input.shift_pressed = shift # Dispatch the input event Input.parse_input_event(input) diff --git a/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.tscn b/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.tscn index 7716249e..53f85748 100644 --- a/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.tscn +++ b/addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.tscn @@ -1,602 +1,618 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://lauwp8okd1vh"] -[ext_resource path="res://addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/keyboard/virtual_key.tscn" type="PackedScene" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd" id="1"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/objects/keyboard/virtual_key.tscn" id="2"] [node name="VirtualKeyboard2D" type="CanvasLayer"] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Background" type="ColorRect" parent="."] -margin_right = 390.0 -margin_bottom = 145.0 -color = Color( 0.12549, 0.12549, 0.12549, 0.752941 ) +offset_right = 390.0 +offset_bottom = 145.0 +color = Color(0.12549, 0.12549, 0.12549, 0.752941) [node name="Standard" type="Control" parent="Background"] -margin_right = 390.0 -margin_bottom = 145.0 +layout_mode = 1 +anchors_preset = 0 +offset_right = 390.0 +offset_bottom = 145.0 -[node name="VirtualKey1" parent="Background/Standard" instance=ExtResource( 2 )] +[node name="VirtualKey1" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 text = "1" scan_code_text = "1" unicode = 49 -[node name="VirtualKey2" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 40.0 -margin_right = 70.0 +[node name="VirtualKey2" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 40.0 +offset_right = 70.0 text = "2" scan_code_text = "2" unicode = 50 -[node name="VirtualKey3" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 80.0 -margin_right = 110.0 +[node name="VirtualKey3" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 80.0 +offset_right = 110.0 text = "3" scan_code_text = "3" unicode = 51 -[node name="VirtualKey4" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 120.0 -margin_right = 150.0 +[node name="VirtualKey4" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 120.0 +offset_right = 150.0 text = "4" scan_code_text = "4" unicode = 52 -[node name="VirtualKey5" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 160.0 -margin_right = 190.0 +[node name="VirtualKey5" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 160.0 +offset_right = 190.0 text = "5" scan_code_text = "5" unicode = 53 -[node name="VirtualKey6" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 200.0 -margin_right = 230.0 +[node name="VirtualKey6" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 200.0 +offset_right = 230.0 text = "6" scan_code_text = "6" unicode = 54 -[node name="VirtualKey7" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 240.0 -margin_right = 270.0 +[node name="VirtualKey7" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 240.0 +offset_right = 270.0 text = "7" scan_code_text = "7" unicode = 55 -[node name="VirtualKey8" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 280.0 -margin_right = 310.0 +[node name="VirtualKey8" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 280.0 +offset_right = 310.0 text = "8" scan_code_text = "8" unicode = 56 -[node name="VirtualKey9" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 320.0 -margin_right = 350.0 +[node name="VirtualKey9" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 320.0 +offset_right = 350.0 text = "9" scan_code_text = "9" unicode = 57 -[node name="VirtualKey0" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 360.0 -margin_right = 390.0 +[node name="VirtualKey0" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 360.0 +offset_right = 390.0 text = "0" scan_code_text = "0" unicode = 48 [node name="ToggleShift" type="Button" parent="Background/Standard"] -margin_top = 90.0 -margin_right = 50.0 -margin_bottom = 115.0 +layout_mode = 0 +offset_top = 90.0 +offset_right = 50.0 +offset_bottom = 115.0 focus_mode = 0 toggle_mode = true -enabled_focus_mode = 0 text = "SHIFT" [node name="ToggleCaps" type="Button" parent="Background/Standard"] -margin_top = 120.0 -margin_right = 45.0 -margin_bottom = 145.0 +layout_mode = 0 +offset_top = 120.0 +offset_right = 45.0 +offset_bottom = 145.0 focus_mode = 0 toggle_mode = true -enabled_focus_mode = 0 text = "CAPS" [node name="ToggleAlt" type="Button" parent="Background/Standard"] -margin_left = 55.0 -margin_top = 120.0 -margin_right = 90.0 -margin_bottom = 145.0 +layout_mode = 0 +offset_left = 55.0 +offset_top = 120.0 +offset_right = 90.0 +offset_bottom = 145.0 focus_mode = 0 toggle_mode = true -enabled_focus_mode = 0 text = "ALT" -[node name="VirtualKeyBackspace" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 340.0 -margin_top = 90.0 -margin_right = 390.0 -margin_bottom = 115.0 +[node name="VirtualKeyBackspace" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 340.0 +offset_top = 90.0 +offset_right = 390.0 +offset_bottom = 115.0 text = "BKSP" scan_code_text = "BackSpace" -[node name="VirtualKeySpace" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 120.0 -margin_right = 290.0 -margin_bottom = 145.0 +[node name="VirtualKeySpace" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 100.0 +offset_top = 120.0 +offset_right = 290.0 +offset_bottom = 145.0 text = "Space" scan_code_text = "Space" unicode = 32 -[node name="VirtualKeyPeriod" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 120.0 -margin_right = 330.0 -margin_bottom = 145.0 +[node name="VirtualKeyPeriod" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 300.0 +offset_top = 120.0 +offset_right = 330.0 +offset_bottom = 145.0 text = "." scan_code_text = "Period" unicode = 46 -[node name="VirtualKeyEnter" parent="Background/Standard" instance=ExtResource( 2 )] -margin_left = 340.0 -margin_top = 120.0 -margin_right = 390.0 -margin_bottom = 145.0 +[node name="VirtualKeyEnter" parent="Background/Standard" instance=ExtResource("2")] +layout_mode = 0 +offset_left = 340.0 +offset_top = 120.0 +offset_right = 390.0 +offset_bottom = 145.0 text = "Enter" scan_code_text = "Enter" [node name="LowerCase" type="Node2D" parent="Background"] -position = Vector2( 0, 30 ) +position = Vector2(0, 30) -[node name="VirtualKeyLowerQ" parent="Background/LowerCase" instance=ExtResource( 2 )] +[node name="VirtualKeyLowerQ" parent="Background/LowerCase" instance=ExtResource("2")] text = "q" scan_code_text = "Q" unicode = 113 -[node name="VirtualKeyLowerW" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 40.0 -margin_right = 70.0 +[node name="VirtualKeyLowerW" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 40.0 +offset_right = 70.0 text = "w" scan_code_text = "W" unicode = 119 -[node name="VirtualKeyLowerE" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 80.0 -margin_right = 110.0 +[node name="VirtualKeyLowerE" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 80.0 +offset_right = 110.0 text = "e" scan_code_text = "E" unicode = 101 -[node name="VirtualKeyLowerR" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 120.0 -margin_right = 150.0 +[node name="VirtualKeyLowerR" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 120.0 +offset_right = 150.0 text = "r" scan_code_text = "R" unicode = 114 -[node name="VirtualKeyLowerT" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 160.0 -margin_right = 190.0 +[node name="VirtualKeyLowerT" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 160.0 +offset_right = 190.0 text = "t" scan_code_text = "T" unicode = 116 -[node name="VirtualKeyLowerY" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 200.0 -margin_right = 230.0 +[node name="VirtualKeyLowerY" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 200.0 +offset_right = 230.0 text = "y" scan_code_text = "Y" unicode = 121 -[node name="VirtualKeyLowerU" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 240.0 -margin_right = 270.0 +[node name="VirtualKeyLowerU" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 240.0 +offset_right = 270.0 text = "u" scan_code_text = "U" unicode = 117 -[node name="VirtualKeyLowerI" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 280.0 -margin_right = 310.0 +[node name="VirtualKeyLowerI" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 280.0 +offset_right = 310.0 text = "i" scan_code_text = "I" unicode = 105 -[node name="VirtualKeyLowerO" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 320.0 -margin_right = 350.0 +[node name="VirtualKeyLowerO" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 320.0 +offset_right = 350.0 text = "o" scan_code_text = "O" unicode = 111 -[node name="VirtualKeyLowerP" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 360.0 -margin_right = 390.0 +[node name="VirtualKeyLowerP" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 360.0 +offset_right = 390.0 text = "p" scan_code_text = "P" unicode = 112 -[node name="VirtualKeyLowerA" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 20.0 -margin_top = 30.0 -margin_right = 50.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerA" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 20.0 +offset_top = 30.0 +offset_right = 50.0 +offset_bottom = 55.0 text = "a" scan_code_text = "A" unicode = 97 -[node name="VirtualKeyLowerS" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 60.0 -margin_top = 30.0 -margin_right = 90.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerS" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 60.0 +offset_top = 30.0 +offset_right = 90.0 +offset_bottom = 55.0 text = "s" scan_code_text = "S" unicode = 115 -[node name="VirtualKeyLowerD" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 30.0 -margin_right = 130.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerD" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 100.0 +offset_top = 30.0 +offset_right = 130.0 +offset_bottom = 55.0 text = "d" scan_code_text = "D" unicode = 100 -[node name="VirtualKeyLowerF" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 140.0 -margin_top = 30.0 -margin_right = 170.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerF" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 140.0 +offset_top = 30.0 +offset_right = 170.0 +offset_bottom = 55.0 text = "f" scan_code_text = "F" unicode = 102 -[node name="VirtualKeyLowerG" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 180.0 -margin_top = 30.0 -margin_right = 210.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerG" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 180.0 +offset_top = 30.0 +offset_right = 210.0 +offset_bottom = 55.0 text = "g" scan_code_text = "G" unicode = 103 -[node name="VirtualKeyLowerH" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 220.0 -margin_top = 30.0 -margin_right = 250.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerH" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 220.0 +offset_top = 30.0 +offset_right = 250.0 +offset_bottom = 55.0 text = "h" scan_code_text = "H" unicode = 104 -[node name="VirtualKeyLowerJ" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 260.0 -margin_top = 30.0 -margin_right = 290.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerJ" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 260.0 +offset_top = 30.0 +offset_right = 290.0 +offset_bottom = 55.0 text = "j" scan_code_text = "J" unicode = 106 -[node name="VirtualKeyLowerK" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 30.0 -margin_right = 330.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerK" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 300.0 +offset_top = 30.0 +offset_right = 330.0 +offset_bottom = 55.0 text = "k" scan_code_text = "K" unicode = 107 -[node name="VirtualKeyLowerL" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 340.0 -margin_top = 30.0 -margin_right = 370.0 -margin_bottom = 55.0 +[node name="VirtualKeyLowerL" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 340.0 +offset_top = 30.0 +offset_right = 370.0 +offset_bottom = 55.0 text = "l" scan_code_text = "L" unicode = 108 -[node name="VirtualKeyLowerZ" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 60.0 -margin_top = 60.0 -margin_right = 90.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerZ" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 60.0 +offset_top = 60.0 +offset_right = 90.0 +offset_bottom = 85.0 text = "z" scan_code_text = "Z" unicode = 122 -[node name="VirtualKeyLowerX" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 60.0 -margin_right = 130.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerX" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 100.0 +offset_top = 60.0 +offset_right = 130.0 +offset_bottom = 85.0 text = "x" scan_code_text = "X" unicode = 120 -[node name="VirtualKeyLowerC" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 140.0 -margin_top = 60.0 -margin_right = 170.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerC" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 140.0 +offset_top = 60.0 +offset_right = 170.0 +offset_bottom = 85.0 text = "c" scan_code_text = "C" unicode = 99 -[node name="VirtualKeyLowerV" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 180.0 -margin_top = 60.0 -margin_right = 210.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerV" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 180.0 +offset_top = 60.0 +offset_right = 210.0 +offset_bottom = 85.0 text = "v" scan_code_text = "V" unicode = 118 -[node name="VirtualKeyLowerB" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 220.0 -margin_top = 60.0 -margin_right = 250.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerB" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 220.0 +offset_top = 60.0 +offset_right = 250.0 +offset_bottom = 85.0 text = "b" scan_code_text = "B" unicode = 98 -[node name="VirtualKeyLowerN" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 260.0 -margin_top = 60.0 -margin_right = 290.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerN" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 260.0 +offset_top = 60.0 +offset_right = 290.0 +offset_bottom = 85.0 text = "n" scan_code_text = "N" unicode = 110 -[node name="VirtualKeyLowerM" parent="Background/LowerCase" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 60.0 -margin_right = 330.0 -margin_bottom = 85.0 +[node name="VirtualKeyLowerM" parent="Background/LowerCase" instance=ExtResource("2")] +offset_left = 300.0 +offset_top = 60.0 +offset_right = 330.0 +offset_bottom = 85.0 text = "m" scan_code_text = "M" unicode = 109 [node name="UpperCase" type="Node2D" parent="Background"] visible = false -position = Vector2( 0, 30 ) +position = Vector2(0, 30) -[node name="VirtualKeyUpperQ" parent="Background/UpperCase" instance=ExtResource( 2 )] +[node name="VirtualKeyUpperQ" parent="Background/UpperCase" instance=ExtResource("2")] text = "Q" scan_code_text = "Q" unicode = 81 shift_modifier = true -[node name="VirtualKeyUpperW" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 40.0 -margin_right = 70.0 +[node name="VirtualKeyUpperW" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 40.0 +offset_right = 70.0 text = "W" scan_code_text = "W" unicode = 87 shift_modifier = true -[node name="VirtualKeyUpperE" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 80.0 -margin_right = 110.0 +[node name="VirtualKeyUpperE" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 80.0 +offset_right = 110.0 text = "E" scan_code_text = "E" unicode = 69 shift_modifier = true -[node name="VirtualKeyUpperR" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 120.0 -margin_right = 150.0 +[node name="VirtualKeyUpperR" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 120.0 +offset_right = 150.0 text = "R" scan_code_text = "R" unicode = 82 shift_modifier = true -[node name="VirtualKeyUpperT" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 160.0 -margin_right = 190.0 +[node name="VirtualKeyUpperT" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 160.0 +offset_right = 190.0 text = "T" scan_code_text = "T" unicode = 84 shift_modifier = true -[node name="VirtualKeyUpperY" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 200.0 -margin_right = 230.0 +[node name="VirtualKeyUpperY" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 200.0 +offset_right = 230.0 text = "Y" scan_code_text = "Y" unicode = 89 shift_modifier = true -[node name="VirtualKeyUpperU" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 240.0 -margin_right = 270.0 +[node name="VirtualKeyUpperU" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 240.0 +offset_right = 270.0 text = "U" scan_code_text = "U" unicode = 85 shift_modifier = true -[node name="VirtualKeyUpperI" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 280.0 -margin_right = 310.0 +[node name="VirtualKeyUpperI" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 280.0 +offset_right = 310.0 text = "I" scan_code_text = "I" unicode = 73 shift_modifier = true -[node name="VirtualKeyUpperO" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 320.0 -margin_right = 350.0 +[node name="VirtualKeyUpperO" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 320.0 +offset_right = 350.0 text = "O" scan_code_text = "O" unicode = 79 shift_modifier = true -[node name="VirtualKeyUpperP" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 360.0 -margin_right = 390.0 +[node name="VirtualKeyUpperP" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 360.0 +offset_right = 390.0 text = "P" scan_code_text = "P" unicode = 80 shift_modifier = true -[node name="VirtualKeyUpperA" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 20.0 -margin_top = 30.0 -margin_right = 50.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperA" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 20.0 +offset_top = 30.0 +offset_right = 50.0 +offset_bottom = 55.0 text = "A" scan_code_text = "A" unicode = 65 shift_modifier = true -[node name="VirtualKeyUpperS" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 60.0 -margin_top = 30.0 -margin_right = 90.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperS" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 60.0 +offset_top = 30.0 +offset_right = 90.0 +offset_bottom = 55.0 text = "S" scan_code_text = "S" unicode = 83 shift_modifier = true -[node name="VirtualKeyUpperD" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 30.0 -margin_right = 130.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperD" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 100.0 +offset_top = 30.0 +offset_right = 130.0 +offset_bottom = 55.0 text = "D" scan_code_text = "D" unicode = 68 shift_modifier = true -[node name="VirtualKeyUpperF" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 140.0 -margin_top = 30.0 -margin_right = 170.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperF" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 140.0 +offset_top = 30.0 +offset_right = 170.0 +offset_bottom = 55.0 text = "F" scan_code_text = "F" unicode = 70 shift_modifier = true -[node name="VirtualKeyUpperG" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 180.0 -margin_top = 30.0 -margin_right = 210.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperG" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 180.0 +offset_top = 30.0 +offset_right = 210.0 +offset_bottom = 55.0 text = "G" scan_code_text = "G" unicode = 71 shift_modifier = true -[node name="VirtualKeyUpperH" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 220.0 -margin_top = 30.0 -margin_right = 250.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperH" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 220.0 +offset_top = 30.0 +offset_right = 250.0 +offset_bottom = 55.0 text = "H" scan_code_text = "H" unicode = 72 shift_modifier = true -[node name="VirtualKeyUpperJ" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 260.0 -margin_top = 30.0 -margin_right = 290.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperJ" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 260.0 +offset_top = 30.0 +offset_right = 290.0 +offset_bottom = 55.0 text = "J" scan_code_text = "J" unicode = 74 shift_modifier = true -[node name="VirtualKeyUpperK" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 30.0 -margin_right = 330.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperK" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 300.0 +offset_top = 30.0 +offset_right = 330.0 +offset_bottom = 55.0 text = "K" scan_code_text = "K" unicode = 75 shift_modifier = true -[node name="VirtualKeyUpperL" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 340.0 -margin_top = 30.0 -margin_right = 370.0 -margin_bottom = 55.0 +[node name="VirtualKeyUpperL" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 340.0 +offset_top = 30.0 +offset_right = 370.0 +offset_bottom = 55.0 text = "L" scan_code_text = "L" unicode = 76 shift_modifier = true -[node name="VirtualKeyUpperZ" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 60.0 -margin_top = 60.0 -margin_right = 90.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperZ" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 60.0 +offset_top = 60.0 +offset_right = 90.0 +offset_bottom = 85.0 text = "Z" scan_code_text = "Z" unicode = 90 shift_modifier = true -[node name="VirtualKeyUpperX" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 60.0 -margin_right = 130.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperX" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 100.0 +offset_top = 60.0 +offset_right = 130.0 +offset_bottom = 85.0 text = "X" scan_code_text = "X" unicode = 88 shift_modifier = true -[node name="VirtualKeyUpperC" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 140.0 -margin_top = 60.0 -margin_right = 170.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperC" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 140.0 +offset_top = 60.0 +offset_right = 170.0 +offset_bottom = 85.0 text = "C" scan_code_text = "C" unicode = 67 shift_modifier = true -[node name="VirtualKeyUpperV" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 180.0 -margin_top = 60.0 -margin_right = 210.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperV" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 180.0 +offset_top = 60.0 +offset_right = 210.0 +offset_bottom = 85.0 text = "V" scan_code_text = "V" unicode = 86 shift_modifier = true -[node name="VirtualKeyUpperB" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 220.0 -margin_top = 60.0 -margin_right = 250.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperB" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 220.0 +offset_top = 60.0 +offset_right = 250.0 +offset_bottom = 85.0 text = "B" scan_code_text = "B" unicode = 66 shift_modifier = true -[node name="VirtualKeyUpperN" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 260.0 -margin_top = 60.0 -margin_right = 290.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperN" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 260.0 +offset_top = 60.0 +offset_right = 290.0 +offset_bottom = 85.0 text = "N" scan_code_text = "N" unicode = 78 shift_modifier = true -[node name="VirtualKeyUpperM" parent="Background/UpperCase" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 60.0 -margin_right = 330.0 -margin_bottom = 85.0 +[node name="VirtualKeyUpperM" parent="Background/UpperCase" instance=ExtResource("2")] +offset_left = 300.0 +offset_top = 60.0 +offset_right = 330.0 +offset_bottom = 85.0 text = "M" scan_code_text = "M" unicode = 77 @@ -604,218 +620,218 @@ shift_modifier = true [node name="Alternate" type="Node2D" parent="Background"] visible = false -position = Vector2( 0, 30 ) +position = Vector2(0, 30) -[node name="VirtualKeyPlus" parent="Background/Alternate" instance=ExtResource( 2 )] +[node name="VirtualKeyPlus" parent="Background/Alternate" instance=ExtResource("2")] text = "+" scan_code_text = "Plus" unicode = 43 -[node name="VirtualKeyAsterisk" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 40.0 -margin_right = 70.0 +[node name="VirtualKeyAsterisk" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 40.0 +offset_right = 70.0 text = "*" scan_code_text = "Asterisk" unicode = 42 -[node name="VirtualKeyDivision" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 80.0 -margin_right = 110.0 +[node name="VirtualKeyDivision" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 80.0 +offset_right = 110.0 text = "÷" scan_code_text = "Division" unicode = 247 -[node name="VirtualKeyEqual" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 120.0 -margin_right = 150.0 +[node name="VirtualKeyEqual" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 120.0 +offset_right = 150.0 text = "=" scan_code_text = "Equal" unicode = 61 -[node name="VirtualKeySlash" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 160.0 -margin_right = 190.0 +[node name="VirtualKeySlash" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 160.0 +offset_right = 190.0 text = "/" scan_code_text = "Slash" unicode = 47 -[node name="VirtualKeyUnderScore" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 200.0 -margin_right = 230.0 +[node name="VirtualKeyUnderScore" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 200.0 +offset_right = 230.0 text = "_" scan_code_text = "UnderScore" unicode = 95 -[node name="VirtualKeyLess" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 240.0 -margin_right = 270.0 +[node name="VirtualKeyLess" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 240.0 +offset_right = 270.0 text = "<" scan_code_text = "Less" unicode = 60 shift_modifier = true -[node name="VirtualKeyGreater" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 280.0 -margin_right = 310.0 +[node name="VirtualKeyGreater" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 280.0 +offset_right = 310.0 text = ">" scan_code_text = "Greater" unicode = 62 -[node name="VirtualKeyBracketLeft" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 320.0 -margin_right = 350.0 +[node name="VirtualKeyBracketLeft" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 320.0 +offset_right = 350.0 text = "[" scan_code_text = "BracketLeft" unicode = 91 shift_modifier = true -[node name="VirtualKeyBracketRight" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 360.0 -margin_right = 390.0 +[node name="VirtualKeyBracketRight" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 360.0 +offset_right = 390.0 text = "]" scan_code_text = "BracketRight" unicode = 93 -[node name="VirtualKeyExclam" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 20.0 -margin_top = 30.0 -margin_right = 50.0 -margin_bottom = 55.0 +[node name="VirtualKeyExclam" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 20.0 +offset_top = 30.0 +offset_right = 50.0 +offset_bottom = 55.0 text = "!" scan_code_text = "Exclam" unicode = 33 -[node name="VirtualKeyAt" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 60.0 -margin_top = 30.0 -margin_right = 90.0 -margin_bottom = 55.0 +[node name="VirtualKeyAt" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 60.0 +offset_top = 30.0 +offset_right = 90.0 +offset_bottom = 55.0 text = "@" scan_code_text = "At" unicode = 64 -[node name="VirtualKeyNumberSign" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 30.0 -margin_right = 130.0 -margin_bottom = 55.0 +[node name="VirtualKeyNumberSign" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 100.0 +offset_top = 30.0 +offset_right = 130.0 +offset_bottom = 55.0 text = "#" scan_code_text = "NumberSign" unicode = 35 -[node name="VirtualKeyDollar" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 140.0 -margin_top = 30.0 -margin_right = 170.0 -margin_bottom = 55.0 +[node name="VirtualKeyDollar" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 140.0 +offset_top = 30.0 +offset_right = 170.0 +offset_bottom = 55.0 text = "$" scan_code_text = "Dollar" unicode = 36 -[node name="VirtualKeyPercent" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 180.0 -margin_top = 30.0 -margin_right = 210.0 -margin_bottom = 55.0 +[node name="VirtualKeyPercent" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 180.0 +offset_top = 30.0 +offset_right = 210.0 +offset_bottom = 55.0 text = "%" scan_code_text = "Percent" unicode = 37 -[node name="VirtualKeyCircumflex" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 220.0 -margin_top = 30.0 -margin_right = 250.0 -margin_bottom = 55.0 +[node name="VirtualKeyCircumflex" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 220.0 +offset_top = 30.0 +offset_right = 250.0 +offset_bottom = 55.0 text = "^" scan_code_text = "AsciiCircum" unicode = 94 -[node name="VirtualKeyAmpersand" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 260.0 -margin_top = 30.0 -margin_right = 290.0 -margin_bottom = 55.0 +[node name="VirtualKeyAmpersand" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 260.0 +offset_top = 30.0 +offset_right = 290.0 +offset_bottom = 55.0 text = "&" scan_code_text = "Ampersand" unicode = 38 -[node name="VirtualKeyParenLeft" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 30.0 -margin_right = 330.0 -margin_bottom = 55.0 +[node name="VirtualKeyParenLeft" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 300.0 +offset_top = 30.0 +offset_right = 330.0 +offset_bottom = 55.0 text = "(" scan_code_text = "ParenLeft" unicode = 40 -[node name="VirtualKeyParenRight" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 340.0 -margin_top = 30.0 -margin_right = 370.0 -margin_bottom = 55.0 +[node name="VirtualKeyParenRight" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 340.0 +offset_top = 30.0 +offset_right = 370.0 +offset_bottom = 55.0 text = ")" scan_code_text = "ParenRight" unicode = 41 -[node name="VirtualKeyMinus" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 60.0 -margin_top = 60.0 -margin_right = 90.0 -margin_bottom = 85.0 +[node name="VirtualKeyMinus" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 60.0 +offset_top = 60.0 +offset_right = 90.0 +offset_bottom = 85.0 text = "-" scan_code_text = "Minus" unicode = 45 -[node name="VirtualKeyApostrophe" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 100.0 -margin_top = 60.0 -margin_right = 130.0 -margin_bottom = 85.0 +[node name="VirtualKeyApostrophe" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 100.0 +offset_top = 60.0 +offset_right = 130.0 +offset_bottom = 85.0 text = "'" scan_code_text = "Apostrophe" unicode = 39 -[node name="VirtualKeyQuoteDbl" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 140.0 -margin_top = 60.0 -margin_right = 170.0 -margin_bottom = 85.0 +[node name="VirtualKeyQuoteDbl" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 140.0 +offset_top = 60.0 +offset_right = 170.0 +offset_bottom = 85.0 text = "\"" scan_code_text = "QuoteDbl" unicode = 34 -[node name="VirtualKeyColon" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 180.0 -margin_top = 60.0 -margin_right = 210.0 -margin_bottom = 85.0 +[node name="VirtualKeyColon" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 180.0 +offset_top = 60.0 +offset_right = 210.0 +offset_bottom = 85.0 text = ":" scan_code_text = "Colon" unicode = 58 -[node name="VirtualKeySemicolon" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 220.0 -margin_top = 60.0 -margin_right = 250.0 -margin_bottom = 85.0 +[node name="VirtualKeySemicolon" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 220.0 +offset_top = 60.0 +offset_right = 250.0 +offset_bottom = 85.0 text = ";" scan_code_text = "Semicolon" unicode = 59 -[node name="VirtualKeyComma" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 260.0 -margin_top = 60.0 -margin_right = 290.0 -margin_bottom = 85.0 +[node name="VirtualKeyComma" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 260.0 +offset_top = 60.0 +offset_right = 290.0 +offset_bottom = 85.0 text = "," scan_code_text = "Comma" unicode = 44 -[node name="VirtualKeyQuestion" parent="Background/Alternate" instance=ExtResource( 2 )] -margin_left = 300.0 -margin_top = 60.0 -margin_right = 330.0 -margin_bottom = 85.0 +[node name="VirtualKeyQuestion" parent="Background/Alternate" instance=ExtResource("2")] +offset_left = 300.0 +offset_top = 60.0 +offset_right = 330.0 +offset_bottom = 85.0 text = "?" scan_code_text = "Question" unicode = 63 diff --git a/addons/godot-xr-tools/objects/pickable.gd b/addons/godot-xr-tools/objects/pickable.gd index 846f1468..fe5f9ba8 100644 --- a/addons/godot-xr-tools/objects/pickable.gd +++ b/addons/godot-xr-tools/objects/pickable.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsPickable -extends RigidBody +extends RigidBody3D ## XR Tools Pickable Object @@ -50,8 +50,8 @@ enum PickableState { enum ReleaseMode { ORIGINAL = -1, ## Preserve original mode when picked up - RIGID = 0, ## Release and make rigid (MODE_RIGID) - STATIC = 1, ## Release and make static (MODE_STATIC) + UNFROZEN = 0, ## Release and unfreeze + FROZEN = 1, ## Release and freeze } @@ -63,44 +63,44 @@ const GRIP_POSE_PRIORITY = 100 ## If true, the pickable supports being picked up -export var enabled : bool = true +@export var enabled : bool = true ## If true, the grip control must be held to keep the object picked up -export var press_to_hold : bool = true +@export var press_to_hold : bool = true ## Layer for this object while picked up -export (int, LAYERS_3D_PHYSICS) var picked_up_layer = DEFAULT_LAYER +@export_flags_3d_physics var picked_up_layer = DEFAULT_LAYER ## Method used to hold an object -export (HoldMethod) var hold_method = HoldMethod.REMOTE_TRANSFORM +@export var hold_method : HoldMethod = HoldMethod.REMOTE_TRANSFORM ## Release mode to use when releasing the object -export (ReleaseMode) var release_mode : int = ReleaseMode.ORIGINAL +@export var release_mode : ReleaseMode = ReleaseMode.ORIGINAL ## Method used to perform a ranged grab -export (RangedMethod) var ranged_grab_method = RangedMethod.SNAP setget _set_ranged_grab_method +@export var ranged_grab_method : RangedMethod = RangedMethod.SNAP: set = _set_ranged_grab_method ## Speed for ranged grab -export var ranged_grab_speed : float = 20.0 +@export var ranged_grab_speed : float = 20.0 ## Refuse pick-by when in the specified group -export var picked_by_exclude : String = "" +@export var picked_by_exclude : String = "" ## Require pick-by to be in the specified group -export var picked_by_require : String = "" +@export var picked_by_require : String = "" ## If true, the object can be picked up at range var can_ranged_grab: bool = true -## Original RigidBody mode -var original_mode +## Frozen state to restore to when dropped +var restore_freeze : bool = false ## Entity holding this item -var picked_up_by: Spatial = null +var picked_up_by: Node3D = null ## Controller holding this item (may be null if held by snap-zone) -var by_controller : ARVRController = null +var by_controller : XRController3D = null ## Hand holding this item (may be null if held by snap-zone) var by_hand : XRToolsHand = null @@ -112,7 +112,7 @@ var _closest_count: int = 0 var _state = PickableState.IDLE # Remote transform -var _remote_transform: RemoteTransform = null +var _remote_transform: RemoteTransform3D = null # Move-to node for performing remote grab var _move_to: XRToolsMoveTo = null @@ -125,14 +125,14 @@ var _active_grab_point : XRToolsGrabPoint # Remember some state so we can return to it when the user drops the object -onready var original_parent = get_parent() -onready var original_collision_mask : int = collision_mask -onready var original_collision_layer : int = collision_layer +@onready var original_parent = get_parent() +@onready var original_collision_mask : int = collision_mask +@onready var original_collision_layer : int = collision_layer -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsPickable" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsPickable" # Called when the node enters the scene tree for the first time. @@ -145,7 +145,7 @@ func _ready(): # Test if this object can be picked up -func can_pick_up(_by: Spatial) -> bool: +func can_pick_up(_by: Node3D) -> bool: return enabled and _state == PickableState.IDLE @@ -190,7 +190,7 @@ func drop_and_free(): # Called when this object is picked up -func pick_up(by: Spatial, with_controller: ARVRController) -> void: +func pick_up(by: Node3D, with_controller: XRController3D) -> void: # Skip if disabled or already picked up if not enabled or _state != PickableState.IDLE: return @@ -212,10 +212,18 @@ func pick_up(by: Spatial, with_controller: ARVRController) -> void: by_hand.add_pose_override(self, GRIP_POSE_PRIORITY, grab_point_hand.hand_pose) # Remember the mode before pickup - original_mode = mode if release_mode == ReleaseMode.ORIGINAL else release_mode + match release_mode: + ReleaseMode.UNFROZEN: + restore_freeze = false + + ReleaseMode.FROZEN: + restore_freeze = true + + _: + restore_freeze = freeze # turn off physics on our pickable object - mode = RigidBody.MODE_STATIC + freeze = true collision_layer = picked_up_layer collision_mask = 0 @@ -251,7 +259,7 @@ func let_go(p_linear_velocity: Vector3, p_angular_velocity: Vector3) -> void: _remote_transform = null # Restore RigidBody mode - mode = original_mode + freeze = restore_freeze collision_mask = original_collision_mask collision_layer = original_collision_layer @@ -281,7 +289,7 @@ func let_go(p_linear_velocity: Vector3, p_angular_velocity: Vector3) -> void: ## Get the controller currently holding this object -func get_picked_up_by_controller() -> ARVRController: +func get_picked_up_by_controller() -> XRController3D: return by_controller @@ -328,18 +336,18 @@ func _start_ranged_grab() -> void: _state = PickableState.GRABBING_RANGED # Calculate the transform offset - var offset : Transform + var offset : Transform3D if _active_grab_point: offset = _active_grab_point.transform.inverse() else: - offset = Transform.IDENTITY + offset = Transform3D.IDENTITY # Create a XRToolsMoveTo to perform the remote-grab. The remote grab will move # us to the pickup object at the ranged-grab speed, and also takes into account # the center-pickup position _move_to = XRToolsMoveTo.new() _move_to.start(self, picked_up_by, offset, ranged_grab_speed) - _move_to.connect("move_complete", self, "_ranged_grab_complete") + _move_to.move_complete.connect(_ranged_grab_complete) self.add_child(_move_to) @@ -360,14 +368,14 @@ func _do_snap_grab() -> void: match hold_method: HoldMethod.REMOTE_TRANSFORM: # Calculate the snap transform for remote-transforming - var snap_transform: Transform + var snap_transform: Transform3D if _active_grab_point: snap_transform = _active_grab_point.transform.inverse() else: - snap_transform = Transform.IDENTITY + snap_transform = Transform3D.IDENTITY # Construct the remote transform - _remote_transform = RemoteTransform.new() + _remote_transform = RemoteTransform3D.new() _remote_transform.set_name("PickupRemoteTransform") picked_up_by.add_child(_remote_transform) _remote_transform.transform = snap_transform @@ -375,11 +383,11 @@ func _do_snap_grab() -> void: HoldMethod.REPARENT: # Calculate the snap transform for reparenting - var snap_transform: Transform + var snap_transform: Transform3D if _active_grab_point: snap_transform = _active_grab_point.global_transform.inverse() * global_transform else: - snap_transform = Transform.IDENTITY + snap_transform = Transform3D.IDENTITY # Reparent to the holder with snap transform original_parent.remove_child(self) @@ -401,7 +409,7 @@ func _do_precise_grab() -> void: var precise_transform = picked_up_by.global_transform.inverse() * global_transform # Construct the remote transform - _remote_transform = RemoteTransform.new() + _remote_transform = RemoteTransform3D.new() _remote_transform.set_name("PickupRemoteTransform") picked_up_by.add_child(_remote_transform) _remote_transform.transform = picked_up_by.global_transform.inverse() * global_transform diff --git a/addons/godot-xr-tools/objects/pickable.tscn b/addons/godot-xr-tools/objects/pickable.tscn index 8bc4a9a2..6f34320a 100644 --- a/addons/godot-xr-tools/objects/pickable.tscn +++ b/addons/godot-xr-tools/objects/pickable.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://c8l60rnugru40"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/pickable.gd" id="1"] -[node name="Pickable" type="RigidBody"] +[node name="PickableObject" type="RigidBody3D"] collision_layer = 4 collision_mask = 196615 -script = ExtResource( 1 ) +freeze_mode = 1 +script = ExtResource("1") -[node name="CollisionShape" type="CollisionShape" parent="."] +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] diff --git a/addons/godot-xr-tools/objects/return_to_snap_zone.gd b/addons/godot-xr-tools/objects/return_to_snap_zone.gd index a3bc1baf..b708d559 100644 --- a/addons/godot-xr-tools/objects/return_to_snap_zone.gd +++ b/addons/godot-xr-tools/objects/return_to_snap_zone.gd @@ -1,5 +1,6 @@ -tool -class_name XRToolsReturnToSnapZone, "res://addons/godot-xr-tools/editor/icons/hand.svg" +@tool +@icon("res://addons/godot-xr-tools/editor/icons/hand.svg") +class_name XRToolsReturnToSnapZone extends Node @@ -10,10 +11,10 @@ extends Node ## Snap zone path -export var snap_zone_path : NodePath +@export var snap_zone_path : NodePath ## Return delay -export var return_delay : float = 1.0 +@export var return_delay : float = 1.0 # Pickable object to control @@ -29,9 +30,9 @@ var _return_counter : float = 0.0 var _held := false -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsReturnToSnapZone" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsReturnToSnapZone" # Called when the node enters the scene tree for the first time. @@ -39,8 +40,8 @@ func _ready() -> void: # Get the pickable (parent of this node) _pickable = get_parent() as XRToolsPickable if _pickable: - _pickable.connect("picked_up", self, "_on_picked_up") - _pickable.connect("dropped", self, "_on_dropped") + _pickable.picked_up.connect(_on_picked_up) + _pickable.dropped.connect(_on_dropped) # Get the optional snap-zone _snap_zone = get_node_or_null(snap_zone_path) @@ -95,10 +96,12 @@ func _on_dropped(_pickable) -> void: # This method verifies the pose area has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Verify this node is a child of a pickable if not get_parent() is XRToolsPickable: - return "Must be a child of a pickable" + warnings.append("Must be a child of a pickable") - # Pass basic validation - return "" + # Return warnings + return warnings diff --git a/addons/godot-xr-tools/objects/snap_zone.gd b/addons/godot-xr-tools/objects/snap_zone.gd index 05d48d10..d3493425 100644 --- a/addons/godot-xr-tools/objects/snap_zone.gd +++ b/addons/godot-xr-tools/objects/snap_zone.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsSnapZone -extends Area +extends Area3D ## Signal emitted when the snap-zone picks something up @@ -24,33 +24,33 @@ enum SnapMode { ## Enable or disable snap-zone -export var enabled : bool = true +@export var enabled : bool = true ## Grab distance -export var grab_distance : float = 0.3 setget _set_grab_distance +@export var grab_distance : float = 0.3: set = _set_grab_distance ## Snap mode -export (SnapMode) var snap_mode : int = SnapMode.DROPPED setget _set_snap_mode +@export var snap_mode : SnapMode = SnapMode.DROPPED: set = _set_snap_mode ## Require snap items to be in specified group -export var snap_require : String = "" +@export var snap_require : String = "" ## Deny snapping items in the specified group -export var snap_exclude : String = "" +@export var snap_exclude : String = "" ## Require grab-by to be in the specified group -export var grab_require : String = "" +@export var grab_require : String = "" ## Deny grab-by -export var grab_exclude : String= "" +@export var grab_exclude : String= "" ## Initial object in snap zone -export var initial_object : NodePath +@export var initial_object : NodePath # Public fields -var closest_object : Spatial = null -var picked_up_object : Spatial = null +var closest_object : Node3D = null +var picked_up_object : Node3D = null var picked_up_ranged : bool = true @@ -58,14 +58,14 @@ var picked_up_ranged : bool = true var _object_in_grab_area = Array() -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsSnapZone" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsSnapZone" func _ready(): # Set collision shape radius - $CollisionShape.shape.radius = grab_distance + $CollisionShape3D.shape.radius = grab_distance # Perform updates _update_snap_mode() @@ -100,7 +100,7 @@ func _process(_delta): # Pickable Method: snap-zone can be grabbed if holding object -func can_pick_up(by: Spatial) -> bool: +func can_pick_up(by: Node3D) -> bool: # Refuse if not enabled if not enabled: return false @@ -110,11 +110,11 @@ func can_pick_up(by: Spatial) -> bool: return false # Refuse if the grab-by is not in the required group - if not grab_require.empty() and not by.is_in_group(grab_require): + if not grab_require.is_empty() and not by.is_in_group(grab_require): return false # Refuse if the grab-by is in the excluded group - if not grab_exclude.empty() and by.is_in_group(grab_exclude): + if not grab_exclude.is_empty() and by.is_in_group(grab_exclude): return false # Grab is permitted @@ -142,7 +142,7 @@ func decrease_is_closest(): # Pickable Method: Object being grabbed from this snap zone -func pick_up(_by: Spatial, _with_controller: ARVRController) -> void: +func pick_up(_by: Node3D, _with_controller: XRController3D) -> void: pass @@ -175,7 +175,7 @@ func _initial_object_check() -> void: # Called when a body enters the snap zone -func _on_snap_zone_body_entered(target: Spatial) -> void: +func _on_snap_zone_body_entered(target: Node3D) -> void: # Ignore objects already known about if _object_in_grab_area.find(target) >= 0: return @@ -185,11 +185,11 @@ func _on_snap_zone_body_entered(target: Spatial) -> void: return # Reject objects not in the required snap group - if not snap_require.empty() and not target.is_in_group(snap_require): + if not snap_require.is_empty() and not target.is_in_group(snap_require): return # Reject objects in the excluded snap group - if not snap_exclude.empty() and target.is_in_group(snap_exclude): + if not snap_exclude.is_empty() and target.is_in_group(snap_exclude): return # Reject climbable objects @@ -202,7 +202,7 @@ func _on_snap_zone_body_entered(target: Spatial) -> void: # If this snap zone is configured to snap objects that are dropped, then # start listening for the objects dropped signal if snap_mode == SnapMode.DROPPED and target.has_signal("dropped"): - target.connect("dropped", self, "_on_target_dropped", [], CONNECT_DEFERRED) + target.connect("dropped", _on_target_dropped, CONNECT_DEFERRED) # Show highlight when something could be snapped if not is_instance_valid(picked_up_object): @@ -210,16 +210,16 @@ func _on_snap_zone_body_entered(target: Spatial) -> void: # Called when a body leaves the snap zone -func _on_snap_zone_body_exited(target: Spatial) -> void: +func _on_snap_zone_body_exited(target: Node3D) -> void: # Ensure the object is not in our list _object_in_grab_area.erase(target) # Stop listening for dropped signals - if target.has_signal("dropped") and target.is_connected("dropped", self, "_on_target_dropped"): - target.disconnect("dropped", self, "_on_target_dropped") + if target.has_signal("dropped") and target.is_connected("dropped", _on_target_dropped): + target.disconnect("dropped", _on_target_dropped) # Hide highlight when nothing could be snapped - if _object_in_grab_area.empty(): + if _object_in_grab_area.is_empty(): emit_signal("close_highlight_updated", self, false) @@ -229,7 +229,7 @@ func has_snapped_object() -> bool: # Pick up the specified object -func pick_up_object(target: Spatial) -> void: +func pick_up_object(target: Node3D) -> void: # check if already holding an object if is_instance_valid(picked_up_object): # skip if holding the target object @@ -255,12 +255,12 @@ func pick_up_object(target: Spatial) -> void: # Called when the grab distance has been modified func _set_grab_distance(new_value: float) -> void: grab_distance = new_value - if is_inside_tree() and $CollisionShape: - $CollisionShape.shape.radius = grab_distance + if is_inside_tree() and $CollisionShape3D: + $CollisionShape3D.shape.radius = grab_distance # Called when the snap mode property has been modified -func _set_snap_mode(new_value: int) -> void: +func _set_snap_mode(new_value: SnapMode) -> void: snap_mode = new_value if is_inside_tree(): _update_snap_mode() @@ -275,7 +275,7 @@ func _update_snap_mode() -> void: # Start monitoring all objects in range for drop for o in _object_in_grab_area: - o.connect("dropped", self, "_on_target_dropped", [], CONNECT_DEFERRED) + o.connect("dropped", _on_target_dropped, CONNECT_DEFERRED) SnapMode.RANGE: # Enable _process to scan for RANGE pickups @@ -283,11 +283,11 @@ func _update_snap_mode() -> void: # Clear any dropped signal hooks for o in _object_in_grab_area: - o.disconnect("dropped", self, "_on_target_dropped") + o.disconnect("dropped", _on_target_dropped) # Called when a target in our grab area is dropped -func _on_target_dropped(target: Spatial) -> void: +func _on_target_dropped(target: Node3D) -> void: # Skip if not enabled if not enabled: return diff --git a/addons/godot-xr-tools/objects/snap_zone.tscn b/addons/godot-xr-tools/objects/snap_zone.tscn index 84ca94db..011548f0 100644 --- a/addons/godot-xr-tools/objects/snap_zone.tscn +++ b/addons/godot-xr-tools/objects/snap_zone.tscn @@ -1,16 +1,17 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://ce7vysyvondf8"] -[ext_resource path="res://addons/godot-xr-tools/objects/snap_zone.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/snap_zone.gd" id="1"] -[sub_resource type="SphereShape" id=1] +[sub_resource type="SphereShape3D" id="1"] +radius = 0.05 -[node name="SnapZone" type="Area"] +[node name="SnapZone" type="Area3D"] collision_layer = 4 collision_mask = 65540 -script = ExtResource( 1 ) +script = ExtResource("1") -[node name="CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("1") [connection signal="body_entered" from="." to="." method="_on_snap_zone_body_entered"] [connection signal="body_exited" from="." to="." method="_on_snap_zone_body_exited"] diff --git a/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd b/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd index e4517255..f99ddfcc 100644 --- a/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd +++ b/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd @@ -1,5 +1,5 @@ -tool -extends Spatial +@tool +extends Node3D ## XR ToolsViewport 2D in 3D @@ -33,45 +33,43 @@ const DEFAULT_LAYER := 0b0000_0000_0001_0000_0000_0000_0000_0001 ## Viewport enabled property -export var enabled : bool = true setget set_enabled +@export var enabled : bool = true: set = set_enabled ## Screen size property -export var screen_size : Vector2 = Vector2(3.0, 2.0) setget set_screen_size +@export var screen_size : Vector2 = Vector2(3.0, 2.0): set = set_screen_size ## Viewport size property -export var viewport_size : Vector2 = Vector2(300.0, 200.0) setget set_viewport_size +@export var viewport_size : Vector2 = Vector2(300.0, 200.0): set = set_viewport_size ## Transparent property -export (TransparancyMode) \ - var transparent : int = TransparancyMode.TRANSPARENT setget set_transparent +@export var transparent : TransparancyMode = TransparancyMode.TRANSPARENT: set = set_transparent ## Alpha Scissor Threshold property -export var alpha_scissor_threshold : float = 0.25 setget set_alpha_scissor_threshold +@export var alpha_scissor_threshold : float = 0.25: set = set_alpha_scissor_threshold ## Unshaded -export var unshaded : bool = false setget set_unshaded +@export var unshaded : bool = false: set = set_unshaded ## Scene property -export var scene : PackedScene setget set_scene +@export var scene : PackedScene: set = set_scene ## Display properties -export var filter : bool = true setget set_filter +@export var filter : bool = true: set = set_filter ## Update Mode property -export (UpdateMode) var update_mode = UpdateMode.UPDATE_ALWAYS setget set_update_mode +@export var update_mode : UpdateMode = UpdateMode.UPDATE_ALWAYS: set = set_update_mode ## Update throttle property -export var throttle_fps : float = 30.0 +@export var throttle_fps : float = 30.0 ## Collision layer -export (int, LAYERS_3D_PHYSICS) \ - var collision_layer : int = DEFAULT_LAYER setget set_collision_layer +@export_flags_3d_physics var collision_layer : int = DEFAULT_LAYER: set = set_collision_layer var is_ready : bool = false var scene_node : Node var viewport_texture : ViewportTexture -var material : SpatialMaterial +var material : StandardMaterial3D var time_since_last_update : float = 0.0 @@ -80,10 +78,10 @@ func _ready(): is_ready = true # Setup our viewport texture and material - material = SpatialMaterial.new() + material = StandardMaterial3D.new() material.flags_unshaded = true - material.params_cull_mode = SpatialMaterial.CULL_DISABLED - $Screen.set_surface_material(0, material) + material.params_cull_mode = StandardMaterial3D.CULL_DISABLED + $Screen.set_surface_override_material(0, material) # apply properties _update_enabled() @@ -121,11 +119,11 @@ func _on_pointer_exited(): # Handler for input eventsd func _input(event): - $Viewport.input(event) + $Viewport.push_input(event) # Process event func _process(delta): - if Engine.editor_hint: + if Engine.is_editor_hint(): # Don't run in editor (will auto run on load) set_process(false) return @@ -135,7 +133,7 @@ func _process(delta): time_since_last_update += delta if time_since_last_update > frame_time: # Trigger update - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE time_since_last_update = 0.0 else: # This is no longer needed @@ -163,7 +161,7 @@ func set_viewport_size(new_size: Vector2) -> void: # Set transparent property -func set_transparent(new_transparent: int) -> void: +func set_transparent(new_transparent: TransparancyMode) -> void: transparent = new_transparent if is_ready: _update_transparent() @@ -197,7 +195,7 @@ func set_filter(new_filter: bool) -> void: _update_filter() # Set update mode property -func set_update_mode(new_update_mode: int) -> void: +func set_update_mode(new_update_mode: UpdateMode) -> void: update_mode = new_update_mode if is_ready: _update_update_mode() @@ -212,17 +210,17 @@ func set_collision_layer(new_layer: int) -> void: # Enabled update handler func _update_enabled() -> void: - if Engine.editor_hint: + if Engine.is_editor_hint(): return - $StaticBody/CollisionShape.disabled = !enabled + $StaticBody3D/CollisionShape3D.disabled = !enabled # Screen size update handler func _update_screen_size() -> void: $Screen.mesh.size = screen_size - $StaticBody.screen_size = screen_size - $StaticBody/CollisionShape.shape.extents = Vector3( + $StaticBody3D.screen_size = screen_size + $StaticBody3D/CollisionShape3D.shape.extents = Vector3( screen_size.x * 0.5, screen_size.y * 0.5, 0.01) @@ -231,7 +229,7 @@ func _update_screen_size() -> void: # Viewport size update handler func _update_viewport_size() -> void: $Viewport.size = viewport_size - $StaticBody.viewport_size = viewport_size + $StaticBody3D.viewport_size = viewport_size # Update our viewport texture, it will have changed viewport_texture = $Viewport.get_texture() @@ -250,9 +248,9 @@ func _update_transparent() -> void: $Viewport.transparent_bg = transparent != TransparancyMode.OPAQUE # make sure we redraw the screen atleast once - if Engine.editor_hint or update_mode == UpdateMode.UPDATE_ONCE: + if Engine.is_editor_hint() or update_mode == UpdateMode.UPDATE_ONCE: # this will trigger redrawing our screen - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE # Unshaded update handler @@ -261,9 +259,9 @@ func _update_unshaded() -> void: material.flags_unshaded = unshaded # make sure we redraw the screen atleast once - if Engine.editor_hint or update_mode == UpdateMode.UPDATE_ONCE: + if Engine.is_editor_hint() or update_mode == UpdateMode.UPDATE_ONCE: # this will trigger redrawing our screen - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE # Scene update handler @@ -275,7 +273,7 @@ func _update_scene() -> void: # in with the new if scene: - scene_node = scene.instance() + scene_node = scene.instantiate() $Viewport.add_child(scene_node) # (or use the scene if there is one already under the Viewport) @@ -283,40 +281,40 @@ func _update_scene() -> void: scene_node = $Viewport.get_child(0) # make sure we update atleast once - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE # Filter update handler func _update_filter() -> void: - if viewport_texture: - viewport_texture.flags = Texture.FLAG_FILTER if filter else 0 + if material: + material.texture_filter = BaseMaterial3D.TEXTURE_FILTER_LINEAR if filter else 0 # make sure we redraw the screen atleast once - if Engine.editor_hint or update_mode == UpdateMode.UPDATE_ONCE: + if Engine.is_editor_hint() or update_mode == UpdateMode.UPDATE_ONCE: # this will trigger redrawing our screen - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE # Update mode handler func _update_update_mode() -> void: - if Engine.editor_hint: - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + if Engine.is_editor_hint(): + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE return if update_mode == UpdateMode.UPDATE_ONCE: # this will trigger redrawing our screen - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE set_process(false) elif update_mode == UpdateMode.UPDATE_ALWAYS: # redraw screen every frame - $Viewport.render_target_update_mode = Viewport.UPDATE_ALWAYS + $Viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS set_process(false) elif update_mode == UpdateMode.UPDATE_THROTTLED: # we will attempt to update the screen at the given framerate - $Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE set_process(true) # Collision layer update handler func _update_collision_layer() -> void: - $StaticBody.collision_layer = collision_layer + $StaticBody3D.collision_layer = collision_layer diff --git a/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn b/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn index 12200783..fe4adbc9 100644 --- a/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn +++ b/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn @@ -1,50 +1,50 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=7 format=3 uid="uid://clujaf3u776a3"] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.gd" type="Script" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.gd" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd" id="2"] -[sub_resource type="QuadMesh" id=1] +[sub_resource type="QuadMesh" id="1"] resource_local_to_scene = true -size = Vector2( 3, 2 ) +size = Vector2(3, 2) -[sub_resource type="ViewportTexture" id=5] -flags = 4 +[sub_resource type="ViewportTexture" id="ViewportTexture_0vyuj"] -[sub_resource type="SpatialMaterial" id=6] -flags_transparent = true -params_cull_mode = 2 -albedo_texture = SubResource( 5 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ney1s"] +transparency = 1 +cull_mode = 2 +shading_mode = 0 +albedo_texture = SubResource("ViewportTexture_0vyuj") +texture_filter = 1 -[sub_resource type="BoxShape" id=4] +[sub_resource type="BoxShape3D" id="4"] resource_local_to_scene = true -extents = Vector3( 1.5, 1, 0.01 ) +size = Vector3(3, 2, 0.02) -[node name="Viewport2Din3D" type="Spatial"] -script = ExtResource( 2 ) +[node name="Viewport2Din3D" type="Node3D"] +script = ExtResource("1") -[node name="Viewport" type="Viewport" parent="."] -size = Vector2( 300, 200 ) -transparent_bg = true +[node name="Viewport" type="SubViewport" parent="."] disable_3d = true -usage = 0 -render_target_v_flip = true +transparent_bg = true +gui_embed_subwindows = true +size = Vector2i(300, 200) render_target_update_mode = 1 -[node name="Screen" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) -material/0 = SubResource( 6 ) +[node name="Screen" type="MeshInstance3D" parent="."] +mesh = SubResource("1") +surface_material_override/0 = SubResource("StandardMaterial3D_ney1s") -[node name="StaticBody" type="StaticBody" parent="."] +[node name="StaticBody3D" type="StaticBody3D" parent="."] collision_layer = 1048577 collision_mask = 0 -script = ExtResource( 1 ) -viewport_size = Vector2( 300, 200 ) +script = ExtResource("2") +viewport_size = Vector2(300, 200) -[node name="CollisionShape" type="CollisionShape" parent="StaticBody"] -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] +shape = SubResource("4") -[connection signal="pointer_entered" from="StaticBody" to="." method="_on_pointer_entered"] -[connection signal="pointer_exited" from="StaticBody" to="." method="_on_pointer_exited"] -[connection signal="pointer_moved" from="StaticBody" to="StaticBody" method="_on_pointer_moved"] -[connection signal="pointer_pressed" from="StaticBody" to="StaticBody" method="_on_pointer_pressed"] -[connection signal="pointer_released" from="StaticBody" to="StaticBody" method="_on_pointer_released"] +[connection signal="pointer_entered" from="StaticBody3D" to="." method="_on_pointer_entered"] +[connection signal="pointer_exited" from="StaticBody3D" to="." method="_on_pointer_exited"] +[connection signal="pointer_moved" from="StaticBody3D" to="StaticBody3D" method="_on_pointer_moved"] +[connection signal="pointer_pressed" from="StaticBody3D" to="StaticBody3D" method="_on_pointer_pressed"] +[connection signal="pointer_released" from="StaticBody3D" to="StaticBody3D" method="_on_pointer_released"] diff --git a/addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd b/addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd index 85617c71..79e63128 100644 --- a/addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd +++ b/addons/godot-xr-tools/objects/viewport_2d_in_3d_body.gd @@ -1,7 +1,7 @@ extends XRToolsInteractableBody -export var screen_size = Vector2(3.0, 2.0) -export var viewport_size = Vector2(100.0, 100.0) +@export var screen_size = Vector2(3.0, 2.0) +@export var viewport_size = Vector2(100.0, 100.0) var vp = null var mouse_mask = 0 @@ -12,8 +12,8 @@ func _ready(): # Convert intersection point to screen coordinate func global_to_viewport(p_at): - var t = $CollisionShape.global_transform - var at = t.xform_inv(p_at) + var t = $CollisionShape3D.global_transform + var at = t.inverse() * p_at # Convert to screen space at.x = ((at.x / screen_size.x) + 0.5) * viewport_size.x @@ -34,7 +34,7 @@ func _on_pointer_moved(from, to): event.set_pressure(mouse_mask) if vp: - vp.input(event) + vp.push_input(event) func _on_pointer_pressed(at): var local_at = global_to_viewport(at) @@ -49,7 +49,7 @@ func _on_pointer_pressed(at): event.set_button_mask(mouse_mask) if vp: - vp.input(event) + vp.push_input(event) func _on_pointer_released(at): var local_at = global_to_viewport(at) @@ -64,5 +64,5 @@ func _on_pointer_released(at): event.set_button_mask(mouse_mask) if vp: - vp.input(event) + vp.push_input(event) diff --git a/addons/godot-xr-tools/objects/virtual_keyboard.tscn b/addons/godot-xr-tools/objects/virtual_keyboard.tscn index 36a8a7d2..4d1072f4 100644 --- a/addons/godot-xr-tools/objects/virtual_keyboard.tscn +++ b/addons/godot-xr-tools/objects/virtual_keyboard.tscn @@ -1,13 +1,13 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://dgdb1texynduw"] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.tscn" type="PackedScene" id=2] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://lauwp8okd1vh" path="res://addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.tscn" id="2"] -[node name="VirtualKeyboard" type="Spatial"] +[node name="VirtualKeyboard" type="Node3D"] -[node name="Viewport2Din3D" parent="." instance=ExtResource( 1 )] -screen_size = Vector2( 1.5, 0.558 ) -viewport_size = Vector2( 390, 145 ) -scene = ExtResource( 2 ) +[node name="Viewport2Din3D" parent="." instance=ExtResource("1")] +screen_size = Vector2(1.5, 0.558) +viewport_size = Vector2(390, 145) +scene = ExtResource("2") update_mode = 2 throttle_fps = 15.0 diff --git a/addons/godot-xr-tools/objects/wind_area.gd b/addons/godot-xr-tools/objects/wind_area.gd index 9671fd69..536ac702 100644 --- a/addons/godot-xr-tools/objects/wind_area.gd +++ b/addons/godot-xr-tools/objects/wind_area.gd @@ -1,14 +1,14 @@ -tool +@tool class_name XRToolsWindArea -extends Area +extends Area3D ## Vector (direction and magnitude) of wind in this area -export var wind_vector : Vector3 = Vector3.ZERO +@export var wind_vector : Vector3 = Vector3.ZERO ## Wind drag factor -export var drag : float = 1.0 +@export var drag : float = 1.0 -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsWindArea" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsWindArea" diff --git a/addons/godot-xr-tools/objects/wind_area.tscn b/addons/godot-xr-tools/objects/wind_area.tscn index d2550448..0e8d9118 100644 --- a/addons/godot-xr-tools/objects/wind_area.tscn +++ b/addons/godot-xr-tools/objects/wind_area.tscn @@ -1,11 +1,11 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://nack1qite6lx"] -[ext_resource path="res://addons/godot-xr-tools/objects/wind_area.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/wind_area.gd" id="1"] -[node name="WindArea" type="Area"] +[node name="WindArea" type="Area3D"] collision_layer = 524288 collision_mask = 0 monitoring = false -script = ExtResource( 1 ) +script = ExtResource("1") -[node name="CollisionShape" type="CollisionShape" parent="."] +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] diff --git a/addons/godot-xr-tools/overrides/ground_physics.gd b/addons/godot-xr-tools/overrides/ground_physics.gd index ee2cfc36..55b03084 100644 --- a/addons/godot-xr-tools/overrides/ground_physics.gd +++ b/addons/godot-xr-tools/overrides/ground_physics.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsGroundPhysics extends Node @@ -13,27 +13,26 @@ extends Node ## enable the appropriate flags and provide new values. -## XRToolsGroundPhysicsSettings to apply - can only be typed in Godot 4+ -export var physics : Resource +## XRToolsGroundPhysicsSettings to apply +@export var physics : XRToolsGroundPhysicsSettings -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsGroundPhysics" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsGroundPhysics" # This method verifies the ground physics has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Verify physics specified if !physics: - return "Physics must be specified" - - # Verify physics is of the correct type - if !physics is XRToolsGroundPhysicsSettings: - return "Physics must be an XRToolsGroundPhysicsSettings" + warnings.append("Physics must be specified") + elif !physics is XRToolsGroundPhysicsSettings: + warnings.append("Physics must be an XRToolsGroundPhysicsSettings") - # Report valid - return "" + return warnings # Get the physics from a ground physics node static func get_physics( diff --git a/addons/godot-xr-tools/overrides/ground_physics.tscn b/addons/godot-xr-tools/overrides/ground_physics.tscn index be29f73c..53439a51 100644 --- a/addons/godot-xr-tools/overrides/ground_physics.tscn +++ b/addons/godot-xr-tools/overrides/ground_physics.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://ohmfk2ly8312"] -[ext_resource path="res://addons/godot-xr-tools/overrides/ground_physics.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/overrides/ground_physics.gd" id="1"] [node name="GroundPhysics" type="Node"] -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/overrides/ground_physics_settings.gd b/addons/godot-xr-tools/overrides/ground_physics_settings.gd index 1118fc3f..3009138a 100644 --- a/addons/godot-xr-tools/overrides/ground_physics_settings.gd +++ b/addons/godot-xr-tools/overrides/ground_physics_settings.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsGroundPhysicsSettings extends Resource @@ -27,8 +27,7 @@ enum GroundPhysicsFlags { } ## Flags defining which ground velocities are enabled -export (int, FLAGS, - "Move Drag", +@export_flags("Move Drag", "Move Traction", "Move Max Slope", "Jump Max Slope", @@ -37,28 +36,28 @@ export (int, FLAGS, "Bounce Threshold") var flags : int = 0 ## Movement drag factor -export var move_drag : float = 5.0 +@export var move_drag : float = 5.0 ## Movement traction factor -export var move_traction : float = 30.0 +@export var move_traction : float = 30.0 ## Stop sliding on slope -export var stop_on_slope : bool = true +@export var stop_on_slope : bool = true ## Movement maximum slope -export (float, 0.0, 85.0) var move_max_slope : float = 45.0 +@export_range(0.0, 85.0) var move_max_slope : float = 45.0 ## Jump maximum slope -export (float, 0.0, 85.0) var jump_max_slope : float = 45.0 +@export_range(0.0, 85.0) var jump_max_slope : float = 45.0 ## Jump velocity -export var jump_velocity : float = 3.0 +@export var jump_velocity : float = 3.0 ## Ground bounciness (0 = no bounce, 1 = full bounciness) -export var bounciness : float = 0.0 +@export var bounciness : float = 0.0 ## Bounce threshold (skip bounce if velocity less than threshold) -export var bounce_threshold : float = 1.0 +@export var bounce_threshold : float = 1.0 # Handle class initialization with default parameters diff --git a/addons/godot-xr-tools/player/player_body.gd b/addons/godot-xr-tools/player/player_body.gd index 1f095f80..c019518d 100644 --- a/addons/godot-xr-tools/player/player_body.gd +++ b/addons/godot-xr-tools/player/player_body.gd @@ -1,13 +1,14 @@ -tool -class_name XRToolsPlayerBody, "res://addons/godot-xr-tools/editor/icons/body.svg" -extends KinematicBody +@tool +@icon("res://addons/godot-xr-tools/editor/icons/body.svg") +class_name XRToolsPlayerBody +extends CharacterBody3D ## XR Tools Player Physics Body Script ## ## This node provides the player with a physics body. The body is a -## [CapsuleShape] which tracks the player location as measured by the -## [ARVRCamera] for the players head. +## [CapsuleShape3D] which tracks the player location as measured by the +## [XRCamera3D] for the players head. ## ## The player body can detect when the player is in the air, on the ground, ## or on a steep slope. @@ -15,7 +16,7 @@ extends KinematicBody ## Player movement is achieved by a number of movement providers attached to ## either the player or their controllers. ## -## After the player body moves, the [ARVROrigin] is updated as necessary to +## After the player body moves, the [XROrigin3D] is updated as necessary to ## track the players movement. @@ -42,37 +43,38 @@ const NEAR_GROUND_DISTANCE := 1.0 ## If true, the player body performs physics processing and movement -export var enabled : bool = true setget set_enabled +@export var enabled : bool = true: set = set_enabled ## Radius of the player body collider -export var player_radius : float = 0.2 setget set_player_radius +@export var player_radius : float = 0.2: set = set_player_radius ## Player head height (distance between between camera and top of head) -export var player_head_height : float = 0.1 +@export var player_head_height : float = 0.1 ## Minimum player height -export var player_height_min : float = 0.6 +@export var player_height_min : float = 0.6 ## Maximum player height -export var player_height_max : float = 2.2 +@export var player_height_max : float = 2.2 ## Eyes forward offset from center of body in player_radius units -export (float, 0.0, 1.0) var eye_forward_offset : float = 0.5 +@export_range(0.0, 1.0) var eye_forward_offset : float = 0.5 ## Mix factor for body orientation -export (float, 0.0, 1.0) var body_forward_mix : float = 0.75 +@export_range(0.0, 1.0) var body_forward_mix : float = 0.75 ## Lets the player push rigid bodies -export var push_rigid_bodies : bool = true +@export var push_rigid_bodies : bool = true -## Default ground physics setting - can only be typed in Godot 4+ -export var physics : Resource setget set_physics +## Default ground physics settings +@export var physics : XRToolsGroundPhysicsSettings: set = set_physics ## Option for specifying when ground control is allowed -export (GroundControl) var ground_control : int = GroundControl.ON_GROUND +@export var ground_control : GroundControl = GroundControl.ON_GROUND -## Player 3D Velocity - modifiiable by [XRToolsMovementProvider] nodes -var velocity : Vector3 = Vector3.ZERO + +## Player 3D Velocity - modified by [XRToolsMovementProvider] nodes +#var velocity : Vector3 = Vector3.ZERO ## Current player gravity var gravity : Vector3 = Vector3.ZERO @@ -90,7 +92,7 @@ var ground_vector : Vector3 = Vector3.UP var ground_angle : float = 0.0 ## Ground node the player is touching -var ground_node : Spatial = null +var ground_node : Node3D = null ## Ground physics override (if present) var ground_physics : XRToolsGroundPhysicsSettings = null @@ -129,7 +131,7 @@ var _player_height_overrides := { } var _player_height_override : float = -1.0 # Previous ground node -var _previous_ground_node : Spatial = null +var _previous_ground_node : Node3D = null # Previous ground local position var _previous_ground_local : Vector3 = Vector3.ZERO @@ -138,55 +140,53 @@ var _previous_ground_local : Vector3 = Vector3.ZERO var _previous_ground_global : Vector3 = Vector3.ZERO # Player body Collision node -var _collision_node : CollisionShape +var _collision_node : CollisionShape3D -## ARVROrigin node -onready var origin_node : ARVROrigin = ARVRHelpers.get_arvr_origin(self) +## XROrigin3D node +@onready var origin_node : XROrigin3D = XRHelpers.get_xr_origin(self) -## ARVRCamera node -onready var camera_node : ARVRCamera = ARVRHelpers.get_arvr_camera(self) +## XRCamera3D node +@onready var camera_node : XRCamera3D = XRHelpers.get_xr_camera(self) -## Left hand ARVRController node -onready var left_hand_node : ARVRController = ARVRHelpers.get_left_controller(self) +## Left hand XRController3D node +@onready var left_hand_node : XRController3D = XRHelpers.get_left_controller(self) -## Right hand ARVRController node -onready var right_hand_node : ARVRController = ARVRHelpers.get_right_controller(self) +## Right hand XRController3D node +@onready var right_hand_node : XRController3D = XRHelpers.get_right_controller(self) ## Default physics (if not specified by the user or the current ground) -onready var default_physics = _guaranteed_physics() +@onready var default_physics = _guaranteed_physics() -## Class to sort movement providers by order -class SortProviderByOrder: - static func sort_by_order(a, b) -> bool: - return true if a.order < b.order else false +## Function to sort movement providers by order +func sort_by_order(a, b) -> bool: + return true if a.order < b.order else false -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsPlayerBody" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsPlayerBody" # Called when the node enters the scene tree for the first time. func _ready(): # Set as toplevel means our PlayerBody is positioned in global space. # It is not moved when its parent moves. - set_as_toplevel(true) + set_as_top_level(true) # Create our collision shape, height will be updated later - var capsule = CapsuleShape.new() + var capsule = CapsuleShape3D.new() capsule.radius = player_radius capsule.height = 1.4 - _collision_node = CollisionShape.new() + _collision_node = CollisionShape3D.new() _collision_node.shape = capsule - _collision_node.transform.basis = Basis(Vector3(0.5 * PI, 0.0, 0.0)) _collision_node.transform.origin = Vector3(0.0, 0.8, 0.0) add_child(_collision_node) # Get the movement providers ordered by increasing order _movement_providers = get_tree().get_nodes_in_group("movement_providers") - _movement_providers.sort_custom(SortProviderByOrder, "sort_by_order") + _movement_providers.sort_custom(sort_by_order) # Propagate defaults _update_enabled() @@ -215,14 +215,14 @@ func _update_player_radius() -> void: if _collision_node and _collision_node.shape: _collision_node.shape.radius = player_radius -func set_physics(new_value: Resource) -> void: +func set_physics(new_value: XRToolsGroundPhysicsSettings) -> void: # Save the property physics = new_value default_physics = _guaranteed_physics() func _physics_process(delta: float): # Do not run physics if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # If disabled then turn of physics processing and bail out @@ -239,7 +239,7 @@ func _physics_process(delta: float): up_player_plane = Plane(up_player_vector, 0.0) # Determine environmental gravity - var gravity_state := PhysicsServer.body_get_direct_state(get_rid()) + var gravity_state := PhysicsServer3D.body_get_direct_state(get_rid()) gravity = gravity_state.total_gravity # Update the kinematic body to be under the camera @@ -269,7 +269,7 @@ func _physics_process(delta: float): # Run the movement providers in order. The providers can: # - Move the kinematic node around (to move the player) - # - Rotate the ARVROrigin around the camera (to rotate the player) + # - Rotate the XROrigin3D around the camera (to rotate the player) # - Read and modify the player velocity # - Read and modify the ground-control velocity # - Perform exclusive updating of the player (bypassing other movement providers) @@ -293,7 +293,7 @@ func _physics_process(delta: float): velocity += gravity * delta _apply_velocity_and_control(delta) - # Apply the player-body movement to the ARVR origin + # Apply the player-body movement to the XR origin var movement := global_transform.origin - position_before_movement origin_node.global_transform.origin += movement @@ -325,7 +325,7 @@ func request_jump(skip_jump_velocity := false): # Perform the jump if !skip_jump_velocity: - velocity += ground_vector * jump_velocity * ARVRServer.world_scale + velocity += ground_vector * jump_velocity * XRServer.world_scale # Report the jump emit_signal("player_jumped") @@ -334,19 +334,18 @@ func request_jump(skip_jump_velocity := false): ## This method moves the players body using the provided velocity. Movement ## providers may use this function if they are exclusively driving the player. func move_body(p_velocity: Vector3) -> Vector3: - return move_and_slide( - p_velocity, - up_gravity_vector, - false, - 4, - 0.785398, - push_rigid_bodies) - -## This method rotates the player by rotating the [ARVROrigin] around the camera. + velocity = p_velocity + max_slides = 4 + up_direction = up_gravity_vector + # push_rigid_bodies seems to no longer be supported... + move_and_slide() + return velocity + +## This method rotates the player by rotating the [XROrigin3D] around the camera. func rotate_player(angle: float): - var t1 := Transform() - var t2 := Transform() - var rot := Transform() + var t1 := Transform3D() + var t2 := Transform3D() + var rot := Transform3D() t1.origin = -camera_node.transform.origin t2.origin = camera_node.transform.origin @@ -364,15 +363,15 @@ func slew_up(up: Vector3, slew: float) -> void: var current_origin := origin_node.global_transform # Save the player foot global and local positions - var ref_pos_global := global_translation - var ref_pos_local : Vector3 = current_origin.xform_inv(ref_pos_global) + var ref_pos_global := global_position + var ref_pos_local : Vector3 = ref_pos_global * current_origin # Calculate the target origin var target_origin := current_origin target_origin.basis.y = up.normalized() target_origin.basis.x = target_origin.basis.y.cross(target_origin.basis.z).normalized() target_origin.basis.z = target_origin.basis.x.cross(target_origin.basis.y).normalized() - target_origin.origin = ref_pos_global - target_origin.basis.xform(ref_pos_local) + target_origin.origin = ref_pos_global - target_origin.basis * ref_pos_local # Calculate the new origin var new_origin := current_origin.interpolate_with(target_origin, slew).orthonormalized() @@ -432,19 +431,19 @@ func _update_body_under_camera(): var player_height: float = clamp( camera_node.transform.origin.y + player_head_height + player_height_offset + XRToolsUserSettings.player_height_adjust, - player_height_min * ARVRServer.world_scale, - player_height_max * ARVRServer.world_scale) + player_height_min * XRServer.world_scale, + player_height_max * XRServer.world_scale) # Allow forced overriding of height if _player_height_override >= 0.0: player_height = _player_height_override # Ensure player height makes mathematical sense - player_height = max(player_height, player_radius * 2.0) + player_height = max(player_height, player_radius) # Adjust the collision shape to match the player geometry _collision_node.shape.radius = player_radius - _collision_node.shape.height = player_height - (player_radius * 2.0) + _collision_node.shape.height = player_height _collision_node.transform.origin.y = (player_height / 2.0) # Center the kinematic body on the ground under the camera @@ -454,8 +453,7 @@ func _update_body_under_camera(): curr_transform.origin = camera_transform.origin curr_transform.origin += up_player_vector * (player_head_height - player_height) - # The camera/eyes are towards the front of the body, - # so move the body back slightly and face in the same direction + # The camera/eyes are towards the front of the body, so move the body back slightly var forward_dir := _estimate_body_forward_dir() if forward_dir.length() > 0.01: curr_transform = curr_transform.looking_at(curr_transform.origin + forward_dir, up_player_vector) @@ -468,7 +466,7 @@ func _update_body_under_camera(): func _update_ground_information(delta: float): # Test how close we are to the ground var ground_collision := move_and_collide( - up_gravity_vector * -NEAR_GROUND_DISTANCE, true, true, true) + up_gravity_vector * -NEAR_GROUND_DISTANCE, true) # Handle no collision (or too far away to care about) if !ground_collision: @@ -483,12 +481,12 @@ func _update_ground_information(delta: float): # Categorize the type of ground contact near_ground = true - on_ground = ground_collision.travel.length() <= ON_GROUND_DISTANCE + on_ground = ground_collision.get_travel().length() <= ON_GROUND_DISTANCE # Save the ground information from the collision - ground_vector = ground_collision.normal - ground_angle = rad2deg(ground_collision.get_angle(up_gravity_vector)) - ground_node = ground_collision.collider + ground_vector = ground_collision.get_normal() + ground_angle = rad_to_deg(ground_collision.get_angle(0, up_gravity_vector)) + ground_node = ground_collision.get_collider() # Select the ground physics var physics_node := ground_node.get_node_or_null("GroundPhysics") as XRToolsGroundPhysics @@ -507,7 +505,7 @@ func _update_ground_information(delta: float): # Update ground velocity information _previous_ground_node = ground_node - _previous_ground_global = ground_collision.position + _previous_ground_global = ground_collision.get_position() _previous_ground_local = ground_node.to_local(_previous_ground_global) @@ -531,13 +529,13 @@ func _apply_velocity_and_control(delta: float): control_velocity = ( dir_forward * -ground_control_velocity.y + dir_right * ground_control_velocity.x - ) * ARVRServer.world_scale + ) * XRServer.world_scale # Apply control velocity to horizontal velocity based on traction var current_traction := XRToolsGroundPhysicsSettings.get_move_traction( ground_physics, default_physics) var traction_factor: float = clamp(current_traction * delta, 0.0, 1.0) - horizontal_velocity = lerp(horizontal_velocity, control_velocity, traction_factor) + horizontal_velocity = horizontal_velocity.lerp(control_velocity, traction_factor) # Prevent the player from moving up steep slopes var current_max_slope := XRToolsGroundPhysicsSettings.get_move_max_slope( @@ -553,7 +551,7 @@ func _apply_velocity_and_control(delta: float): var current_drag := XRToolsGroundPhysicsSettings.get_move_drag( ground_physics, default_physics) var drag_factor: float = clamp(current_drag * delta, 0, 1) - horizontal_velocity = lerp(horizontal_velocity, control_velocity, drag_factor) + horizontal_velocity = horizontal_velocity.lerp(control_velocity, drag_factor) # Combine the velocities back to a 3-space velocity local_velocity = horizontal_velocity + vertical_velocity @@ -562,10 +560,10 @@ func _apply_velocity_and_control(delta: float): velocity = move_body(local_velocity + ground_velocity) # Perform bounce test if a collision occurred - if get_slide_count(): + if get_slide_collision_count(): # Get the collider the player collided with var collision := get_slide_collision(0) - var collision_node := collision.collider + var collision_node := collision.get_collider() # Check for a GroundPhysics node attached to the collider var collision_physics_node := \ @@ -580,7 +578,7 @@ func _apply_velocity_and_control(delta: float): collision_physics, default_physics) var bounciness := XRToolsGroundPhysicsSettings.get_bounciness( collision_physics, default_physics) - var magnitude := -collision.normal.dot(local_velocity) + var magnitude := -collision.get_normal().dot(local_velocity) # Detect if bounce should be performed if bounciness > 0.0 and magnitude >= bounce_threshold: @@ -621,51 +619,54 @@ func _guaranteed_physics(): # This method verifies the XRToolsPlayerBody has a valid configuration. Specifically it # checks the following: -# - ARVROrigin can be identified -# - ARVRCamera can be identified +# - XROrigin3D can be identified +# - XRCamera3D can be identified # - Player radius is valid # - Maximum slope is valid -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Check the origin node - var test_origin_node = ARVRHelpers.get_arvr_origin(self) + var test_origin_node := XRHelpers.get_xr_origin(self) if !test_origin_node: - return "Unable to find ARVR Origin node" + warnings.append("Unable to find XR Origin node") # Check the camera node - var test_camera_node = ARVRHelpers.get_arvr_camera(self) + var test_camera_node := XRHelpers.get_xr_camera(self) if !test_camera_node: - return "Unable to find ARVR Camera node" + warnings.append("Unable to find XR Camera node") # Verify the player radius is valid if player_radius <= 0: - return "Player radius must be configured" + warnings.append("Player radius must be configured") # Verify the player height minimum is valid if player_height_min < player_radius * 2.0: - return "Player height minimum smaller than 2x radius" + warnings.append("Player height minimum smaller than 2x radius") # Verify the player height maximum is valid if player_height_max < player_height_min: - return "Player height maximum cannot be smaller than minimum" + warnings.append("Player height maximum cannot be smaller than minimum") # Verify eye-forward does not allow near-clip-plane look through var eyes_to_collider = (1.0 - eye_forward_offset) * player_radius - if eyes_to_collider < test_camera_node.near: - return "Eyes too far forwards. Move eyes back or decrease camera near clipping plane" + if test_camera_node and eyes_to_collider < test_camera_node.near: + warnings.append( + "Eyes too far forwards. Move eyes back or decrease camera near clipping plane") # If specified, verify the ground physics is a valid type if physics and !physics is XRToolsGroundPhysicsSettings: - return "Physics resource must be a GroundPhysicsSettings" + warnings.append("Physics resource must be a GroundPhysicsSettings") - # Passed basic validation - return "" + # Return warnings + return warnings ## Find an [XRToolsPlayerBody] node. ## ## This function searches from the specified node for an [XRToolsPlayerBody] -## assuming the node is a sibling of the body under an [ARVROrigin]. +## assuming the node is a sibling of the body under an [XROrigin3D]. static func find_instance(node: Node) -> XRToolsPlayerBody: - return XRTools.find_child( - ARVRHelpers.get_arvr_origin(node), + return XRTools.find_xr_child( + XRHelpers.get_xr_origin(node), "*", "XRToolsPlayerBody") as XRToolsPlayerBody diff --git a/addons/godot-xr-tools/player/player_body.tscn b/addons/godot-xr-tools/player/player_body.tscn index 76ef2ff8..a070e9e3 100644 --- a/addons/godot-xr-tools/player/player_body.tscn +++ b/addons/godot-xr-tools/player/player_body.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://diyu06cw06syv"] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/player/player_body.gd" id="1"] -[node name="PlayerBody" type="KinematicBody" groups=["player_body"]] +[node name="PlayerBody" type="CharacterBody3D" groups=["player_body"]] +top_level = true collision_layer = 524288 collision_mask = 1023 -script = ExtResource( 1 ) +script = ExtResource("1") diff --git a/addons/godot-xr-tools/player/poke/poke.gd b/addons/godot-xr-tools/player/poke/poke.gd index 58cb02d3..e7928045 100644 --- a/addons/godot-xr-tools/player/poke/poke.gd +++ b/addons/godot-xr-tools/player/poke/poke.gd @@ -1,16 +1,16 @@ -tool +@tool class_name XRToolsPoke -extends Spatial +extends Node3D -export var enabled : bool = true setget set_enabled -export var radius : float = 0.005 setget set_radius -export var teleport_distance : float = 0.1 setget set_teleport_distance -export var color : Color = Color(0.8, 0.8, 1.0, 0.5) setget set_color +@export var enabled : bool = true: set = set_enabled +@export var radius : float = 0.005: set = set_radius +@export var teleport_distance : float = 0.1: set = set_teleport_distance +@export var color : Color = Color(0.8, 0.8, 1.0, 0.5): set = set_color var is_ready = false -var material : SpatialMaterial +var material : StandardMaterial3D var target : Node ## Node we last started touching var last_collided_at : Vector3 @@ -29,7 +29,7 @@ func set_radius(new_radius : float) -> void: _update_radius() func _update_radius() -> void: - var shape : SphereShape = $PokeBody/CollisionShape.shape + var shape : SphereShape3D = $PokeBody/CollisionShape.shape if shape: shape.radius = radius @@ -39,7 +39,7 @@ func _update_radius() -> void: mesh.height = radius * 2.0 if material: - $PokeBody/MeshInstance.set_surface_material(0, material) + $PokeBody/MeshInstance.set_surface_override_material(0, material) func set_teleport_distance(new_distance : float) -> void: teleport_distance = new_distance @@ -59,18 +59,18 @@ func _update_color() -> void: material.albedo_color = color -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsPoke" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsPoke" # Called when the node enters the scene tree for the first time. func _ready(): # Set as top level ensures we're placing this object in global space - $PokeBody.set_as_toplevel(true) + $PokeBody.set_as_top_level(true) is_ready = true - material = SpatialMaterial.new() + material = StandardMaterial3D.new() material.flags_unshaded = true material.flags_transparent = true diff --git a/addons/godot-xr-tools/player/poke/poke.tscn b/addons/godot-xr-tools/player/poke/poke.tscn index f83b30c1..963677d0 100644 --- a/addons/godot-xr-tools/player/poke/poke.tscn +++ b/addons/godot-xr-tools/player/poke/poke.tscn @@ -1,43 +1,38 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=5 format=3] -[ext_resource path="res://addons/godot-xr-tools/player/poke/poke.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/player/poke/poke_body.gd" type="Script" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/player/poke/poke.gd" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/player/poke/poke_body.gd" id="2"] -[sub_resource type="SphereShape" id=1] +[sub_resource type="SphereShape3D" id="1"] resource_local_to_scene = true radius = 0.005 -[sub_resource type="SphereMesh" id=2] +[sub_resource type="SphereMesh" id="2"] resource_local_to_scene = true radius = 0.005 height = 0.01 radial_segments = 32 rings = 16 -[sub_resource type="SpatialMaterial" id=3] -flags_transparent = true -flags_unshaded = true -albedo_color = Color( 0.8, 0.8, 1, 0.5 ) +[node name="Poke" type="Node3D"] +script = ExtResource("1") -[node name="Poke" type="Spatial"] -script = ExtResource( 1 ) - -[node name="PokeBody" type="RigidBody" parent="."] +[node name="PokeBody" type="RigidBody3D" parent="."] +top_level = true collision_layer = 131072 collision_mask = 65535 gravity_scale = 0.0 custom_integrator = true -contacts_reported = 1 +max_contacts_reported = 1 contact_monitor = true -script = ExtResource( 2 ) +script = ExtResource("2") teleport_distance = 0.1 -[node name="CollisionShape" type="CollisionShape" parent="PokeBody"] -shape = SubResource( 1 ) +[node name="CollisionShape" type="CollisionShape3D" parent="PokeBody"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="PokeBody"] -mesh = SubResource( 2 ) -material/0 = SubResource( 3 ) +[node name="MeshInstance" type="MeshInstance3D" parent="PokeBody"] +mesh = SubResource("2") [connection signal="body_entered" from="PokeBody" to="." method="_on_PokeBody_body_entered"] [connection signal="body_exited" from="PokeBody" to="." method="_on_PokeBody_body_exited"] diff --git a/addons/godot-xr-tools/player/poke/poke_body.gd b/addons/godot-xr-tools/player/poke/poke_body.gd index 03f6e7a3..a60b3392 100644 --- a/addons/godot-xr-tools/player/poke/poke_body.gd +++ b/addons/godot-xr-tools/player/poke/poke_body.gd @@ -1,9 +1,9 @@ -extends RigidBody +extends RigidBody3D # distance at which we teleport our poke body -export var teleport_distance : float = 0.2 +@export var teleport_distance : float = 0.2 -func _integrate_forces(state: PhysicsDirectBodyState): +func _integrate_forces(state: PhysicsDirectBodyState3D): # get the position of our parent that we are following var following_transform = get_parent().global_transform diff --git a/addons/godot-xr-tools/plugin.cfg b/addons/godot-xr-tools/plugin.cfg index dcebd07b..76a9d4c1 100644 --- a/addons/godot-xr-tools/plugin.cfg +++ b/addons/godot-xr-tools/plugin.cfg @@ -3,5 +3,5 @@ name="Godot XR Tools" description="Godot XR Tools plugin" author="Bastiaan Olij and Contributors" -version="3.4.0" +version="4.0.0" script="plugin.gd" diff --git a/addons/godot-xr-tools/plugin.gd b/addons/godot-xr-tools/plugin.gd index c9d751e5..70166f96 100644 --- a/addons/godot-xr-tools/plugin.gd +++ b/addons/godot-xr-tools/plugin.gd @@ -1,4 +1,4 @@ -tool +@tool extends EditorPlugin @@ -30,7 +30,7 @@ func _enter_tree(): # Add input grip threshold to the project settings _define_project_setting( "godot_xr_tools/input/grip_threshold", - TYPE_REAL, + TYPE_FLOAT, PROPERTY_HINT_RANGE, "0.2,0.8,0.05", 0.7) @@ -38,7 +38,7 @@ func _enter_tree(): # Add input snap turning dead-zone to the project settings _define_project_setting( "godot_xr_tools/input/snap_turning_deadzone", - TYPE_REAL, + TYPE_FLOAT, PROPERTY_HINT_RANGE, "0.0,0.5,0.05", 0.25) @@ -54,7 +54,7 @@ func _enter_tree(): # Add player standard height to the project settings _define_project_setting( "godot_xr_tools/player/standard_height", - TYPE_REAL, + TYPE_FLOAT, PROPERTY_HINT_RANGE, "1.0,2.5,0.05", 1.85) diff --git a/addons/godot-xr-tools/staging/fade.gdshader b/addons/godot-xr-tools/staging/fade.gdshader index 44d0ffda..30704235 100644 --- a/addons/godot-xr-tools/staging/fade.gdshader +++ b/addons/godot-xr-tools/staging/fade.gdshader @@ -1,11 +1,10 @@ shader_type spatial; -render_mode depth_test_disable, skip_vertex_transform, unshaded; +render_mode depth_test_disabled, skip_vertex_transform, unshaded; uniform float alpha = 0.0; void vertex() { - vec3 v = VERTEX; - POSITION = vec4(v, 1.0); + POSITION = vec4(VERTEX.x, -VERTEX.y, 0.0, 1.0); } void fragment() { diff --git a/addons/godot-xr-tools/staging/loading_screen.gd b/addons/godot-xr-tools/staging/loading_screen.gd index da0d99b2..64bdffcf 100644 --- a/addons/godot-xr-tools/staging/loading_screen.gd +++ b/addons/godot-xr-tools/staging/loading_screen.gd @@ -1,5 +1,5 @@ -tool -extends Spatial +@tool +extends Node3D ## XR Tools Loading Screen @@ -22,26 +22,26 @@ signal continue_pressed ## If true, the screen follows the camera -export var follow_camera : bool = true setget set_follow_camera +@export var follow_camera : bool = true: set = set_follow_camera ## Curve for following the camera -export var follow_speed : Curve +@export var follow_speed : Curve ## Splash screen texture -export var splash_screen : Texture setget set_splash_screen +@export var splash_screen : Texture2D: set = set_splash_screen ## Progress bar -export (float, 0.0, 1.0, 0.01) var progress : float = 0.5 setget set_progress_bar +@export_range(0.0, 1.0, 0.01) var progress : float = 0.5: set = set_progress_bar ## If true, the contine message is shown, if false the progress bar is visible. -export var enable_press_to_continue : bool = false setget set_enable_press_to_continue +@export var enable_press_to_continue : bool = false: set = set_enable_press_to_continue # Camera to track -var _camera : ARVRCamera +var _camera : XRCamera3D # Splash screen material -var _splash_screen_material : SpatialMaterial +var _splash_screen_material : StandardMaterial3D # Progress material var _progress_material : ShaderMaterial @@ -49,7 +49,7 @@ var _progress_material : ShaderMaterial func _ready(): # Get materials - _splash_screen_material = $SplashScreen.get_surface_material(0) + _splash_screen_material = $SplashScreen.get_surface_override_material(0) _progress_material = $ProgressBar.mesh.surface_get_material(0) # Perform initial update @@ -84,12 +84,12 @@ func _process(delta): # Do rotation based on the curve global_transform.basis = global_transform.basis.rotated( Vector3.UP * sign(angle), - follow_speed.interpolate_baked(abs(angle) / PI) * delta + follow_speed.sample_baked(abs(angle) / PI) * delta ).orthonormalized() ## Set the camera to track -func set_camera(p_camera : ARVRCamera) -> void: +func set_camera(p_camera : XRCamera3D) -> void: _camera = p_camera _update_follow_camera() @@ -101,7 +101,7 @@ func set_follow_camera(p_enabled : bool) -> void: ## Set the splash_screen texture property -func set_splash_screen(p_splash_screen : Texture) -> void: +func set_splash_screen(p_splash_screen : Texture2D) -> void: splash_screen = p_splash_screen _update_splash_screen() @@ -130,7 +130,7 @@ func _update_splash_screen(): func _update_progress_bar(): if _progress_material: - _progress_material.set_shader_param("progress", progress) + _progress_material.set_shader_parameter("progress", progress) func _update_enable_press_to_continue(): diff --git a/addons/godot-xr-tools/staging/loading_screen.tscn b/addons/godot-xr-tools/staging/loading_screen.tscn index 47c26b03..e22d8a6d 100644 --- a/addons/godot-xr-tools/staging/loading_screen.tscn +++ b/addons/godot-xr-tools/staging/loading_screen.tscn @@ -1,63 +1,68 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 format=3 uid="uid://bqumugyvkct4r"] -[ext_resource path="res://addons/godot-xr-tools/staging/loading_screen.gd" type="Script" id=2] -[ext_resource path="res://addons/godot-xr-tools/staging/loading_screen_shader.tres" type="Shader" id=3] -[ext_resource path="res://addons/godot-xr-tools/assets/misc/progress_bar.png" type="Texture" id=4] -[ext_resource path="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" type="Texture" id=5] -[ext_resource path="res://addons/godot-xr-tools/misc/hold_button.tscn" type="PackedScene" id=6] +[ext_resource type="Texture2D" uid="uid://ftrrxm7sxndi" path="res://assets/godot/splash.png" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/staging/loading_screen.gd" id="2"] +[ext_resource type="Shader" uid="uid://4i0pwdtfmtsv" path="res://addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres" id="3"] +[ext_resource type="Texture2D" uid="uid://clbtsf0ahb3fm" path="res://addons/godot-xr-tools/assets/misc/progress_bar.png" id="4"] +[ext_resource type="Texture2D" uid="uid://ocyj01x5mtt7" path="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" id="5"] +[ext_resource type="PackedScene" uid="uid://cymteydkxagpp" path="res://addons/godot-xr-tools/misc/hold_button.tscn" id="6"] -[sub_resource type="Curve" id=21] +[sub_resource type="Curve" id="21"] max_value = 3.14 -_data = [ Vector2( 0.00207039, 0 ), 0.0, 1.00884, 0, 0, Vector2( 1, 3.14 ), 0.313348, 0.0, 0, 0 ] +_data = [Vector2(0.00207039, 0), 0.0, 1.00884, 0, 0, Vector2(1, 3.14), 0.313348, 0.0, 0, 0] +point_count = 2 -[sub_resource type="PlaneMesh" id=2] -size = Vector2( 80, 60 ) +[sub_resource type="PlaneMesh" id="2"] +size = Vector2(80, 60) -[sub_resource type="SpatialMaterial" id=1] -flags_transparent = true -flags_unshaded = true +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1o2lp"] +transparency = 1 +shading_mode = 0 +albedo_texture = ExtResource("1") -[sub_resource type="ShaderMaterial" id=18] -shader = ExtResource( 3 ) -shader_param/bar_color = Color( 1, 1, 1, 1 ) -shader_param/cutout = Vector3( 4.85, 0.33, 0 ) -shader_param/progress = 0.5 -shader_param/bar_texture = ExtResource( 4 ) +[sub_resource type="ShaderMaterial" id="18"] +render_priority = 0 +shader = ExtResource("3") +shader_parameter/bar_color = Color(1, 1, 1, 1) +shader_parameter/cutout = Vector3(4.85, 0.33, 0) +shader_parameter/progress = 0.5 +shader_parameter/bar_texture = ExtResource("4") -[sub_resource type="PlaneMesh" id=3] -material = SubResource( 18 ) -size = Vector2( 10, 1 ) +[sub_resource type="PlaneMesh" id="3"] +material = SubResource("18") +size = Vector2(10, 1) -[sub_resource type="QuadMesh" id=19] -size = Vector2( 9.25, 1 ) +[sub_resource type="QuadMesh" id="19"] +size = Vector2(9.25, 1) -[sub_resource type="SpatialMaterial" id=20] -flags_transparent = true -flags_unshaded = true -albedo_texture = ExtResource( 5 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k8dyo"] +transparency = 1 +shading_mode = 0 +albedo_texture = ExtResource("5") -[node name="LoadingScreen" type="Spatial"] -script = ExtResource( 2 ) -follow_speed = SubResource( 21 ) +[node name="LoadingScreen" type="Node3D"] +script = ExtResource("2") +follow_speed = SubResource("21") +splash_screen = ExtResource("1") -[node name="SplashScreen" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 15, -50 ) -mesh = SubResource( 2 ) -material/0 = SubResource( 1 ) +[node name="SplashScreen" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 15, -50) +mesh = SubResource("2") +surface_material_override/0 = SubResource("StandardMaterial3D_1o2lp") -[node name="ProgressBar" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -10 ) -mesh = SubResource( 3 ) +[node name="ProgressBar" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -10) +mesh = SubResource("3") -[node name="PressToContinue" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -10 ) +[node name="PressToContinue" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -10) visible = false -mesh = SubResource( 19 ) -material/0 = SubResource( 20 ) +mesh = SubResource("19") +surface_material_override/0 = SubResource("StandardMaterial3D_k8dyo") -[node name="HoldButton" parent="PressToContinue" instance=ExtResource( 6 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.55766, 0, 0 ) +[node name="HoldButton" parent="PressToContinue" instance=ExtResource("6")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.55766, 0, 0) hold_time = 0.5 -color = Color( 0, 0.717647, 1, 1 ) +color = Color(0, 0.717647, 1, 1) [connection signal="pressed" from="PressToContinue/HoldButton" to="." method="_on_HoldButton_pressed"] diff --git a/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres b/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres index 4469d23c..a31535e2 100644 --- a/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres +++ b/addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres @@ -1,176 +1,186 @@ -[gd_resource type="VisualShader" load_steps=15 format=2] +[gd_resource type="VisualShader" load_steps=16 format=3 uid="uid://4i0pwdtfmtsv"] -[sub_resource type="VisualShaderNodeCompare" id=5] +[sub_resource type="VisualShaderNodeCompare" id="5"] output_port_for_preview = 0 -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, 1e-05 ] -type = 1 +default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0), 2, 1e-05] +type = 3 function = 4 condition = 1 -[sub_resource type="VisualShaderNodeScalarUniform" id=6] -uniform_name = "progress" +[sub_resource type="VisualShaderNodeFloatParameter" id="6"] +parameter_name = "progress" -[sub_resource type="VisualShaderNodeVectorCompose" id=7] +[sub_resource type="VisualShaderNodeVectorCompose" id="7"] -[sub_resource type="VisualShaderNodeScalarOp" id=8] +[sub_resource type="VisualShaderNodeFloatOp" id="8"] output_port_for_preview = 0 operator = 6 -[sub_resource type="VisualShaderNodeColorUniform" id=9] -uniform_name = "bar_color" +[sub_resource type="VisualShaderNodeColorParameter" id="9"] +parameter_name = "bar_color" -[sub_resource type="VisualShaderNodeTextureUniform" id=17] -uniform_name = "bar_texture" +[sub_resource type="VisualShaderNodeTexture2DParameter" id="17"] +parameter_name = "bar_texture" texture_type = 1 -[sub_resource type="VisualShaderNodeVectorOp" id=18] +[sub_resource type="VisualShaderNodeVectorOp" id="18"] operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=19] +[sub_resource type="VisualShaderNodeFloatOp" id="19"] operator = 2 -[sub_resource type="VisualShaderNodeVec3Uniform" id=20] -uniform_name = "cutout" +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_hpnli"] +output_port_for_preview = 0 +expanded_output_ports = [0] +source = 5 +texture_type = 1 -[sub_resource type="VisualShaderNodeInput" id=10] +[sub_resource type="VisualShaderNodeVec3Parameter" id="VisualShaderNodeVec3Parameter_fhc2j"] +parameter_name = "cutout" +default_value_enabled = true +default_value = Vector3(4.85, 0.33, 0) + +[sub_resource type="VisualShaderNodeInput" id="10"] input_name = "uv" -[sub_resource type="VisualShaderNodeVectorOp" id=11] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 10, 1, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="11"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(10, 1, 0)] operator = 2 -[sub_resource type="VisualShaderNodeVectorOp" id=12] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 5, 0.5, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="12"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(5, 0.5, 0)] operator = 1 -[sub_resource type="VisualShaderNodeVectorFunc" id=13] -function = 6 +[sub_resource type="VisualShaderNodeVectorFunc" id="13"] +function = 4 -[sub_resource type="VisualShaderNodeCompare" id=15] +[sub_resource type="VisualShaderNodeCompare" id="15"] output_port_for_preview = 0 -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, 1e-05 ] -type = 1 +default_input_values = [0, Vector2(0, 0), 1, Vector2(4.85, 0.33), 2, 1e-05] +type = 3 function = 2 condition = 1 [resource] code = "shader_type spatial; -render_mode specular_schlick_ggx, async_visible, unshaded; +render_mode unshaded; -uniform vec4 bar_color : hint_color; -uniform sampler2D bar_texture : hint_albedo; -uniform vec3 cutout; +uniform vec4 bar_color : source_color; +uniform sampler2D bar_texture : source_color; +uniform vec3 cutout = vec3(4.850000, 0.330000, 0.000000); uniform float progress; -void vertex() { -// Output:0 +void fragment() { +// ColorParameter:15 + vec4 n_out15p0 = bar_color; -} -void fragment() { -// ColorUniform:15 - vec3 n_out15p0 = bar_color.rgb; - float n_out15p1 = bar_color.a; + vec4 n_out19p0; +// Texture2D:19 + n_out19p0 = texture(bar_texture, UV); + float n_out19p4 = n_out19p0.a; -// TextureUniform:16 - vec3 n_out16p0; - float n_out16p1; - { - vec4 n_tex_read = texture(bar_texture, UV.xy); - n_out16p0 = n_tex_read.rgb; - n_out16p1 = n_tex_read.a; - } // VectorOp:17 - vec3 n_out17p0 = n_out15p0 * n_out16p0; + vec3 n_out17p0 = vec3(n_out15p0.xyz) * vec3(n_out19p0.xyz); + // Input:3 - vec3 n_out3p0 = vec3(UV, 0.0); + vec2 n_out3p0 = UV; + // VectorOp:4 vec3 n_in4p1 = vec3(10.00000, 1.00000, 0.00000); - vec3 n_out4p0 = n_out3p0 * n_in4p1; + vec3 n_out4p0 = vec3(n_out3p0, 0.0) * n_in4p1; + // VectorOp:5 vec3 n_in5p1 = vec3(5.00000, 0.50000, 0.00000); vec3 n_out5p0 = n_out4p0 - n_in5p1; + // VectorFunc:6 vec3 n_out6p0 = abs(n_out5p0); -// VectorUniform:19 - vec3 n_out19p0 = cutout; -// Compare:8 +// Vector3Parameter:20 + vec3 n_out20p0 = cutout; + + bool n_out8p0; +// Compare:8 { - bvec3 _bv = greaterThan(n_out6p0, n_out19p0); + bvec2 _bv = greaterThan(vec2(n_out6p0.xy), vec2(n_out20p0.xy)); n_out8p0 = any(_bv); } -// ScalarUniform:12 + +// FloatParameter:12 float n_out12p0 = progress; + // VectorCompose:13 float n_in13p1 = 0.00000; float n_in13p2 = 0.00000; vec3 n_out13p0 = vec3(n_out12p0, n_in13p1, n_in13p2); -// Compare:11 + bool n_out11p0; +// Compare:11 { - bvec3 _bv = lessThan(n_out3p0, n_out13p0); + bvec2 _bv = lessThan(n_out3p0, vec2(n_out13p0.xy)); n_out11p0 = any(_bv); } -// ScalarOp:14 + +// FloatOp:14 float n_out14p0 = max((n_out8p0 ? 1.0 : 0.0), (n_out11p0 ? 1.0 : 0.0)); -// ScalarOp:18 - float n_out18p0 = n_out16p1 * n_out14p0; + +// FloatOp:18 + float n_out18p0 = n_out19p4 * n_out14p0; + // Output:0 ALBEDO = n_out17p0; ALPHA = n_out18p0; -} - -void light() { -// Output:0 } " -graph_offset = Vector2( -195.354, 305.623 ) +graph_offset = Vector2(-744.269, 307.118) flags/unshaded = true -nodes/fragment/0/position = Vector2( 1220, 440 ) -nodes/fragment/3/node = SubResource( 10 ) -nodes/fragment/3/position = Vector2( -320, 580 ) -nodes/fragment/4/node = SubResource( 11 ) -nodes/fragment/4/position = Vector2( -120, 460 ) -nodes/fragment/5/node = SubResource( 12 ) -nodes/fragment/5/position = Vector2( 60, 460 ) -nodes/fragment/6/node = SubResource( 13 ) -nodes/fragment/6/position = Vector2( 260, 480 ) -nodes/fragment/8/node = SubResource( 15 ) -nodes/fragment/8/position = Vector2( 500, 480 ) -nodes/fragment/11/node = SubResource( 5 ) -nodes/fragment/11/position = Vector2( 500, 780 ) -nodes/fragment/12/node = SubResource( 6 ) -nodes/fragment/12/position = Vector2( -40, 820 ) -nodes/fragment/13/node = SubResource( 7 ) -nodes/fragment/13/position = Vector2( 280, 940 ) -nodes/fragment/14/node = SubResource( 8 ) -nodes/fragment/14/position = Vector2( 743.56, 671.244 ) -nodes/fragment/15/node = SubResource( 9 ) -nodes/fragment/15/position = Vector2( 640, 260 ) -nodes/fragment/16/node = SubResource( 17 ) -nodes/fragment/16/position = Vector2( 720, 440 ) -nodes/fragment/17/node = SubResource( 18 ) -nodes/fragment/17/position = Vector2( 980, 340 ) -nodes/fragment/18/node = SubResource( 19 ) -nodes/fragment/18/position = Vector2( 980, 560 ) -nodes/fragment/19/node = SubResource( 20 ) -nodes/fragment/19/position = Vector2( 160, 620 ) -nodes/fragment/connections = PoolIntArray( 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 8, 0, 3, 0, 11, 0, 13, 0, 11, 1, 12, 0, 13, 0, 8, 0, 14, 0, 11, 0, 14, 1, 15, 0, 17, 0, 16, 0, 17, 1, 17, 0, 0, 0, 16, 1, 18, 0, 18, 0, 0, 1, 14, 0, 18, 1, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 8, 0, 3, 0, 11, 0, 13, 0, 11, 1, 12, 0, 13, 0, 8, 0, 14, 0, 11, 0, 14, 1, 15, 0, 17, 0, 16, 0, 17, 1, 17, 0, 0, 0, 16, 1, 18, 0, 18, 0, 0, 1, 14, 0, 18, 1, 19, 0, 8, 1 ) +nodes/fragment/0/position = Vector2(1220, 440) +nodes/fragment/3/node = SubResource("10") +nodes/fragment/3/position = Vector2(-1020, 580) +nodes/fragment/4/node = SubResource("11") +nodes/fragment/4/position = Vector2(-620, 400) +nodes/fragment/5/node = SubResource("12") +nodes/fragment/5/position = Vector2(-440, 400) +nodes/fragment/6/node = SubResource("13") +nodes/fragment/6/position = Vector2(-240, 420) +nodes/fragment/8/node = SubResource("15") +nodes/fragment/8/position = Vector2(240, 460) +nodes/fragment/11/node = SubResource("5") +nodes/fragment/11/position = Vector2(240, 860) +nodes/fragment/12/node = SubResource("6") +nodes/fragment/12/position = Vector2(-640, 980) +nodes/fragment/13/node = SubResource("7") +nodes/fragment/13/position = Vector2(-280, 960) +nodes/fragment/14/node = SubResource("8") +nodes/fragment/14/position = Vector2(480, 680) +nodes/fragment/15/node = SubResource("9") +nodes/fragment/15/position = Vector2(580, -40) +nodes/fragment/16/node = SubResource("17") +nodes/fragment/16/position = Vector2(40, -100) +nodes/fragment/17/node = SubResource("18") +nodes/fragment/17/position = Vector2(980, 80) +nodes/fragment/18/node = SubResource("19") +nodes/fragment/18/position = Vector2(940, 500) +nodes/fragment/19/node = SubResource("VisualShaderNodeTexture_hpnli") +nodes/fragment/19/position = Vector2(480, 260) +nodes/fragment/20/node = SubResource("VisualShaderNodeVec3Parameter_fhc2j") +nodes/fragment/20/position = Vector2(-280, 600) +nodes/fragment/connections = PackedInt32Array(3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 8, 0, 3, 0, 11, 0, 13, 0, 11, 1, 12, 0, 13, 0, 8, 0, 14, 0, 11, 0, 14, 1, 15, 0, 17, 0, 17, 0, 0, 0, 18, 0, 0, 1, 14, 0, 18, 1, 16, 0, 19, 2, 19, 4, 18, 0, 19, 0, 17, 1, 20, 0, 8, 1) diff --git a/addons/godot-xr-tools/staging/loading_screen_shader.tres b/addons/godot-xr-tools/staging/loading_screen_shader.tres index 4469d23c..11ede72c 100644 --- a/addons/godot-xr-tools/staging/loading_screen_shader.tres +++ b/addons/godot-xr-tools/staging/loading_screen_shader.tres @@ -1,176 +1,187 @@ -[gd_resource type="VisualShader" load_steps=15 format=2] +[gd_resource type="VisualShader" load_steps=16 format=3] -[sub_resource type="VisualShaderNodeCompare" id=5] +[sub_resource type="VisualShaderNodeCompare" id="5"] output_port_for_preview = 0 -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, 1e-05 ] -type = 1 +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0), 2, 1e-05] +type = 3 function = 4 condition = 1 -[sub_resource type="VisualShaderNodeScalarUniform" id=6] -uniform_name = "progress" +[sub_resource type="VisualShaderNodeFloatParameter" id="6"] +parameter_name = "progress" -[sub_resource type="VisualShaderNodeVectorCompose" id=7] +[sub_resource type="VisualShaderNodeVectorCompose" id="7"] -[sub_resource type="VisualShaderNodeScalarOp" id=8] +[sub_resource type="VisualShaderNodeFloatOp" id="8"] output_port_for_preview = 0 operator = 6 -[sub_resource type="VisualShaderNodeColorUniform" id=9] -uniform_name = "bar_color" +[sub_resource type="VisualShaderNodeColorParameter" id="9"] +parameter_name = "bar_color" -[sub_resource type="VisualShaderNodeTextureUniform" id=17] -uniform_name = "bar_texture" +[sub_resource type="VisualShaderNodeTexture2DParameter" id="17"] +parameter_name = "bar_texture" texture_type = 1 -[sub_resource type="VisualShaderNodeVectorOp" id=18] +[sub_resource type="VisualShaderNodeVectorOp" id="18"] operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=19] +[sub_resource type="VisualShaderNodeFloatOp" id="19"] operator = 2 -[sub_resource type="VisualShaderNodeVec3Uniform" id=20] -uniform_name = "cutout" +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_hpnli"] +output_port_for_preview = 0 +expanded_output_ports = [0] +source = 5 +texture_type = 1 -[sub_resource type="VisualShaderNodeInput" id=10] +[sub_resource type="VisualShaderNodeVec3Parameter" id="VisualShaderNodeVec3Parameter_fhc2j"] +parameter_name = "cutout" +default_value_enabled = true +default_value = Vector3(4.85, 0.33, 0) + +[sub_resource type="VisualShaderNodeInput" id="10"] input_name = "uv" -[sub_resource type="VisualShaderNodeVectorOp" id=11] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 10, 1, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="11"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(10, 1, 0)] operator = 2 -[sub_resource type="VisualShaderNodeVectorOp" id=12] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 5, 0.5, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="12"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(5, 0.5, 0)] operator = 1 -[sub_resource type="VisualShaderNodeVectorFunc" id=13] -function = 6 +[sub_resource type="VisualShaderNodeVectorFunc" id="13"] +function = 4 -[sub_resource type="VisualShaderNodeCompare" id=15] +[sub_resource type="VisualShaderNodeCompare" id="15"] output_port_for_preview = 0 -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, 1e-05 ] -type = 1 +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(4.85, 0.33, 0), 2, 1e-05] +type = 3 function = 2 condition = 1 [resource] code = "shader_type spatial; -render_mode specular_schlick_ggx, async_visible, unshaded; +render_mode unshaded; -uniform vec4 bar_color : hint_color; -uniform sampler2D bar_texture : hint_albedo; -uniform vec3 cutout; +uniform vec4 bar_color : source_color; +uniform sampler2D bar_texture : source_color; +uniform vec3 cutout = vec3(4.850000, 0.330000, 0.000000); uniform float progress; -void vertex() { -// Output:0 +void fragment() { +// ColorParameter:15 + vec4 n_out15p0 = bar_color; -} -void fragment() { -// ColorUniform:15 - vec3 n_out15p0 = bar_color.rgb; - float n_out15p1 = bar_color.a; -// TextureUniform:16 - vec3 n_out16p0; - float n_out16p1; - { - vec4 n_tex_read = texture(bar_texture, UV.xy); - n_out16p0 = n_tex_read.rgb; - n_out16p1 = n_tex_read.a; - } + vec4 n_out19p0; +// Texture2D:19 + n_out19p0 = texture(bar_texture, UV); + float n_out19p4 = n_out19p0.a; + // VectorOp:17 - vec3 n_out17p0 = n_out15p0 * n_out16p0; + vec3 n_out17p0 = vec3(n_out15p0.xyz) * vec3(n_out19p0.xyz); + // Input:3 - vec3 n_out3p0 = vec3(UV, 0.0); + vec2 n_out3p0 = UV; + // VectorOp:4 vec3 n_in4p1 = vec3(10.00000, 1.00000, 0.00000); - vec3 n_out4p0 = n_out3p0 * n_in4p1; + vec3 n_out4p0 = vec3(n_out3p0, 0.0) * n_in4p1; + // VectorOp:5 vec3 n_in5p1 = vec3(5.00000, 0.50000, 0.00000); vec3 n_out5p0 = n_out4p0 - n_in5p1; + // VectorFunc:6 vec3 n_out6p0 = abs(n_out5p0); -// VectorUniform:19 - vec3 n_out19p0 = cutout; -// Compare:8 +// Vector3Parameter:20 + vec3 n_out20p0 = cutout; + + bool n_out8p0; +// Compare:8 { - bvec3 _bv = greaterThan(n_out6p0, n_out19p0); + bvec3 _bv = greaterThan(n_out6p0, n_out20p0); n_out8p0 = any(_bv); } -// ScalarUniform:12 + +// FloatParameter:12 float n_out12p0 = progress; + // VectorCompose:13 float n_in13p1 = 0.00000; float n_in13p2 = 0.00000; vec3 n_out13p0 = vec3(n_out12p0, n_in13p1, n_in13p2); -// Compare:11 + bool n_out11p0; +// Compare:11 { - bvec3 _bv = lessThan(n_out3p0, n_out13p0); + bvec3 _bv = lessThan(vec3(n_out3p0, 0.0), n_out13p0); n_out11p0 = any(_bv); } -// ScalarOp:14 + +// FloatOp:14 float n_out14p0 = max((n_out8p0 ? 1.0 : 0.0), (n_out11p0 ? 1.0 : 0.0)); -// ScalarOp:18 - float n_out18p0 = n_out16p1 * n_out14p0; + +// FloatOp:18 + float n_out18p0 = n_out19p4 * n_out14p0; + // Output:0 ALBEDO = n_out17p0; ALPHA = n_out18p0; -} - -void light() { -// Output:0 } " -graph_offset = Vector2( -195.354, 305.623 ) +graph_offset = Vector2(-744.269, 307.118) flags/unshaded = true -nodes/fragment/0/position = Vector2( 1220, 440 ) -nodes/fragment/3/node = SubResource( 10 ) -nodes/fragment/3/position = Vector2( -320, 580 ) -nodes/fragment/4/node = SubResource( 11 ) -nodes/fragment/4/position = Vector2( -120, 460 ) -nodes/fragment/5/node = SubResource( 12 ) -nodes/fragment/5/position = Vector2( 60, 460 ) -nodes/fragment/6/node = SubResource( 13 ) -nodes/fragment/6/position = Vector2( 260, 480 ) -nodes/fragment/8/node = SubResource( 15 ) -nodes/fragment/8/position = Vector2( 500, 480 ) -nodes/fragment/11/node = SubResource( 5 ) -nodes/fragment/11/position = Vector2( 500, 780 ) -nodes/fragment/12/node = SubResource( 6 ) -nodes/fragment/12/position = Vector2( -40, 820 ) -nodes/fragment/13/node = SubResource( 7 ) -nodes/fragment/13/position = Vector2( 280, 940 ) -nodes/fragment/14/node = SubResource( 8 ) -nodes/fragment/14/position = Vector2( 743.56, 671.244 ) -nodes/fragment/15/node = SubResource( 9 ) -nodes/fragment/15/position = Vector2( 640, 260 ) -nodes/fragment/16/node = SubResource( 17 ) -nodes/fragment/16/position = Vector2( 720, 440 ) -nodes/fragment/17/node = SubResource( 18 ) -nodes/fragment/17/position = Vector2( 980, 340 ) -nodes/fragment/18/node = SubResource( 19 ) -nodes/fragment/18/position = Vector2( 980, 560 ) -nodes/fragment/19/node = SubResource( 20 ) -nodes/fragment/19/position = Vector2( 160, 620 ) -nodes/fragment/connections = PoolIntArray( 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 8, 0, 3, 0, 11, 0, 13, 0, 11, 1, 12, 0, 13, 0, 8, 0, 14, 0, 11, 0, 14, 1, 15, 0, 17, 0, 16, 0, 17, 1, 17, 0, 0, 0, 16, 1, 18, 0, 18, 0, 0, 1, 14, 0, 18, 1, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 8, 0, 3, 0, 11, 0, 13, 0, 11, 1, 12, 0, 13, 0, 8, 0, 14, 0, 11, 0, 14, 1, 15, 0, 17, 0, 16, 0, 17, 1, 17, 0, 0, 0, 16, 1, 18, 0, 18, 0, 0, 1, 14, 0, 18, 1, 19, 0, 8, 1 ) +nodes/fragment/0/position = Vector2(1220, 440) +nodes/fragment/3/node = SubResource("10") +nodes/fragment/3/position = Vector2(-1020, 580) +nodes/fragment/4/node = SubResource("11") +nodes/fragment/4/position = Vector2(-620, 400) +nodes/fragment/5/node = SubResource("12") +nodes/fragment/5/position = Vector2(-440, 400) +nodes/fragment/6/node = SubResource("13") +nodes/fragment/6/position = Vector2(-240, 420) +nodes/fragment/8/node = SubResource("15") +nodes/fragment/8/position = Vector2(240, 460) +nodes/fragment/11/node = SubResource("5") +nodes/fragment/11/position = Vector2(240, 860) +nodes/fragment/12/node = SubResource("6") +nodes/fragment/12/position = Vector2(-640, 980) +nodes/fragment/13/node = SubResource("7") +nodes/fragment/13/position = Vector2(-280, 960) +nodes/fragment/14/node = SubResource("8") +nodes/fragment/14/position = Vector2(480, 680) +nodes/fragment/15/node = SubResource("9") +nodes/fragment/15/position = Vector2(580, -40) +nodes/fragment/16/node = SubResource("17") +nodes/fragment/16/position = Vector2(40, -100) +nodes/fragment/17/node = SubResource("18") +nodes/fragment/17/position = Vector2(980, 80) +nodes/fragment/18/node = SubResource("19") +nodes/fragment/18/position = Vector2(940, 500) +nodes/fragment/19/node = SubResource("VisualShaderNodeTexture_hpnli") +nodes/fragment/19/position = Vector2(480, 260) +nodes/fragment/20/node = SubResource("VisualShaderNodeVec3Parameter_fhc2j") +nodes/fragment/20/position = Vector2(-280, 600) +nodes/fragment/connections = PackedInt32Array(3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 8, 0, 3, 0, 11, 0, 13, 0, 11, 1, 12, 0, 13, 0, 8, 0, 14, 0, 11, 0, 14, 1, 15, 0, 17, 0, 17, 0, 0, 0, 18, 0, 0, 1, 14, 0, 18, 1, 16, 0, 19, 2, 19, 4, 18, 0, 19, 0, 17, 1, 20, 0, 8, 1) diff --git a/addons/godot-xr-tools/staging/scene_base.gd b/addons/godot-xr-tools/staging/scene_base.gd index 8ff598e1..872c67e4 100644 --- a/addons/godot-xr-tools/staging/scene_base.gd +++ b/addons/godot-xr-tools/staging/scene_base.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsSceneBase -extends Spatial +extends Node3D ## Introduction # @@ -35,48 +35,50 @@ signal request_reset_scene # Here we set the environment we need to set as our world environment # once our scene is loaded. -export var environment : Environment +@export var environment : Environment ## Interface +func _ready() -> void: + pass -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsSceneBase" or .is_class(name) - +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsSceneBase" -func center_player_on(p_transform : Transform): +func center_player_on(p_transform : Transform3D): # In order to center our player so the players feet are at the location # indicated by p_transform, and having our player looking in the required # direction, we must offset this transform using the cameras transform. # So we get our current camera transform in local space - var camera_transform = $ARVROrigin/ARVRCamera.transform + var camera_transform = $XROrigin3D/XRCamera3D.transform # We obtain our view direction and zero out our height var view_direction = camera_transform.basis.z view_direction.y = 0 # Now create the transform that we will use to offset our input with - var transform : Transform + var transform : Transform3D transform = transform.looking_at(-view_direction, Vector3.UP) transform.origin = camera_transform.origin transform.origin.y = 0 # And now update our origin point - $ARVROrigin.global_transform = (p_transform * transform.inverse()).orthonormalized() + $XROrigin3D.global_transform = (p_transform * transform.inverse()).orthonormalized() func scene_loaded(): # Called after scene is loaded # Make sure our camera becomes the current camera - $ARVROrigin/ARVRCamera.current = true + $XROrigin3D/XRCamera3D.current = true + $XROrigin3D.current = true # Center our player on our origin point - # Note, this means you can place the ARVROrigin point in the start + # Note, this means you can place the XROrigin3D point in the start # position where you want the player to spawn, even if the player is # physically halfway across the room. - center_player_on($ARVROrigin.global_transform) + center_player_on($XROrigin3D.global_transform) func scene_visible(): # Called after the scene becomes fully visible diff --git a/addons/godot-xr-tools/staging/scene_base.tscn b/addons/godot-xr-tools/staging/scene_base.tscn index b1a3da67..6d04f77d 100644 --- a/addons/godot-xr-tools/staging/scene_base.tscn +++ b/addons/godot-xr-tools/staging/scene_base.tscn @@ -1,21 +1,24 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://qbmx03iibuuu"] -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.gd" type="Script" id=1] -[ext_resource path="res://default_env.tres" type="Environment" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/staging/scene_base.gd" id="1"] +[ext_resource type="Environment" uid="uid://c75hc5t2ml5re" path="res://default_env.tres" id="2"] -[node name="SceneBase" type="Spatial"] -script = ExtResource( 1 ) -environment = ExtResource( 2 ) +[node name="SceneBase" type="Node3D"] +script = ExtResource("1") +environment = ExtResource("2") -[node name="ARVROrigin" type="ARVROrigin" parent="."] +[node name="XROrigin3D" type="XROrigin3D" parent="."] -[node name="ARVRCamera" type="ARVRCamera" parent="ARVROrigin"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0 ) +[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0) far = 300.0 -[node name="LeftHand" type="ARVRController" parent="ARVROrigin"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1, -0.5 ) +[node name="LeftHand" type="XRController3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1, -0.5) +tracker = &"left_hand" +pose = &"aim" -[node name="RightHand" type="ARVRController" parent="ARVROrigin"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, -0.5 ) -controller_id = 2 +[node name="RightHand" type="XRController3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, -0.5) +tracker = &"right_hand" +pose = &"aim" diff --git a/addons/godot-xr-tools/staging/staging.gd b/addons/godot-xr-tools/staging/staging.gd index 543d115f..324e525e 100644 --- a/addons/godot-xr-tools/staging/staging.gd +++ b/addons/godot-xr-tools/staging/staging.gd @@ -1,6 +1,6 @@ -tool +@tool class_name XRToolsStaging -extends Spatial +extends Node3D ## XR Tools Staging @@ -48,10 +48,10 @@ signal xr_ended ## Main scene file -export (String, FILE, '*.tscn') var main_scene : String +@export_file('*.tscn') var main_scene : String ## If true, the player is prompted to continue -export var prompt_for_continue : bool = true +@export var prompt_for_continue : bool = true # Current scene @@ -60,6 +60,9 @@ var current_scene : XRToolsSceneBase # Current scene path var current_scene_path : String +# Tween for fading +var _tween : Tween + ## WorldEnvironment ## @@ -70,74 +73,69 @@ var current_scene_path : String ## scenes. Instead we will obtain the environment from our demo ## scene and manage it here. Our world environment at the start ## belongs to our loading screen and we need to keep a copy. -onready var loading_screen_environment = $WorldEnvironment.environment - -## Resource queue for loading resources -onready var resource_queue = XRToolsResourceQueue.new() +@onready var loading_screen_environment = $WorldEnvironment.environment ## XR Origin -onready var arvr_origin : ARVROrigin = ARVRHelpers.get_arvr_origin(self) +@onready var xr_origin : XROrigin3D = XRHelpers.get_xr_origin(self) ## XR Camera -onready var arvr_camera : ARVRCamera = ARVRHelpers.get_arvr_camera(self) +@onready var xr_camera : XRCamera3D = XRHelpers.get_xr_camera(self) func _ready(): # Do not initialise if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return # Specify the camera to track - if arvr_camera: - $LoadingScreen.set_camera(arvr_camera) - - # Start our resource loader - resource_queue.start() + if xr_camera: + $LoadingScreen.set_camera(xr_camera) # We start by loading our main level scene load_scene(main_scene) # Verifies our staging has a valid configuration. -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + # Report missing XR Origin - var test_origin : ARVROrigin = ARVRHelpers.get_arvr_origin(self) + var test_origin : XROrigin3D = XRHelpers.get_xr_origin(self) if !test_origin: - return "No ARVROrigin node found, please add one" + warnings.append("No XROrigin3D node found, please add one") # Report missing XR Camera - var test_camera : ARVRCamera = ARVRHelpers.get_arvr_camera(self) + var test_camera : XRCamera3D = XRHelpers.get_xr_camera(self) if !test_camera: - return "No ARVRCamera node found, please add one to your ARVROrigin node" + warnings.append("No XRCamera3D node found, please add one to your XROrigin3D node") # Report main scene not specified if main_scene == "": - return "No main scene selected" + warnings.append("No main scene selected") # Report main scene invalid - var file = File.new() - if !file.file_exists(main_scene): - return "Main scene doesn't exist" + if !FileAccess.file_exists(main_scene): + warnings.append("Main scene doesn't exist") - # Passed validation - return "" + # Return warnings + return warnings -# Add support for is_class on XRTools classes -func is_class(name : String) -> bool: - return name == "XRToolsStaging" or .is_class(name) +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "XRToolsStaging" ## Load the specified scene func load_scene(p_scene_path : String) -> void: # Do not load if in the editor - if Engine.editor_hint: + if Engine.is_editor_hint(): return - if !arvr_origin: + if !xr_origin: return - if !arvr_camera: + if !xr_camera: return if current_scene: @@ -150,10 +148,11 @@ func load_scene(p_scene_path : String) -> void: _remove_signals(current_scene) # Fade to black - $Tween.remove_all() - $Tween.interpolate_method(self, "set_fade", 0.0, 1.0, 1.0) - $Tween.start() - yield($Tween, "tween_all_completed") + if _tween: + _tween.kill() + _tween = get_tree().create_tween() + _tween.tween_method(set_fade, 0.0, 1.0, 1.0) + await _tween.finished # Now we remove our scene emit_signal("scene_exiting", current_scene) @@ -163,8 +162,9 @@ func load_scene(p_scene_path : String) -> void: current_scene = null # Make our loading screen visible again and reset some stuff - arvr_origin.set_process_internal(true) - arvr_camera.current = true + xr_origin.set_process_internal(true) + xr_origin.current = true + xr_camera.current = true $WorldEnvironment.environment = loading_screen_environment $LoadingScreen.progress = 0.0 $LoadingScreen.enable_press_to_continue = false @@ -173,58 +173,73 @@ func load_scene(p_scene_path : String) -> void: emit_signal("switching_to_loading_scene") # Fade to visible - $Tween.remove_all() - $Tween.interpolate_method(self, "set_fade", 1.0, 0.0, 1.0) - $Tween.start() - yield($Tween, "tween_all_completed") + if _tween: + _tween.kill() + _tween = get_tree().create_tween() + _tween.tween_method(set_fade, 1.0, 0.0, 1.0) + await _tween.finished + + # Load the new scene + var new_scene : PackedScene + if ResourceLoader.has_cached(p_scene_path): + # Load cached scene + new_scene = ResourceLoader.load(p_scene_path) + else: + # Start the loading in a thread + ResourceLoader.load_threaded_request(p_scene_path) - # Attempt to load our scene - resource_queue.queue_resource(p_scene_path) - while !resource_queue.is_ready(p_scene_path): - # wait a bit - yield(get_tree().create_timer(0.3), "timeout") + # Loop waiting for the scene to load + while true: + var progress := [] + var res := ResourceLoader.load_threaded_get_status(p_scene_path, progress) + if res != ResourceLoader.THREAD_LOAD_IN_PROGRESS: + break; - $LoadingScreen.progress = resource_queue.get_progress(p_scene_path) + $LoadingScreen.progress = progress[0] + await get_tree().create_timer(0.1).timeout - var new_scene : PackedScene = resource_queue.get_resource(p_scene_path) + # Get the loaded scene + new_scene = ResourceLoader.load_threaded_get(p_scene_path) # Wait for user to be ready if prompt_for_continue: $LoadingScreen.enable_press_to_continue = true - yield($LoadingScreen, "continue_pressed") + await $LoadingScreen.continue_pressed # Fade to black - $Tween.remove_all() - $Tween.interpolate_method(self, "set_fade", 0.0, 1.0, 1.0) - $Tween.start() - yield($Tween, "tween_all_completed") + if _tween: + _tween.kill() + _tween = get_tree().create_tween() + _tween.tween_method(set_fade, 0.0, 1.0, 1.0) + await _tween.finished # Hide our loading screen $LoadingScreen.follow_camera = false $LoadingScreen.visible = false - # Turn off internal process on our ARVROrigin node, the internal process - # of our ARVROrigin will submit its positioning data to the ARVRServer. - # With two ARVROrigin nodes we'll get competing data. - arvr_origin.set_process_internal(false) + # Turn off internal process on our FPController, the internal process + # of our XROrigin3D will submit its positioning data to the XRServer. + # With two XROrigin3D nodes we'll get competing data. + xr_origin.set_process_internal(false) # Setup our new scene - current_scene = new_scene.instance() + current_scene = new_scene.instantiate() current_scene_path = p_scene_path $Scene.add_child(current_scene) $WorldEnvironment.environment = current_scene.environment _add_signals(current_scene) # We create a small delay here to give tracking some time to update our nodes... - yield(get_tree().create_timer(0.1), "timeout") + await get_tree().create_timer(0.1).timeout current_scene.scene_loaded() emit_signal("scene_loaded", current_scene) # Fade to visible - $Tween.remove_all() - $Tween.interpolate_method(self, "set_fade", 1.0, 0.0, 1.0) - $Tween.start() - yield($Tween, "tween_all_completed") + if _tween: + _tween.kill() + _tween = get_tree().create_tween() + _tween.tween_method(set_fade, 1.0, 0.0, 1.0) + await _tween.finished current_scene.scene_visible() emit_signal("scene_visible", current_scene) @@ -239,22 +254,22 @@ func set_fade(p_value : float): if p_value == 0.0: $Fade.visible = false else: - var material : ShaderMaterial = $Fade.get_surface_material(0) + var material : ShaderMaterial = $Fade.get_surface_override_material(0) if material: - material.set_shader_param("alpha", p_value) + material.set_shader_parameter("alpha", p_value) $Fade.visible = true func _add_signals(p_scene : XRToolsSceneBase): - p_scene.connect("request_exit_to_main_menu", self, "_on_exit_to_main_menu") - p_scene.connect("request_load_scene", self, "_on_load_scene") - p_scene.connect("request_reset_scene", self, "_on_reset_scene") + p_scene.connect("request_exit_to_main_menu", _on_exit_to_main_menu) + p_scene.connect("request_load_scene", _on_load_scene) + p_scene.connect("request_reset_scene", _on_reset_scene) func _remove_signals(p_scene : XRToolsSceneBase): - p_scene.disconnect("request_exit_to_main_menu", self, "_on_exit_to_main_menu") - p_scene.disconnect("request_load_scene", self, "_on_load_scene") - p_scene.disconnect("request_reset_scene", self, "_on_reset_scene") + p_scene.disconnect("request_exit_to_main_menu", _on_exit_to_main_menu) + p_scene.disconnect("request_load_scene", _on_load_scene) + p_scene.disconnect("request_reset_scene", _on_reset_scene) func _on_exit_to_main_menu(): diff --git a/addons/godot-xr-tools/staging/staging.tscn b/addons/godot-xr-tools/staging/staging.tscn index 307fa1f2..f6c15447 100644 --- a/addons/godot-xr-tools/staging/staging.tscn +++ b/addons/godot-xr-tools/staging/staging.tscn @@ -1,57 +1,58 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=10 format=3 uid="uid://bnqnnnet4dw12"] -[ext_resource path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/staging/staging.gd" type="Script" id=2] -[ext_resource path="res://addons/godot-xr-tools/staging/loading_screen.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/staging/fade.gdshader" type="Shader" id=4] -[ext_resource path="res://addons/godot-xr-tools/xr/start_xr.tscn" type="PackedScene" id=5] +[ext_resource type="Script" path="res://addons/godot-xr-tools/staging/staging.gd" id="1"] +[ext_resource type="PackedScene" uid="uid://bqumugyvkct4r" path="res://addons/godot-xr-tools/staging/loading_screen.tscn" id="2"] +[ext_resource type="Shader" path="res://addons/godot-xr-tools/staging/fade.gdshader" id="4"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://clc5dre31iskm" path="res://addons/godot-xr-tools/xr/start_xr.tscn" id="6_balvx"] -[sub_resource type="QuadMesh" id=4] -custom_aabb = AABB( -5000, -5000, -5000, 10000, 10000, 10000 ) -size = Vector2( 2, 2 ) +[sub_resource type="QuadMesh" id="4"] +custom_aabb = AABB(-5000, -5000, -5000, 10000, 10000, 10000) +size = Vector2(2, 2) -[sub_resource type="ShaderMaterial" id=3] -shader = ExtResource( 4 ) -shader_param/alpha = 0.0 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_snlak"] +render_priority = 0 +shader = ExtResource("4") +shader_parameter/alpha = null -[sub_resource type="ProceduralSky" id=1] +[sub_resource type="Sky" id="1"] -[sub_resource type="Environment" id=2] +[sub_resource type="Environment" id="2"] background_mode = 1 -background_sky = SubResource( 1 ) +sky = SubResource("1") -[node name="Staging" type="Spatial"] -script = ExtResource( 2 ) +[node name="Staging" type="Node3D"] +script = ExtResource("1") +main_scene = "" -[node name="Fade" type="MeshInstance" parent="."] -mesh = SubResource( 4 ) -material/0 = SubResource( 3 ) +[node name="Fade" type="MeshInstance3D" parent="."] +mesh = SubResource("4") +surface_material_override/0 = SubResource("ShaderMaterial_snlak") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( 2 ) +environment = SubResource("2") -[node name="LoadingScreen" parent="." instance=ExtResource( 3 )] -progress = 0.0 - -[node name="Scene" type="Spatial" parent="."] +[node name="XROrigin3D" type="XROrigin3D" parent="."] -[node name="Tween" type="Tween" parent="."] +[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"] -[node name="ARVROrigin" type="ARVROrigin" parent="."] +[node name="VRCommonShaderCache" parent="XROrigin3D/XRCamera3D" instance=ExtResource("5")] -[node name="ARVRCamera" type="ARVRCamera" parent="ARVROrigin"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0 ) +[node name="LeftHandController" type="XRController3D" parent="XROrigin3D"] +tracker = &"left_hand" +pose = &"aim" -[node name="VRCommonShaderCache" parent="ARVROrigin/ARVRCamera" instance=ExtResource( 1 )] +[node name="RightHandController" type="XRController3D" parent="XROrigin3D"] +tracker = &"right_hand" +pose = &"aim" -[node name="LeftHand" type="ARVRController" parent="ARVROrigin"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1, -0.5 ) +[node name="LoadingScreen" parent="." instance=ExtResource("2")] +progress = 0.0 -[node name="RightHand" type="ARVRController" parent="ARVROrigin"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, -0.5 ) -controller_id = 2 +[node name="Scene" type="Node3D" parent="."] -[node name="StartXR" parent="." instance=ExtResource( 5 )] +[node name="StartXR" parent="." instance=ExtResource("6_balvx")] +physics_rate_multiplier = 1 [connection signal="xr_ended" from="StartXR" to="." method="_on_StartXR_xr_ended"] [connection signal="xr_started" from="StartXR" to="." method="_on_StartXR_xr_started"] diff --git a/addons/godot-xr-tools/user_settings/user_settings.gd b/addons/godot-xr-tools/user_settings/user_settings.gd index d3a9c428..8f355dab 100644 --- a/addons/godot-xr-tools/user_settings/user_settings.gd +++ b/addons/godot-xr-tools/user_settings/user_settings.gd @@ -1,19 +1,40 @@ extends Node +## Emitted when the WebXR primary is changed (either by the user or auto detected). +signal webxr_primary_changed (value) + + +enum WebXRPrimary { + AUTO, + THUMBSTICK, + TRACKPAD, +} + + ## User setting for snap-turn -export var snap_turning : bool = true +@export var snap_turning : bool = true ## User setting for player height adjust -export var player_height_adjust : float = 0.0 setget set_player_height_adjust +@export var player_height_adjust : float = 0.0: set = set_player_height_adjust + +## User setting for WebXR primary +@export var webxr_primary : WebXRPrimary = WebXRPrimary.AUTO: set = set_webxr_primary ## Settings file name to persist user settings var settings_file_name : String = "user://xtools_user_settings.json" +## Records the first input to generate input (thumbstick or trackpad). +var webxr_auto_primary := 0 + # Called when the node enters the scene tree for the first time. func _ready(): + var webxr_interface = XRServer.find_interface("WebXR") + if webxr_interface: + XRServer.tracker_added.connect(self._on_webxr_tracker_added) + _load() @@ -22,6 +43,8 @@ func reset_to_defaults() -> void: # Reset to defaults snap_turning = XRTools.get_default_snap_turning() player_height_adjust = 0.0 + webxr_primary = WebXRPrimary.AUTO + webxr_auto_primary = 0 ## Set the player height adjust property @@ -29,29 +52,58 @@ func set_player_height_adjust(new_value : float) -> void: player_height_adjust = clamp(new_value, -1.0, 1.0) +## Set the WebXR primary +func set_webxr_primary(new_value : WebXRPrimary) -> void: + webxr_primary = new_value + if webxr_primary == WebXRPrimary.AUTO: + if webxr_auto_primary == 0: + # Don't emit the signal yet, wait until we detect which to use. + pass + else: + webxr_primary_changed.emit(webxr_auto_primary) + else: + webxr_primary_changed.emit(webxr_primary) + + +## Gets the WebXR primary (taking into account auto detection). +func get_real_webxr_primary() -> WebXRPrimary: + if webxr_primary == WebXRPrimary.AUTO: + return webxr_auto_primary + return webxr_primary + + ## Save the settings to file func save() -> void: - # Convert the settings to a dictionary - var settings := { + # Construct the settings dictionary + var data = { "input" : { - "default_snap_turning" : snap_turning + "default_snap_turning" : snap_turning, }, "player" : { "height_adjust" : player_height_adjust + }, + "webxr" : { + "webxr_primary" : webxr_primary, } } - # Convert the settings dictionary to text - var settings_text := to_json(settings) + # Save to file + var file := FileAccess.open(settings_file_name, FileAccess.WRITE) + if file: + file.store_line(JSON.stringify(data)) - # Attempt to open the settings file for writing - var file := File.new() - if file.open(settings_file_name, File.WRITE) != OK: - return - # Write the settings text to the file - file.store_line(settings_text) - file.close() +## Get the action associated with a WebXR primary choice +static func get_webxr_primary_action(primary : WebXRPrimary) -> String: + match primary: + WebXRPrimary.THUMBSTICK: + return "thumbstick" + + WebXRPrimary.TRACKPAD: + return "trackpad" + + _: + return "auto" ## Load the settings from file @@ -59,34 +111,57 @@ func _load() -> void: # First reset our values reset_to_defaults() - # Skip if no settings file found - var file := File.new() - if !file.file_exists(settings_file_name): + # Now attempt to load our settings file + if !FileAccess.file_exists(settings_file_name): return - # Attempt to open the settings file for reading - if file.open(settings_file_name, File.READ) != OK: - # File open failed with an error + # Attempt to open the file + var file := FileAccess.open(settings_file_name, FileAccess.READ) + if not file: return - # Read the settings text - var settings_text := file.get_as_text() - file.close() - - # Parse the settings text and verify it's a dictionary - var settings_raw = parse_json(settings_text) - if typeof(settings_raw) != TYPE_DICTIONARY: + # Read the file as text + var text = file.get_as_text() + if text.is_empty(): return + # Parse the settings dictionary + var data : Dictionary = JSON.parse_string(text) + # Parse our input settings - var settings : Dictionary = settings_raw - if settings.has("input"): - var input : Dictionary = settings["input"] + if data.has("input"): + var input : Dictionary = data["input"] if input.has("default_snap_turning"): snap_turning = input["default_snap_turning"] # Parse our player settings - if settings.has("player"): - var player : Dictionary = settings["player"] + if data.has("player"): + var player : Dictionary = data["player"] if player.has("height_adjust"): player_height_adjust = player["height_adjust"] + + # Parse our WebXR settings + if data.has("webxr"): + var webxr : Dictionary = data["webxr"] + if webxr.has("webxr_primary"): + webxr_primary = webxr["webxr_primary"] + + +## Used to connect to tracker events when using WebXR. +func _on_webxr_tracker_added(tracker_name: StringName, _type: int) -> void: + if tracker_name == &"left_hand" or tracker_name == &"right_hand": + var tracker := XRServer.get_tracker(tracker_name) + tracker.input_vector2_changed.connect(self._on_webxr_vector2_changed) + + +## Used to auto detect which "primary" input gets used first. +func _on_webxr_vector2_changed(name: String, _vector: Vector2) -> void: + if webxr_auto_primary == 0: + if name == "thumbstick": + webxr_auto_primary = WebXRPrimary.THUMBSTICK + elif name == "trackpad": + webxr_auto_primary = WebXRPrimary.TRACKPAD + + if webxr_auto_primary != 0: + # Let the developer know which one is chosen. + webxr_primary_changed.emit(webxr_auto_primary) diff --git a/addons/godot-xr-tools/user_settings/user_settings_ui.gd b/addons/godot-xr-tools/user_settings/user_settings_ui.gd index d071d6ba..da427dbb 100644 --- a/addons/godot-xr-tools/user_settings/user_settings_ui.gd +++ b/addons/godot-xr-tools/user_settings/user_settings_ui.gd @@ -1,18 +1,25 @@ extends TabContainer -export (NodePath) var camera +@export_node_path("XRCamera3D") var camera -export var player_head_height : float = 0.1 +@export var player_head_height : float = 0.1 func _update(): # Input - $Input/SnapTurning/SnapTurningCB.pressed = XRToolsUserSettings.snap_turning + $Input/SnapTurning/SnapTurningCB.button_pressed = XRToolsUserSettings.snap_turning # Player $Player/PlayerHeight/PlayerHeightSlider.value = XRToolsUserSettings.player_height_adjust + # WebXR + $WebXR/WebXR/WebXRPrimary.selected = XRToolsUserSettings.webxr_primary + + # Called when the node enters the scene tree for the first time. func _ready(): + var webxr_interface = XRServer.find_interface("WebXR") + set_tab_hidden(2, webxr_interface == null) + if XRToolsUserSettings: _update() else: @@ -32,7 +39,7 @@ func _on_Reset_pressed(): # Input settings changed func _on_SnapTurningCB_pressed(): - XRToolsUserSettings.snap_turning = $Input/SnapTurning/SnapTurningCB.pressed + XRToolsUserSettings.snap_turning = $Input/SnapTurning/SnapTurningCB.button_pressed # Player settings changed func _on_PlayerHeightSlider_drag_ended(_value_changed): @@ -40,7 +47,7 @@ func _on_PlayerHeightSlider_drag_ended(_value_changed): func _on_PlayerHeightStandard_pressed(): - if !camera: + if camera.is_empty(): return var camera_node = get_node_or_null(camera) @@ -51,3 +58,7 @@ func _on_PlayerHeightStandard_pressed(): var height_adjust = XRTools.get_player_standard_height() - base_height XRToolsUserSettings.player_height_adjust = height_adjust $Player/PlayerHeight/PlayerHeightSlider.value = XRToolsUserSettings.player_height_adjust + + +func _on_web_xr_primary_item_selected(index: int) -> void: + XRToolsUserSettings.webxr_primary = index diff --git a/addons/godot-xr-tools/user_settings/user_settings_ui.tscn b/addons/godot-xr-tools/user_settings/user_settings_ui.tscn index 898b76b1..f0300d56 100644 --- a/addons/godot-xr-tools/user_settings/user_settings_ui.tscn +++ b/addons/godot-xr-tools/user_settings/user_settings_ui.tscn @@ -1,136 +1,133 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://ytsxet2k47lj"] -[ext_resource path="res://addons/godot-xr-tools/user_settings/user_settings_ui.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/user_settings/user_settings_ui.gd" id="1"] [node name="UserSettingsUI" type="TabContainer"] -rect_min_size = Vector2( 250, 200 ) -tab_align = 0 -script = ExtResource( 1 ) +offset_right = 214.0 +offset_bottom = 126.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_font_sizes/font_size = 12 +script = ExtResource("1") [node name="Input" type="VBoxContainer" parent="."] -visible = false -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 4.0 -margin_top = 32.0 -margin_right = -4.0 -margin_bottom = -4.0 +layout_mode = 2 [node name="SnapTurning" type="HBoxContainer" parent="Input"] -margin_right = 242.0 -margin_bottom = 24.0 +layout_mode = 2 [node name="Label" type="Label" parent="Input/SnapTurning"] -margin_top = 1.0 -margin_right = 100.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 100, 21 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Snap turning:" -align = 2 -valign = 1 [node name="SnapTurningCB" type="CheckBox" parent="Input/SnapTurning"] -margin_left = 104.0 -margin_right = 128.0 -margin_bottom = 24.0 +layout_mode = 2 [node name="HSeparator" type="HSeparator" parent="Input"] -margin_top = 28.0 -margin_right = 242.0 -margin_bottom = 32.0 +layout_mode = 2 [node name="Buttons" type="HBoxContainer" parent="Input"] -margin_top = 36.0 -margin_right = 242.0 -margin_bottom = 61.0 -custom_constants/separation = 10 +layout_mode = 2 alignment = 1 [node name="Save" type="Button" parent="Input/Buttons"] -margin_left = 41.0 -margin_right = 116.0 -margin_bottom = 25.0 -rect_min_size = Vector2( 75, 25 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Apply" [node name="Reset" type="Button" parent="Input/Buttons"] -margin_left = 126.0 -margin_right = 201.0 -margin_bottom = 25.0 -rect_min_size = Vector2( 75, 25 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Reset" [node name="Player" type="VBoxContainer" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 4.0 -margin_top = 32.0 -margin_right = -4.0 -margin_bottom = -4.0 +visible = false +layout_mode = 2 [node name="PlayerHeight" type="HBoxContainer" parent="Player"] -margin_right = 242.0 -margin_bottom = 21.0 +layout_mode = 2 [node name="Label" type="Label" parent="Player/PlayerHeight"] -margin_right = 100.0 -margin_bottom = 21.0 -rect_min_size = Vector2( 100, 21 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Height adjust:" -align = 2 -valign = 1 [node name="PlayerHeightSlider" type="HSlider" parent="Player/PlayerHeight"] -margin_left = 104.0 -margin_right = 229.0 -margin_bottom = 16.0 -rect_min_size = Vector2( 125, 0 ) +layout_mode = 2 +size_flags_horizontal = 3 min_value = -1.0 max_value = 1.0 step = 0.1 [node name="PlayerHeightCalc" type="HBoxContainer" parent="Player"] -margin_top = 25.0 -margin_right = 242.0 -margin_bottom = 50.0 +layout_mode = 2 [node name="Label" type="Label" parent="Player/PlayerHeightCalc"] -margin_top = 5.0 -margin_right = 100.0 -margin_bottom = 19.0 -rect_min_size = Vector2( 100, 0 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 [node name="PlayerHeightStandard" type="Button" parent="Player/PlayerHeightCalc"] -margin_left = 104.0 -margin_right = 229.0 -margin_bottom = 25.0 -rect_min_size = Vector2( 125, 25 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Set to standard" [node name="HSeparator" type="HSeparator" parent="Player"] -margin_top = 54.0 -margin_right = 242.0 -margin_bottom = 58.0 +layout_mode = 2 [node name="Buttons" type="HBoxContainer" parent="Player"] -margin_top = 62.0 -margin_right = 242.0 -margin_bottom = 87.0 -custom_constants/separation = 10 +layout_mode = 2 alignment = 1 [node name="Save" type="Button" parent="Player/Buttons"] -margin_left = 41.0 -margin_right = 116.0 -margin_bottom = 25.0 -rect_min_size = Vector2( 75, 25 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Apply" [node name="Reset" type="Button" parent="Player/Buttons"] -margin_left = 126.0 -margin_right = 201.0 -margin_bottom = 25.0 -rect_min_size = Vector2( 75, 25 ) +layout_mode = 2 +theme_override_font_sizes/font_size = 12 +text = "Reset" + +[node name="WebXR" type="VBoxContainer" parent="."] +visible = false +layout_mode = 2 + +[node name="WebXR" type="HBoxContainer" parent="WebXR"] +layout_mode = 2 + +[node name="Label" type="Label" parent="WebXR/WebXR"] +layout_mode = 2 +theme_override_font_sizes/font_size = 12 +text = "WebXR primary:" + +[node name="WebXRPrimary" type="OptionButton" parent="WebXR/WebXR"] +layout_mode = 2 +theme_override_font_sizes/font_size = 12 +item_count = 3 +selected = 0 +popup/item_0/text = "Auto" +popup/item_0/id = 0 +popup/item_1/text = "Thumbstick" +popup/item_1/id = 1 +popup/item_2/text = "Trackpad" +popup/item_2/id = 2 + +[node name="HSeparator" type="HSeparator" parent="WebXR"] +layout_mode = 2 + +[node name="Buttons" type="HBoxContainer" parent="WebXR"] +layout_mode = 2 +alignment = 1 + +[node name="Save" type="Button" parent="WebXR/Buttons"] +layout_mode = 2 +theme_override_font_sizes/font_size = 12 +text = "Apply" + +[node name="Reset" type="Button" parent="WebXR/Buttons"] +layout_mode = 2 +theme_override_font_sizes/font_size = 12 text = "Reset" [connection signal="pressed" from="Input/SnapTurning/SnapTurningCB" to="." method="_on_SnapTurningCB_pressed"] @@ -140,3 +137,6 @@ text = "Reset" [connection signal="pressed" from="Player/PlayerHeightCalc/PlayerHeightStandard" to="." method="_on_PlayerHeightStandard_pressed"] [connection signal="pressed" from="Player/Buttons/Save" to="." method="_on_Save_pressed"] [connection signal="pressed" from="Player/Buttons/Reset" to="." method="_on_Reset_pressed"] +[connection signal="item_selected" from="WebXR/WebXR/WebXRPrimary" to="." method="_on_web_xr_primary_item_selected"] +[connection signal="pressed" from="WebXR/Buttons/Save" to="." method="_on_Save_pressed"] +[connection signal="pressed" from="WebXR/Buttons/Reset" to="." method="_on_Reset_pressed"] diff --git a/addons/godot-xr-tools/xr/start_xr.gd b/addons/godot-xr-tools/xr/start_xr.gd index f9fae2ac..b7cbce11 100644 --- a/addons/godot-xr-tools/xr/start_xr.gd +++ b/addons/godot-xr-tools/xr/start_xr.gd @@ -1,4 +1,4 @@ -tool +@tool class_name XRToolsStartXR extends Node @@ -27,52 +27,43 @@ signal xr_ended ## If true, the XR interface is automatically initialized -export var auto_initialize : bool = true - -## Adjusts the pixel density on the rendering target -export var render_target_size_multiplier : float = 1.0 +@export var auto_initialize : bool = true ## If true, the XR passthrough is enabled (OpenXR only) -export var enable_passthrough : bool = false setget _set_enable_passthrough +@export var enable_passthrough : bool = false: set = _set_enable_passthrough ## Physics rate multiplier compared to HMD frame rate -export var physics_rate_multiplier : int = 1 +@export var physics_rate_multiplier : int = 1 ## If non-zero, specifies the target refresh rate -export var target_refresh_rate : float = 0 +@export var target_refresh_rate : float = 0 ## Current XR interface -var xr_interface : ARVRInterface +var xr_interface : XRInterface ## XR active flag var xr_active : bool = false -# OpenXR configuration (of type OpenXRConfig.gdns) -var _openxr_configuration - -# OpenXR enabled extensions -var _openxr_enabled_extensions : Array - # Current refresh rate var _current_refresh_rate : float = 0 # Handle auto-initialization when ready func _ready() -> void: - if !Engine.editor_hint and auto_initialize: + if !Engine.is_editor_hint() and auto_initialize: initialize() ## Initialize the XR interface func initialize() -> bool: # Check for OpenXR interface - xr_interface = ARVRServer.find_interface('OpenXR') + xr_interface = XRServer.find_interface('OpenXR') if xr_interface: return _setup_for_openxr() # Check for WebXR interface - xr_interface = ARVRServer.find_interface('WebXR') + xr_interface = XRServer.find_interface('WebXR') if xr_interface: return _setup_for_webxr() @@ -83,56 +74,40 @@ func initialize() -> bool: # Check for configuration issues -func _get_configuration_warning(): +func _get_configuration_warnings() -> PackedStringArray: + var warnings := PackedStringArray() + if physics_rate_multiplier < 1: - return "Physics rate multiplier should be at least 1x the HMD rate" + warnings.append("Physics rate multiplier should be at least 1x the HMD rate") - return "" + return warnings # Perform OpenXR setup func _setup_for_openxr() -> bool: print("OpenXR: Configuring interface") - # Load the OpenXR configuration resource - var openxr_config_res := load("res://addons/godot-openxr/config/OpenXRConfig.gdns") - if not openxr_config_res: - push_error("OpenXR: Unable to load OpenXRConfig.gdns") - return false - - # Create the OpenXR configuration class - _openxr_configuration = openxr_config_res.new() - - # Set the render target size multiplier - must be done befor initializing interface - _openxr_configuration.render_target_size_multiplier = render_target_size_multiplier - # Initialize the OpenXR interface - if not xr_interface.interface_is_initialized: + if not xr_interface.is_initialized(): print("OpenXR: Initializing interface") if not xr_interface.initialize(): push_error("OpenXR: Failed to initialize") return false - # Print the system name - print("OpenXR: System name: ", _openxr_configuration.get_system_name()) - # Connect the OpenXR events - ARVRServer.connect("openxr_session_begun", self, "_on_openxr_session_begun") - ARVRServer.connect("openxr_visible_state", self, "_on_openxr_visible_state") - ARVRServer.connect("openxr_focused_state", self, "_on_openxr_focused_state") - - # Read the OpenXR enabled extensions - _openxr_enabled_extensions = _openxr_configuration.get_enabled_extensions() + xr_interface.connect("session_begun", _on_openxr_session_begun) + xr_interface.connect("session_visible", _on_openxr_visible_state) + xr_interface.connect("session_focussed", _on_openxr_focused_state) # Check for passthrough - if enable_passthrough and _openxr_is_passthrough_supported(): - enable_passthrough = _openxr_start_passthrough() + if enable_passthrough and xr_interface.is_passthrough_supported(): + enable_passthrough = xr_interface.start_passthrough() # Disable vsync - OS.vsync_enabled = false + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) # Switch the viewport to XR - get_viewport().arvr = true + get_viewport().use_xr = true # Report success return true @@ -142,11 +117,8 @@ func _setup_for_openxr() -> bool: func _on_openxr_session_begun() -> void: print("OpenXR: Session begun") - # Our interface will tell us whether we should keep our render buffer in linear color space - get_viewport().keep_3d_linear = _openxr_configuration.keep_3d_linear() - # Get the reported refresh rate - _current_refresh_rate = _openxr_configuration.get_refresh_rate() + _current_refresh_rate = xr_interface.get_display_refresh_rate() if _current_refresh_rate > 0: print("OpenXR: Refresh rate reported as ", str(_current_refresh_rate)) else: @@ -154,7 +126,7 @@ func _on_openxr_session_begun() -> void: # Pick a desired refresh rate var desired_rate := target_refresh_rate if target_refresh_rate > 0 else _current_refresh_rate - var available_rates : Array = _openxr_configuration.get_available_refresh_rates() + var available_rates : Array = xr_interface.get_available_display_refresh_rates() if available_rates.size() == 0: print("OpenXR: Target does not support refresh rate extension") elif available_rates.size() == 1: @@ -164,14 +136,14 @@ func _on_openxr_session_begun() -> void: var rate = _find_closest(available_rates, desired_rate) if rate > 0: print("OpenXR: Setting refresh rate to ", str(rate)) - _openxr_configuration.set_refresh_rate(rate) + xr_interface.set_display_refresh_rate(rate) _current_refresh_rate = rate - # increase our physics engine update speed + # Pick a physics rate var active_rate := _current_refresh_rate if _current_refresh_rate > 0 else 144.0 var physics_rate := int(round(active_rate * physics_rate_multiplier)) print("Setting physics rate to ", physics_rate) - Engine.iterations_per_second = physics_rate + Engine.physics_ticks_per_second = physics_rate # Handle OpenXR visible state @@ -199,35 +171,12 @@ func _set_enable_passthrough(p_new_value : bool) -> void: # Only actually start our passthrough if our interface has been instanced # if not this will be delayed until initialise is successfully called. - if xr_interface and _openxr_configuration: + if xr_interface: if enable_passthrough: # unset enable_passthrough if we can't start it. - enable_passthrough = _openxr_start_passthrough() + enable_passthrough = xr_interface.start_passthrough() else: - _openxr_stop_passthrough() - - -# Test if passthrough is supported -func _openxr_is_passthrough_supported() -> bool: - return _openxr_enabled_extensions.find("XR_FB_passthrough") >= 0 - - -# Start OpenXR passthrough -func _openxr_start_passthrough() -> bool: - # Set viewport transparent background - get_viewport().transparent_bg = true - - # Enable passthrough - return _openxr_configuration.start_passthrough() - - -# Stop OpenXR passthrough -func _openxr_stop_passthrough() -> void: - # Clear viewport transparent background - get_viewport().transparent_bg = false - - # Disable passthrough - _openxr_configuration.stop_passthrough() + xr_interface.stop_passthrough() # Perform WebXR setup @@ -235,17 +184,17 @@ func _setup_for_webxr() -> bool: print("WebXR: Configuring interface") # Connect the WebXR events - xr_interface.connect("session_supported", self, "_on_webxr_session_supported") - xr_interface.connect("session_started", self, "_on_webxr_session_started") - xr_interface.connect("session_ended", self, "_on_webxr_session_ended") - xr_interface.connect("session_failed", self, "_on_webxr_session_failed") + xr_interface.connect("session_supported", _on_webxr_session_supported) + xr_interface.connect("session_started", _on_webxr_session_started) + xr_interface.connect("session_ended", _on_webxr_session_ended) + xr_interface.connect("session_failed", _on_webxr_session_failed) # WebXR currently has no means of querying the refresh rate, so use # something sufficiently high - Engine.iterations_per_second = 144 + Engine.physics_ticks_per_second = 144 # If the viewport is already in XR mode then we are done. - if get_viewport().arvr: + if get_viewport().use_xr: return true # This returns immediately - our _webxr_session_supported() method @@ -273,7 +222,7 @@ func _on_webxr_session_started() -> void: # Hide the canvas and switch the viewport to XR $EnterWebXR.visible = false - get_viewport().arvr = true + get_viewport().use_xr = true # Report the XR starting xr_active = true @@ -286,7 +235,7 @@ func _on_webxr_session_ended() -> void: # Show the canvas and switch the viewport to non-XR $EnterWebXR.visible = true - get_viewport().arvr = false + get_viewport().use_xr = false # Report the XR ending xr_active = false @@ -306,7 +255,6 @@ func _on_enter_webxr_button_pressed() -> void: xr_interface.requested_reference_space_types = 'bounded-floor, local-floor, local' xr_interface.required_features = 'local-floor' xr_interface.optional_features = 'bounded-floor' - xr_interface.xr_standard_mapping = true # Initialize the interface. This should trigger either _on_webxr_session_started # or _on_webxr_session_failed diff --git a/addons/godot-xr-tools/xr/start_xr.tscn b/addons/godot-xr-tools/xr/start_xr.tscn index f600145d..fc156c5d 100644 --- a/addons/godot-xr-tools/xr/start_xr.tscn +++ b/addons/godot-xr-tools/xr/start_xr.tscn @@ -1,22 +1,26 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://clc5dre31iskm"] -[ext_resource path="res://addons/godot-xr-tools/xr/start_xr.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/godot-xr-tools/xr/start_xr.gd" id="1_ljt1b"] [node name="StartXR" type="Node"] -script = ExtResource( 1 ) +script = ExtResource("1_ljt1b") +physics_rate_multiplier = 1.0 [node name="EnterWebXR" type="CanvasLayer" parent="."] visible = false [node name="EnterVRButton" type="Button" parent="EnterWebXR"] +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -margin_left = -132.0 -margin_top = -52.5 -margin_right = 132.0 -margin_bottom = 52.5 +offset_left = -132.0 +offset_top = -52.5 +offset_right = 132.0 +offset_bottom = 52.5 +grow_horizontal = 2 +grow_vertical = 2 text = "Enter VR" [connection signal="pressed" from="EnterWebXR/EnterVRButton" to="." method="_on_enter_webxr_button_pressed"] diff --git a/addons/godot-xr-tools/xr_tools.gd b/addons/godot-xr-tools/xr_tools.gd index 6bc63e04..becb811f 100644 --- a/addons/godot-xr-tools/xr_tools.gd +++ b/addons/godot-xr-tools/xr_tools.gd @@ -1,39 +1,6 @@ class_name XRTools extends Node -# This class contains global definitions for our XRTools library - -# enum our axis -enum Axis { - VR_PRIMARY_X_AXIS = 0, - VR_PRIMARY_Y_AXIS = 1, - VR_SECONDARY_X_AXIS = 6, - VR_SECONDARY_Y_AXIS = 7, - VR_TRIGGER_AXIS = 2, - VR_GRIP_AXIS = 4 -} - - -# enum our buttons -enum Buttons { - VR_BUTTON_BY = 1, - VR_GRIP = 2, - VR_BUTTON_3 = 3, - VR_BUTTON_4 = 4, - VR_BUTTON_5 = 5, - VR_BUTTON_6 = 6, - VR_BUTTON_AX = 7, - VR_BUTTON_8 = 8, - VR_BUTTON_9 = 9, - VR_BUTTON_10 = 10, - VR_BUTTON_11 = 11, - VR_BUTTON_12 = 12, - VR_BUTTON_13 = 13, - VR_PAD = 14, - VR_TRIGGER = 15, - VR_ACTION = 255 ## Only supported in function pointer, should solve that differently!! -} - static func get_grip_threshold() -> float: # can return null which is not a float, so don't type this! @@ -125,7 +92,7 @@ static func set_player_standard_height(p_height : float) -> void: ## nodes, or whether to only check the immediate children. ## ## The owned argument specifies whether the node must be owned. -static func find_children( +static func find_xr_children( node : Node, pattern : String, type : String = "", @@ -134,7 +101,7 @@ static func find_children( # Find the children var found := [] if node: - _find_children(found, node, pattern, type, recursive, owned) + _find_xr_children(found, node, pattern, type, recursive, owned) return found ## Find a child of the specified node matching the given criteria @@ -152,7 +119,7 @@ static func find_children( ## nodes, or whether to only check the immediate children. ## ## The owned argument specifies whether the node must be owned. -static func find_child( +static func find_xr_child( node : Node, pattern : String, type : String = "", @@ -160,7 +127,7 @@ static func find_child( owned : bool = true) -> Node: # Find the child if node: - return _find_child(node, pattern, type, recursive, owned) + return _find_xr_child(node, pattern, type, recursive, owned) # Invalid node return null @@ -175,7 +142,7 @@ static func find_child( ## ## The type argument specifies the type of node to find. Use "" to match any ## type. -static func find_ancestor( +static func find_xr_ancestor( node : Node, pattern : String, type : String = "") -> Node: @@ -183,7 +150,7 @@ static func find_ancestor( while node: # If node matches filter then break if (node.name.match(pattern) and - (type == "" or node.is_class(type))): + (type == "" or is_xr_class(node, type))): break # Advance to parent @@ -193,7 +160,7 @@ static func find_ancestor( return node # Recursive helper function for find_children. -static func _find_children( +static func _find_xr_children( found : Array, node : Node, pattern : String, @@ -207,16 +174,16 @@ static func _find_children( # If child matches filter then add it to the array if (child.name.match(pattern) and - (type == "" or child.is_class(type)) and + (type == "" or is_xr_class(child, type)) and (not owned or child.owner)): found.push_back(child) # If recursive is enabled then descend into children if recursive: - _find_children(found, child, pattern, type, recursive, owned) + _find_xr_children(found, child, pattern, type, recursive, owned) # Recursive helper functiomn for find_child -static func _find_child( +static func _find_xr_child( node : Node, pattern : String, type : String, @@ -229,15 +196,23 @@ static func _find_child( # If child matches filter then return it if (child.name.match(pattern) and - (type == "" or child.is_class(type)) and + (type == "" or is_xr_class(child, type)) and (not owned or child.owner)): return child # If recursive is enabled then descend into children if recursive: - var found := _find_child(child, pattern, type, recursive, owned) + var found := _find_xr_child(child, pattern, type, recursive, owned) if found: return found # Not found return null + +# Test if a given node is of the specified class +static func is_xr_class(node : Node, type : String) -> bool: + if node.has_method("is_xr_class"): + if node.is_xr_class(type): + return true + + return node.is_class(type) diff --git a/assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg.import b/assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg.import index cbc68f2d..ae8c1791 100644 --- a/assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg.import +++ b/assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg.import @@ -1,35 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/SkyOnlyHDRI023_2K-TONEMAPPED.jpg-bcb5464e5ed42ee2463b71652f907f38.stex" +type="CompressedTexture2D" +uid="uid://dqoe1c5yn5dnv" +path.bptc="res://.godot/imported/SkyOnlyHDRI023_2K-TONEMAPPED.jpg-bcb5464e5ed42ee2463b71652f907f38.bptc.ctex" +path.astc="res://.godot/imported/SkyOnlyHDRI023_2K-TONEMAPPED.jpg-bcb5464e5ed42ee2463b71652f907f38.astc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg" -dest_files=[ "res://.import/SkyOnlyHDRI023_2K-TONEMAPPED.jpg-bcb5464e5ed42ee2463b71652f907f38.stex" ] +dest_files=["res://.godot/imported/SkyOnlyHDRI023_2K-TONEMAPPED.jpg-bcb5464e5ed42ee2463b71652f907f38.bptc.ctex", "res://.godot/imported/SkyOnlyHDRI023_2K-TONEMAPPED.jpg-bcb5464e5ed42ee2463b71652f907f38.astc.ctex"] [params] -compress/mode=0 +compress/mode=2 +compress/high_quality=true compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/footsteps/default_footstep.ogg.import b/assets/footsteps/default_footstep.ogg.import new file mode 100644 index 00000000..1abb4e8a --- /dev/null +++ b/assets/footsteps/default_footstep.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://1pvhce6jale0" +path="res://.godot/imported/default_footstep.ogg-7e783a6a4a857808e4d6ab521d97dec5.oggvorbisstr" + +[deps] + +source_file="res://assets/footsteps/default_footstep.ogg" +dest_files=["res://.godot/imported/default_footstep.ogg-7e783a6a4a857808e4d6ab521d97dec5.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/footsteps/default_footstep.wav.import b/assets/footsteps/default_footstep.wav.import index 73397ef3..e3bd0f20 100644 --- a/assets/footsteps/default_footstep.wav.import +++ b/assets/footsteps/default_footstep.wav.import @@ -1,13 +1,14 @@ [remap] importer="wav" -type="AudioStreamSample" -path="res://.import/default_footstep.wav-dd12f9efdea3173225647961887739e0.sample" +type="AudioStreamWAV" +uid="uid://cddgfn5xkknr4" +path="res://.godot/imported/default_footstep.wav-dd12f9efdea3173225647961887739e0.sample" [deps] source_file="res://assets/footsteps/default_footstep.wav" -dest_files=[ "res://.import/default_footstep.wav-dd12f9efdea3173225647961887739e0.sample" ] +dest_files=["res://.godot/imported/default_footstep.wav-dd12f9efdea3173225647961887739e0.sample"] [params] diff --git a/assets/footsteps/grass_footstep.ogg.import b/assets/footsteps/grass_footstep.ogg.import new file mode 100644 index 00000000..7c7d57ce --- /dev/null +++ b/assets/footsteps/grass_footstep.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://di2mvj64s1ykq" +path="res://.godot/imported/grass_footstep.ogg-11247a302dcdd9e3719af4c0193776fa.oggvorbisstr" + +[deps] + +source_file="res://assets/footsteps/grass_footstep.ogg" +dest_files=["res://.godot/imported/grass_footstep.ogg-11247a302dcdd9e3719af4c0193776fa.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/footsteps/grass_footstep.wav.import b/assets/footsteps/grass_footstep.wav.import index 093f3b18..1ae8f7e7 100644 --- a/assets/footsteps/grass_footstep.wav.import +++ b/assets/footsteps/grass_footstep.wav.import @@ -1,13 +1,14 @@ [remap] importer="wav" -type="AudioStreamSample" -path="res://.import/grass_footstep.wav-b9825665a4e1ac3aee5f9998be56cb59.sample" +type="AudioStreamWAV" +uid="uid://dl3u65cveimdq" +path="res://.godot/imported/grass_footstep.wav-b9825665a4e1ac3aee5f9998be56cb59.sample" [deps] source_file="res://assets/footsteps/grass_footstep.wav" -dest_files=[ "res://.import/grass_footstep.wav-b9825665a4e1ac3aee5f9998be56cb59.sample" ] +dest_files=["res://.godot/imported/grass_footstep.wav-b9825665a4e1ac3aee5f9998be56cb59.sample"] [params] diff --git a/assets/footsteps/mud_footstep.ogg.import b/assets/footsteps/mud_footstep.ogg.import new file mode 100644 index 00000000..37fe6b84 --- /dev/null +++ b/assets/footsteps/mud_footstep.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cr8gitem2utdd" +path="res://.godot/imported/mud_footstep.ogg-7037238fe005102e9ddd7e51a9099967.oggvorbisstr" + +[deps] + +source_file="res://assets/footsteps/mud_footstep.ogg" +dest_files=["res://.godot/imported/mud_footstep.ogg-7037238fe005102e9ddd7e51a9099967.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/footsteps/mud_footstep.wav.import b/assets/footsteps/mud_footstep.wav.import index b41ece1c..09794354 100644 --- a/assets/footsteps/mud_footstep.wav.import +++ b/assets/footsteps/mud_footstep.wav.import @@ -1,13 +1,14 @@ [remap] importer="wav" -type="AudioStreamSample" -path="res://.import/mud_footstep.wav-efdbb54cdc8800b21fa00335ae339ccc.sample" +type="AudioStreamWAV" +uid="uid://bu3r7384vd488" +path="res://.godot/imported/mud_footstep.wav-efdbb54cdc8800b21fa00335ae339ccc.sample" [deps] source_file="res://assets/footsteps/mud_footstep.wav" -dest_files=[ "res://.import/mud_footstep.wav-efdbb54cdc8800b21fa00335ae339ccc.sample" ] +dest_files=["res://.godot/imported/mud_footstep.wav-efdbb54cdc8800b21fa00335ae339ccc.sample"] [params] diff --git a/assets/footsteps/puddle_footstep.ogg.import b/assets/footsteps/puddle_footstep.ogg.import new file mode 100644 index 00000000..a342db2a --- /dev/null +++ b/assets/footsteps/puddle_footstep.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cvxjtvoif1jyy" +path="res://.godot/imported/puddle_footstep.ogg-5273758367d1d69b3ade5bc1c8e04ac5.oggvorbisstr" + +[deps] + +source_file="res://assets/footsteps/puddle_footstep.ogg" +dest_files=["res://.godot/imported/puddle_footstep.ogg-5273758367d1d69b3ade5bc1c8e04ac5.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/footsteps/puddle_footstep.wav.import b/assets/footsteps/puddle_footstep.wav.import index d3fc3d50..1dc1c348 100644 --- a/assets/footsteps/puddle_footstep.wav.import +++ b/assets/footsteps/puddle_footstep.wav.import @@ -1,13 +1,14 @@ [remap] importer="wav" -type="AudioStreamSample" -path="res://.import/puddle_footstep.wav-9cd3f487c53d96b75250ff56889df57f.sample" +type="AudioStreamWAV" +uid="uid://dkladw5jiqfnb" +path="res://.godot/imported/puddle_footstep.wav-9cd3f487c53d96b75250ff56889df57f.sample" [deps] source_file="res://assets/footsteps/puddle_footstep.wav" -dest_files=[ "res://.import/puddle_footstep.wav-9cd3f487c53d96b75250ff56889df57f.sample" ] +dest_files=["res://.godot/imported/puddle_footstep.wav-9cd3f487c53d96b75250ff56889df57f.sample"] [params] diff --git a/assets/footsteps/snow_footstep.ogg.import b/assets/footsteps/snow_footstep.ogg.import new file mode 100644 index 00000000..88526168 --- /dev/null +++ b/assets/footsteps/snow_footstep.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c3ao6lhc7um4b" +path="res://.godot/imported/snow_footstep.ogg-7e1bcc3ef0b8143bef0df51cc7cd7511.oggvorbisstr" + +[deps] + +source_file="res://assets/footsteps/snow_footstep.ogg" +dest_files=["res://.godot/imported/snow_footstep.ogg-7e1bcc3ef0b8143bef0df51cc7cd7511.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/footsteps/snow_footstep.wav.import b/assets/footsteps/snow_footstep.wav.import index 3dfcbaac..f962923d 100644 --- a/assets/footsteps/snow_footstep.wav.import +++ b/assets/footsteps/snow_footstep.wav.import @@ -1,13 +1,14 @@ [remap] importer="wav" -type="AudioStreamSample" -path="res://.import/snow_footstep.wav-29f78401fa6c1bbd519099873252fb56.sample" +type="AudioStreamWAV" +uid="uid://c7670m64eawbp" +path="res://.godot/imported/snow_footstep.wav-29f78401fa6c1bbd519099873252fb56.sample" [deps] source_file="res://assets/footsteps/snow_footstep.wav" -dest_files=[ "res://.import/snow_footstep.wav-29f78401fa6c1bbd519099873252fb56.sample" ] +dest_files=["res://.godot/imported/snow_footstep.wav-29f78401fa6c1bbd519099873252fb56.sample"] [params] diff --git a/assets/godot/splash.png.import b/assets/godot/splash.png.import index f2e02dca..74018306 100644 --- a/assets/godot/splash.png.import +++ b/assets/godot/splash.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/splash.png-34eca73d45cf0604f835226d6332bc2e.s3tc.stex" -path.etc="res://.import/splash.png-34eca73d45cf0604f835226d6332bc2e.etc.stex" +type="CompressedTexture2D" +uid="uid://ftrrxm7sxndi" +path.s3tc="res://.godot/imported/splash.png-34eca73d45cf0604f835226d6332bc2e.s3tc.ctex" +path.etc2="res://.godot/imported/splash.png-34eca73d45cf0604f835226d6332bc2e.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/godot/splash.png" -dest_files=[ "res://.import/splash.png-34eca73d45cf0604f835226d6332bc2e.s3tc.stex", "res://.import/splash.png-34eca73d45cf0604f835226d6332bc2e.etc.stex" ] +dest_files=["res://.godot/imported/splash.png-34eca73d45cf0604f835226d6332bc2e.s3tc.ctex", "res://.godot/imported/splash.png-34eca73d45cf0604f835226d6332bc2e.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/maps/basic_map.tscn b/assets/maps/basic_map.tscn index eb88963f..154496a7 100644 --- a/assets/maps/basic_map.tscn +++ b/assets/maps/basic_map.tscn @@ -1,84 +1,84 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=6 format=3 uid="uid://rypqa6qcv0st"] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="2"] -[sub_resource type="QuadMesh" id=7] -size = Vector2( 96, 96 ) +[sub_resource type="QuadMesh" id="7"] +size = Vector2(96, 96) -[sub_resource type="BoxShape" id=6] -extents = Vector3( 50, 1, 50 ) +[sub_resource type="BoxShape3D" id="6"] +size = Vector3(100, 2, 100) -[sub_resource type="QuadMesh" id=8] -size = Vector2( 96, 16 ) +[sub_resource type="QuadMesh" id="8"] +size = Vector2(96, 16) -[sub_resource type="BoxShape" id=4] -extents = Vector3( 50, 8, 1 ) +[sub_resource type="BoxShape3D" id="4"] +size = Vector3(100, 16, 2) -[node name="BasicMap" type="Spatial"] +[node name="BasicMap" type="Node3D"] -[node name="DirectionalLight" type="DirectionalLight" parent="."] -transform = Transform( 0.866025, -0.321394, 0.383022, 0, 0.766044, 0.642788, -0.5, -0.55667, 0.663414, 0, 5, 0 ) +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.866025, -0.321394, 0.383022, 0, 0.766044, 0.642788, -0.5, -0.55667, 0.663414, 0, 5, 0) light_energy = 0.8 -[node name="Ground" type="StaticBody" parent="."] +[node name="Ground" type="StaticBody3D" parent="."] -[node name="MeshInstance" type="MeshInstance" parent="Ground"] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 ) -mesh = SubResource( 7 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Ground"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0) +mesh = SubResource("7") +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="Ground"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0 ) -shape = SubResource( 6 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) +shape = SubResource("6") -[node name="Wall1" type="StaticBody" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -48 ) +[node name="Wall1" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -48) -[node name="MeshInstance" type="MeshInstance" parent="Wall1"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0 ) -mesh = SubResource( 8 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Wall1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0) +mesh = SubResource("8") skeleton = NodePath("../..") -material/0 = ExtResource( 2 ) +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="Wall1"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1 ) -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Wall1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1) +shape = SubResource("4") -[node name="Wall2" type="StaticBody" parent="."] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 48, 0, 0 ) +[node name="Wall2" type="StaticBody3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 48, 0, 0) -[node name="MeshInstance" type="MeshInstance" parent="Wall2"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0 ) -mesh = SubResource( 8 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Wall2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0) +mesh = SubResource("8") skeleton = NodePath("../..") -material/0 = ExtResource( 2 ) +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="Wall2"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1 ) -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Wall2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1) +shape = SubResource("4") -[node name="Wall3" type="StaticBody" parent="."] -transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 48 ) +[node name="Wall3" type="StaticBody3D" parent="."] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 48) -[node name="MeshInstance" type="MeshInstance" parent="Wall3"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0 ) -mesh = SubResource( 8 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Wall3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0) +mesh = SubResource("8") skeleton = NodePath("../..") -material/0 = ExtResource( 2 ) +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="Wall3"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1 ) -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Wall3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1) +shape = SubResource("4") -[node name="Wall4" type="StaticBody" parent="."] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -48, 0, 0 ) +[node name="Wall4" type="StaticBody3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -48, 0, 0) -[node name="MeshInstance" type="MeshInstance" parent="Wall4"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0 ) -mesh = SubResource( 8 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Wall4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 0) +mesh = SubResource("8") skeleton = NodePath("../..") -material/0 = ExtResource( 2 ) +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="Wall4"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1 ) -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Wall4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -1) +shape = SubResource("4") diff --git a/assets/meshes/interactables/joystick_smooth.tscn b/assets/meshes/interactables/joystick_smooth.tscn index c9ab533f..ed3aa613 100644 --- a/assets/meshes/interactables/joystick_smooth.tscn +++ b/assets/meshes/interactables/joystick_smooth.tscn @@ -1,90 +1,90 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=15 format=3 uid="uid://bvgjfffe0w2uu"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_7eu3q"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_w0c7s"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_cvp1w"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.1, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.2, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.2, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.2, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[node name="JoystickSmooth" type="Spatial"] +[node name="JoystickSmooth" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="JoystickOrigin" type="Spatial" parent="."] -transform = Transform( 1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0 ) +[node name="JoystickOrigin" type="Node3D" parent="."] +transform = Transform3D(1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="InteractableJoystick" type="Spatial" parent="JoystickOrigin"] -script = ExtResource( 2 ) +[node name="InteractableJoystick" type="Node3D" parent="JoystickOrigin"] +script = ExtResource("2") -[node name="JoystickBody" type="StaticBody" parent="JoystickOrigin/InteractableJoystick"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="JoystickBody" type="StaticBody3D" parent="JoystickOrigin/InteractableJoystick"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="JoystickOrigin/InteractableJoystick"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="JoystickOrigin/InteractableJoystick"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="JoystickOrigin/InteractableJoystick/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle" instance=ExtResource("5_7eu3q")] +left_pose = ExtResource("6_w0c7s") +right_pose = ExtResource("7_cvp1w") -[node name="CollisionShape" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("7") diff --git a/assets/meshes/interactables/joystick_snap.tscn b/assets/meshes/interactables/joystick_snap.tscn index 6d144a3e..357d0a7f 100644 --- a/assets/meshes/interactables/joystick_snap.tscn +++ b/assets/meshes/interactables/joystick_snap.tscn @@ -1,96 +1,96 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=16 format=3 uid="uid://bnckmqfewiysy"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_64ana"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_k7hp2"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_5j7kl"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.1, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.2, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.2, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.2, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="SphereShape3D_cq6vf"] margin = 0.12 radius = 0.06 -[node name="JoystickSnap" type="Spatial"] +[node name="JoystickSnap" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="JoystickOrigin" type="Spatial" parent="."] -transform = Transform( 1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0 ) +[node name="JoystickOrigin" type="Node3D" parent="."] +transform = Transform3D(1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="InteractableJoystick" type="Spatial" parent="JoystickOrigin"] -script = ExtResource( 2 ) +[node name="InteractableJoystick" type="Node3D" parent="JoystickOrigin"] +script = ExtResource("2") joystick_x_steps = 5.0 joystick_y_steps = 5.0 -[node name="JoystickBody" type="StaticBody" parent="JoystickOrigin/InteractableJoystick"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="JoystickBody" type="StaticBody3D" parent="JoystickOrigin/InteractableJoystick"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="JoystickOrigin/InteractableJoystick"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="JoystickOrigin/InteractableJoystick"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="JoystickOrigin/InteractableJoystick/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle" instance=ExtResource("5_64ana")] +left_pose = ExtResource("6_k7hp2") +right_pose = ExtResource("7_5j7kl") -[node name="CollisionShape" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("SphereShape3D_cq6vf") diff --git a/assets/meshes/interactables/joystick_zero.tscn b/assets/meshes/interactables/joystick_zero.tscn index 796ecf87..a193f288 100644 --- a/assets/meshes/interactables/joystick_zero.tscn +++ b/assets/meshes/interactables/joystick_zero.tscn @@ -1,95 +1,95 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=16 format=3 uid="uid://dtrftty6i383g"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_mkqe2"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_ywek1"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_t3wx4"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.1, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.2, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.2, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.2, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="SphereShape3D_hi87f"] margin = 0.12 radius = 0.06 -[node name="JoystickZero" type="Spatial"] +[node name="JoystickZero" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="JoystickOrigin" type="Spatial" parent="."] -transform = Transform( 1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0 ) +[node name="JoystickOrigin" type="Node3D" parent="."] +transform = Transform3D(1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="InteractableJoystick" type="Spatial" parent="JoystickOrigin"] -script = ExtResource( 2 ) +[node name="InteractableJoystick" type="Node3D" parent="JoystickOrigin"] +script = ExtResource("2") default_on_release = true -[node name="JoystickBody" type="StaticBody" parent="JoystickOrigin/InteractableJoystick"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="JoystickBody" type="StaticBody3D" parent="JoystickOrigin/InteractableJoystick"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="JoystickOrigin/InteractableJoystick/JoystickBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="JoystickOrigin/InteractableJoystick"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="JoystickOrigin/InteractableJoystick"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="JoystickOrigin/InteractableJoystick/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle" instance=ExtResource("5_mkqe2")] +left_pose = ExtResource("6_ywek1") +right_pose = ExtResource("7_t3wx4") -[node name="CollisionShape" type="CollisionShape" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="JoystickOrigin/InteractableJoystick/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("SphereShape3D_hi87f") diff --git a/assets/meshes/interactables/lever_smooth.tscn b/assets/meshes/interactables/lever_smooth.tscn index c868d24e..b0d764be 100644 --- a/assets/meshes/interactables/lever_smooth.tscn +++ b/assets/meshes/interactables/lever_smooth.tscn @@ -1,94 +1,90 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=15 format=3 uid="uid://cs6dxfu5owcgo"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_tuhw3"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_rulf8"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_ue4vl"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.3, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.6, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] -margin = 0.12 -radius = 0.06 - -[node name="LeverSmooth" type="Spatial"] +[node name="LeverSmooth" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="LeverOrigin" type="Spatial" parent="."] -transform = Transform( 1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0 ) +[node name="LeverOrigin" type="Node3D" parent="."] +transform = Transform3D(1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="InteractableLever" type="Spatial" parent="LeverOrigin"] -script = ExtResource( 2 ) +[node name="InteractableLever" type="Node3D" parent="LeverOrigin"] +script = ExtResource("2") -[node name="HingeBody" type="StaticBody" parent="LeverOrigin/InteractableLever"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="HingeBody" type="StaticBody3D" parent="LeverOrigin/InteractableLever"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="LeverOrigin/InteractableLever/HingeBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HingeBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="LeverOrigin/InteractableLever/HingeBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HingeBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="LeverOrigin/InteractableLever/HingeBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="LeverOrigin/InteractableLever/HingeBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="LeverOrigin/InteractableLever/HingeBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="LeverOrigin/InteractableLever/HingeBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="LeverOrigin/InteractableLever"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="LeverOrigin/InteractableLever"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="LeverOrigin/InteractableLever/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="LeverOrigin/InteractableLever/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle" instance=ExtResource("5_tuhw3")] +left_pose = ExtResource("6_rulf8") +right_pose = ExtResource("7_ue4vl") -[node name="CollisionShape" type="CollisionShape" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("7") diff --git a/assets/meshes/interactables/lever_snap.tscn b/assets/meshes/interactables/lever_snap.tscn index 7edaa607..d0528ae3 100644 --- a/assets/meshes/interactables/lever_snap.tscn +++ b/assets/meshes/interactables/lever_snap.tscn @@ -1,95 +1,95 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=16 format=3 uid="uid://dxgv8axd355m7"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_wptrs"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_k8n68"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_r4cxy"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.3, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.6, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="SphereShape3D_2c34s"] margin = 0.12 radius = 0.06 -[node name="LeverSnap" type="Spatial"] +[node name="LeverSnap" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="LeverOrigin" type="Spatial" parent="."] -transform = Transform( 1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0 ) +[node name="LeverOrigin" type="Node3D" parent="."] +transform = Transform3D(1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="InteractableLever" type="Spatial" parent="LeverOrigin"] -script = ExtResource( 2 ) +[node name="InteractableLever" type="Node3D" parent="LeverOrigin"] +script = ExtResource("2") hinge_steps = 5.0 -[node name="HingeBody" type="StaticBody" parent="LeverOrigin/InteractableLever"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="HingeBody" type="StaticBody3D" parent="LeverOrigin/InteractableLever"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="LeverOrigin/InteractableLever/HingeBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HingeBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="LeverOrigin/InteractableLever/HingeBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HingeBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="LeverOrigin/InteractableLever/HingeBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="LeverOrigin/InteractableLever/HingeBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="LeverOrigin/InteractableLever/HingeBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="LeverOrigin/InteractableLever/HingeBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="LeverOrigin/InteractableLever"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="LeverOrigin/InteractableLever"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="LeverOrigin/InteractableLever/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="LeverOrigin/InteractableLever/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle" instance=ExtResource("5_wptrs")] +left_pose = ExtResource("6_k8n68") +right_pose = ExtResource("7_r4cxy") -[node name="CollisionShape" type="CollisionShape" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("SphereShape3D_2c34s") diff --git a/assets/meshes/interactables/lever_zero.tscn b/assets/meshes/interactables/lever_zero.tscn index f27c6351..bde53f51 100644 --- a/assets/meshes/interactables/lever_zero.tscn +++ b/assets/meshes/interactables/lever_zero.tscn @@ -1,95 +1,95 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=16 format=3 uid="uid://cll4pk3kuuq1"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_rm136"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_41y4y"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_nrov4"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.3, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.6, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="SphereShape3D_ak455"] margin = 0.12 radius = 0.06 -[node name="LeverZero" type="Spatial"] +[node name="LeverZero" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="LeverOrigin" type="Spatial" parent="."] -transform = Transform( 1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0 ) +[node name="LeverOrigin" type="Node3D" parent="."] +transform = Transform3D(1, -1.06581e-14, 0, 1.06581e-14, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="InteractableLever" type="Spatial" parent="LeverOrigin"] -script = ExtResource( 2 ) +[node name="InteractableLever" type="Node3D" parent="LeverOrigin"] +script = ExtResource("2") default_on_release = true -[node name="HingeBody" type="StaticBody" parent="LeverOrigin/InteractableLever"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="HingeBody" type="StaticBody3D" parent="LeverOrigin/InteractableLever"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="LeverOrigin/InteractableLever/HingeBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HingeBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="LeverOrigin/InteractableLever/HingeBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HingeBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="LeverOrigin/InteractableLever/HingeBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="LeverOrigin/InteractableLever/HingeBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="LeverOrigin/InteractableLever/HingeBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="LeverOrigin/InteractableLever/HingeBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="LeverOrigin/InteractableLever"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="LeverOrigin/InteractableLever"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="LeverOrigin/InteractableLever/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="LeverOrigin/InteractableLever/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle" instance=ExtResource("5_rm136")] +left_pose = ExtResource("6_41y4y") +right_pose = ExtResource("7_nrov4") -[node name="CollisionShape" type="CollisionShape" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="LeverOrigin/InteractableLever/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("SphereShape3D_ak455") diff --git a/assets/meshes/interactables/pose_grab_ball_left.tres b/assets/meshes/interactables/pose_grab_ball_left.tres index b7475a07..d962923f 100644 --- a/assets/meshes/interactables/pose_grab_ball_left.tres +++ b/assets/meshes/interactables/pose_grab_ball_left.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://c5nxxsga5kesd"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 3.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.anim" type="Animation" id=3] +[ext_resource type="Animation" uid="uid://dd67rufxwj2u" path="res://addons/godot-xr-tools/hands/animations/left/Grip 3.res" id="1_2tsp7"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_4yio3"] +[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="2_pmy7y"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 3 ) -closed_pose = ExtResource( 2 ) +script = ExtResource("1_4yio3") +open_pose = ExtResource("2_pmy7y") +closed_pose = ExtResource("1_2tsp7") diff --git a/assets/meshes/interactables/pose_grab_ball_right.tres b/assets/meshes/interactables/pose_grab_ball_right.tres index 67614c0b..a31c5d0c 100644 --- a/assets/meshes/interactables/pose_grab_ball_right.tres +++ b/assets/meshes/interactables/pose_grab_ball_right.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://dvvw0k7tqagx"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 3.anim" type="Animation" id=3] +[ext_resource type="Animation" uid="uid://rs7vpclot07o" path="res://addons/godot-xr-tools/hands/animations/right/Grip 3.res" id="1_8iu1g"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_u1f48"] +[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="2_qdi81"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 3 ) +script = ExtResource("1_u1f48") +open_pose = ExtResource("2_qdi81") +closed_pose = ExtResource("1_8iu1g") diff --git a/assets/meshes/interactables/pose_grab_wheel_left.tres b/assets/meshes/interactables/pose_grab_wheel_left.tres index f8c8a0ca..1a8b4fb9 100644 --- a/assets/meshes/interactables/pose_grab_wheel_left.tres +++ b/assets/meshes/interactables/pose_grab_wheel_left.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://bd1dxftyxdgup"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 2.anim" type="Animation" id=3] +[ext_resource type="Animation" uid="uid://di384xtde8ydf" path="res://addons/godot-xr-tools/hands/animations/left/Grip 2.res" id="1_rs51e"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_yqjd0"] +[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="2_ti24b"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 3 ) +script = ExtResource("1_yqjd0") +open_pose = ExtResource("2_ti24b") +closed_pose = ExtResource("1_rs51e") diff --git a/assets/meshes/interactables/pose_grab_wheel_right.tres b/assets/meshes/interactables/pose_grab_wheel_right.tres index cb9a64d9..4e01a259 100644 --- a/assets/meshes/interactables/pose_grab_wheel_right.tres +++ b/assets/meshes/interactables/pose_grab_wheel_right.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://dsiujx4dllwvd"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 2.anim" type="Animation" id=3] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_g47t4"] +[ext_resource type="Animation" uid="uid://r8hleealhrqt" path="res://addons/godot-xr-tools/hands/animations/right/Grip 2.res" id="1_iahbe"] +[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="2_ca3on"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 3 ) +script = ExtResource("1_g47t4") +open_pose = ExtResource("2_ca3on") +closed_pose = ExtResource("1_iahbe") diff --git a/assets/meshes/interactables/push_button.tscn b/assets/meshes/interactables/push_button.tscn index d79c887b..e3ca5ba2 100644 --- a/assets/meshes/interactables/push_button.tscn +++ b/assets/meshes/interactables/push_button.tscn @@ -1,78 +1,78 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://dbv1hvxufc1al"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_area_button.gd" type="Script" id=2] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" type="Resource" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" type="Resource" id=5] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_area_button.gd" id="2"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="3_2axcm"] +[ext_resource type="Resource" uid="uid://ciw0f7mg4ai0k" path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" id="4_sgcw0"] +[ext_resource type="Resource" uid="uid://bhvrpfo4ecbub" path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" id="5_g2ih4"] -[sub_resource type="CylinderShape" id=1] +[sub_resource type="CylinderShape3D" id="1"] height = 0.05 radius = 0.05 -[sub_resource type="CylinderMesh" id=2] +[sub_resource type="CylinderMesh" id="2"] top_radius = 0.05 bottom_radius = 0.05 height = 0.05 radial_segments = 16 rings = 0 -[sub_resource type="CylinderShape" id=3] +[sub_resource type="CylinderShape3D" id="3"] height = 0.04 radius = 0.04 -[sub_resource type="CylinderMesh" id=4] +[sub_resource type="CylinderMesh" id="4"] top_radius = 0.04 bottom_radius = 0.04 height = 0.04 radial_segments = 16 rings = 0 -[sub_resource type="SpatialMaterial" id=5] -albedo_color = Color( 1, 0, 0, 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8y3ah"] +albedo_color = Color(1, 0, 0, 1) -[sub_resource type="CylinderShape" id=6] +[sub_resource type="CylinderShape3D" id="6"] height = 0.05 radius = 0.04 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="SphereShape3D_lygiq"] radius = 0.05 -[node name="PushButton" type="Spatial"] +[node name="PushButton" type="Node3D"] -[node name="ButtonBase" type="StaticBody" parent="."] +[node name="ButtonBase" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="ButtonBase"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="ButtonBase"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="ButtonBase"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="ButtonBase"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="Button" type="StaticBody" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.03, 0 ) +[node name="Button" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.03, 0) -[node name="CollisionShape" type="CollisionShape" parent="Button"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Button"] +shape = SubResource("3") -[node name="MeshInstance" type="MeshInstance" parent="Button"] -mesh = SubResource( 4 ) -material/0 = SubResource( 5 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Button"] +mesh = SubResource("4") +surface_material_override/0 = SubResource("StandardMaterial3D_8y3ah") -[node name="InteractableAreaButton" type="Area" parent="."] +[node name="InteractableAreaButton" type="Area3D" parent="."] collision_layer = 0 collision_mask = 131072 -script = ExtResource( 2 ) +script = ExtResource("2") button = NodePath("../Button") -[node name="CollisionShape" type="CollisionShape" parent="InteractableAreaButton"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.025, 0 ) -shape = SubResource( 6 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="InteractableAreaButton"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.025, 0) +shape = SubResource("6") -[node name="HandPoseArea" parent="." instance=ExtResource( 3 )] -left_pose = ExtResource( 4 ) -right_pose = ExtResource( 5 ) +[node name="HandPoseArea" parent="." instance=ExtResource("3_2axcm")] +left_pose = ExtResource("4_sgcw0") +right_pose = ExtResource("5_g2ih4") -[node name="CollisionShape" type="CollisionShape" parent="HandPoseArea"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0246354, 0 ) -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HandPoseArea"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.025, 0) +shape = SubResource("SphereShape3D_lygiq") diff --git a/assets/meshes/interactables/slider_smooth.tscn b/assets/meshes/interactables/slider_smooth.tscn index 17eede6b..dc6d87fd 100644 --- a/assets/meshes/interactables/slider_smooth.tscn +++ b/assets/meshes/interactables/slider_smooth.tscn @@ -1,97 +1,93 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=15 format=3 uid="uid://cpwdvy41fqdua"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_8qwag"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_any72"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_xpnvq"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.3, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.6, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] -margin = 0.12 -radius = 0.06 - -[node name="SliderSmooth" type="Spatial"] +[node name="SliderSmooth" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="SliderOrigin" type="Spatial" parent="."] -transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, -0.2, 0 ) +[node name="SliderOrigin" type="Node3D" parent="."] +transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, -0.2, 0) -[node name="InteractableSlider" type="Spatial" parent="SliderOrigin"] -script = ExtResource( 2 ) +[node name="InteractableSlider" type="Node3D" parent="SliderOrigin"] +script = ExtResource("2") slider_limit_max = 0.4 slider_position = 0.2 default_position = 0.2 -[node name="SliderBody" type="StaticBody" parent="SliderOrigin/InteractableSlider"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="SliderBody" type="StaticBody3D" parent="SliderOrigin/InteractableSlider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="SliderOrigin/InteractableSlider/SliderBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="SliderOrigin/InteractableSlider/SliderBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="SliderOrigin/InteractableSlider/SliderBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="SliderOrigin/InteractableSlider/SliderBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="SliderOrigin/InteractableSlider"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="SliderOrigin/InteractableSlider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="SliderOrigin/InteractableSlider/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="SliderOrigin/InteractableSlider/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle" instance=ExtResource("5_8qwag")] +left_pose = ExtResource("6_any72") +right_pose = ExtResource("7_xpnvq") -[node name="CollisionShape" type="CollisionShape" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("7") diff --git a/assets/meshes/interactables/slider_snap.tscn b/assets/meshes/interactables/slider_snap.tscn index d9e4a629..67d3e1b6 100644 --- a/assets/meshes/interactables/slider_snap.tscn +++ b/assets/meshes/interactables/slider_snap.tscn @@ -1,98 +1,98 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=16 format=3 uid="uid://dukyhft262nrv"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_t8y5e"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_eeodv"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_6tlv7"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.3, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.6, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="SphereShape3D_b2cs2"] margin = 0.12 radius = 0.06 -[node name="SliderSnap" type="Spatial"] +[node name="SliderSnap" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="SliderOrigin" type="Spatial" parent="."] -transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, -0.2, 0 ) +[node name="SliderOrigin" type="Node3D" parent="."] +transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, -0.2, 0) -[node name="InteractableSlider" type="Spatial" parent="SliderOrigin"] -script = ExtResource( 2 ) +[node name="InteractableSlider" type="Node3D" parent="SliderOrigin"] +script = ExtResource("2") slider_limit_max = 0.4 slider_steps = 0.1 slider_position = 0.2 default_position = 0.2 -[node name="SliderBody" type="StaticBody" parent="SliderOrigin/InteractableSlider"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="SliderBody" type="StaticBody3D" parent="SliderOrigin/InteractableSlider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="SliderOrigin/InteractableSlider/SliderBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="SliderOrigin/InteractableSlider/SliderBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="SliderOrigin/InteractableSlider/SliderBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="SliderOrigin/InteractableSlider/SliderBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="SliderOrigin/InteractableSlider"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="SliderOrigin/InteractableSlider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="SliderOrigin/InteractableSlider/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="SliderOrigin/InteractableSlider/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle" instance=ExtResource("5_t8y5e")] +left_pose = ExtResource("6_eeodv") +right_pose = ExtResource("7_6tlv7") -[node name="CollisionShape" type="CollisionShape" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("SphereShape3D_b2cs2") diff --git a/assets/meshes/interactables/slider_zero.tscn b/assets/meshes/interactables/slider_zero.tscn index b4b499ce..b39b0bd2 100644 --- a/assets/meshes/interactables/slider_zero.tscn +++ b/assets/meshes/interactables/slider_zero.tscn @@ -1,98 +1,98 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=16 format=3 uid="uid://hv8nnbkuccxi"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" type="Script" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_left.tres" type="Resource" id=6] -[ext_resource path="res://assets/meshes/interactables/pose_grab_ball_right.tres" type="Resource" id=7] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_slider.gd" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="4"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_ec2uv"] +[ext_resource type="Resource" uid="uid://c5nxxsga5kesd" path="res://assets/meshes/interactables/pose_grab_ball_left.tres" id="6_bqubh"] +[ext_resource type="Resource" uid="uid://dvvw0k7tqagx" path="res://assets/meshes/interactables/pose_grab_ball_right.tres" id="7_dmlvy"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.1, 0.3, 0.05 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.2, 0.6, 0.1 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(0.2, 0.6, 0.1) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.02, 0.02, 0.1 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereShape" id=4] +[sub_resource type="SphereShape3D" id="4"] radius = 0.06 -[sub_resource type="CubeMesh" id=5] -size = Vector3( 0.04, 0.04, 0.2 ) +[sub_resource type="BoxMesh" id="5"] +size = Vector3(0.04, 0.04, 0.2) -[sub_resource type="SphereMesh" id=6] +[sub_resource type="SphereMesh" id="6"] radius = 0.06 height = 0.12 radial_segments = 16 rings = 8 -[sub_resource type="SphereShape" id=7] +[sub_resource type="SphereShape3D" id="7"] margin = 0.12 radius = 0.06 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="SphereShape3D_tg476"] margin = 0.12 radius = 0.06 -[node name="SliderZero" type="Spatial"] +[node name="SliderZero" type="Node3D"] -[node name="Frame" type="StaticBody" parent="."] +[node name="Frame" type="StaticBody3D" parent="."] -[node name="CollisionShape" type="CollisionShape" parent="Frame"] -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame"] +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="Frame"] -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame"] +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="SliderOrigin" type="Spatial" parent="."] -transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, -0.2, 0 ) +[node name="SliderOrigin" type="Node3D" parent="."] +transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, -0.2, 0) -[node name="InteractableSlider" type="Spatial" parent="SliderOrigin"] -script = ExtResource( 2 ) +[node name="InteractableSlider" type="Node3D" parent="SliderOrigin"] +script = ExtResource("2") slider_limit_max = 0.4 slider_position = 0.2 default_position = 0.2 default_on_release = true -[node name="SliderBody" type="StaticBody" parent="SliderOrigin/InteractableSlider"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) +[node name="SliderBody" type="StaticBody3D" parent="SliderOrigin/InteractableSlider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) -[node name="BarCollision" type="CollisionShape" parent="SliderOrigin/InteractableSlider/SliderBody"] -shape = SubResource( 3 ) +[node name="BarCollision" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +shape = SubResource("3") -[node name="HandleCollision" type="CollisionShape" parent="SliderOrigin/InteractableSlider/SliderBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -shape = SubResource( 4 ) +[node name="HandleCollision" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +shape = SubResource("4") -[node name="BarMesh" type="MeshInstance" parent="SliderOrigin/InteractableSlider/SliderBody"] -mesh = SubResource( 5 ) -material/0 = ExtResource( 3 ) +[node name="BarMesh" type="MeshInstance3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +mesh = SubResource("5") +surface_material_override/0 = ExtResource("3") -[node name="HandleMesh" type="MeshInstance" parent="SliderOrigin/InteractableSlider/SliderBody"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1 ) -mesh = SubResource( 6 ) -material/0 = ExtResource( 3 ) +[node name="HandleMesh" type="MeshInstance3D" parent="SliderOrigin/InteractableSlider/SliderBody"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +mesh = SubResource("6") +surface_material_override/0 = ExtResource("3") -[node name="HandleOrigin" type="Spatial" parent="SliderOrigin/InteractableSlider"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2 ) +[node name="HandleOrigin" type="Node3D" parent="SliderOrigin/InteractableSlider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="SliderOrigin/InteractableSlider/HandleOrigin"] +[node name="InteractableHandle" type="RigidBody3D" parent="SliderOrigin/InteractableSlider/HandleOrigin"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 4 ) +freeze = true +script = ExtResource("4") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle"] +shape = SubResource("7") -[node name="HandPoseArea" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle" instance=ExtResource( 5 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 7 ) +[node name="HandPoseArea" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle" instance=ExtResource("5_ec2uv")] +left_pose = ExtResource("6_bqubh") +right_pose = ExtResource("7_dmlvy") -[node name="CollisionShape" type="CollisionShape" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle/HandPoseArea"] -shape = SubResource( 8 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="SliderOrigin/InteractableSlider/HandleOrigin/InteractableHandle/HandPoseArea"] +shape = SubResource("SphereShape3D_tg476") diff --git a/assets/meshes/interactables/wheel_smooth.tscn b/assets/meshes/interactables/wheel_smooth.tscn index ec11de9c..729a1e24 100644 --- a/assets/meshes/interactables/wheel_smooth.tscn +++ b/assets/meshes/interactables/wheel_smooth.tscn @@ -1,159 +1,158 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=11 format=3 uid="uid://d2td5hwh2oluy"] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=1] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" type="Script" id=2] -[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=4] -[ext_resource path="res://assets/meshes/interactables/pose_grab_wheel_right.tres" type="Resource" id=5] -[ext_resource path="res://assets/meshes/interactables/pose_grab_wheel_left.tres" type="Resource" id=6] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="1"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" id="2"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_handle.gd" id="3"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="4_2vgo6"] +[ext_resource type="Resource" uid="uid://bd1dxftyxdgup" path="res://assets/meshes/interactables/pose_grab_wheel_left.tres" id="5_gt8jj"] +[ext_resource type="Resource" uid="uid://dsiujx4dllwvd" path="res://assets/meshes/interactables/pose_grab_wheel_right.tres" id="6_ss5gc"] -[sub_resource type="CylinderShape" id=1] +[sub_resource type="CylinderShape3D" id="1"] height = 0.02 radius = 0.2 -[sub_resource type="CylinderMesh" id=2] +[sub_resource type="CylinderMesh" id="2"] top_radius = 0.2 bottom_radius = 0.2 height = 0.02 radial_segments = 32 rings = 0 -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.01, 0.04, 0.05 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.02, 0.08, 0.1) -[sub_resource type="CylinderShape" id=4] +[sub_resource type="CylinderShape3D" id="CylinderShape3D_3cy60"] height = 0.04 radius = 0.22 -[node name="WheelSmooth" type="Spatial"] +[node name="WheelSmooth" type="Node3D"] -[node name="HingeOrigin" type="Spatial" parent="."] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0 ) +[node name="HingeOrigin" type="Node3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0) -[node name="InteractableHinge" type="Spatial" parent="HingeOrigin"] -script = ExtResource( 2 ) +[node name="InteractableHinge" type="Node3D" parent="HingeOrigin"] +script = ExtResource("2") hinge_limit_min = -360.0 hinge_limit_max = 360.0 -[node name="WheelBody" type="StaticBody" parent="HingeOrigin/InteractableHinge"] +[node name="WheelBody" type="StaticBody3D" parent="HingeOrigin/InteractableHinge"] -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/WheelBody"] -transform = Transform( -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0 ) -shape = SubResource( 1 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/WheelBody"] +transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0) +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="HingeOrigin/InteractableHinge/WheelBody"] -transform = Transform( -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="HingeOrigin/InteractableHinge/WheelBody"] +transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") -[node name="Handle1" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0 ) +[node name="Handle1" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle1"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle1"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle1/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle1/InteractableHandle"] +shape = SubResource("3") -[node name="Handle2" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0.141, -0.141 ) +[node name="Handle2" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0.141, -0.141) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle2"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle2"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) -picked_up_layer = 0 +freeze = true +script = ExtResource("3") -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle2/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle2/InteractableHandle"] +shape = SubResource("3") -[node name="Handle3" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -0.2 ) +[node name="Handle3" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -0.2) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle3"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle3"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle3/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle3/InteractableHandle"] +shape = SubResource("3") -[node name="Handle4" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, -0.707107, 0.707107, 0, -0.707107, -0.707107, 0, -0.141, -0.141 ) +[node name="Handle4" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, -0.707107, 0.707107, 0, -0.707107, -0.707107, 0, -0.141, -0.141) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle4"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle4"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle4/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle4/InteractableHandle"] +shape = SubResource("3") -[node name="Handle5" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, -0.2, 0 ) +[node name="Handle5" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, -0.2, 0) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle5"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle5"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle5/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle5/InteractableHandle"] +shape = SubResource("3") -[node name="Handle6" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, -0.707107, -0.707107, 0, 0.707107, -0.707107, 0, -0.141, 0.141 ) +[node name="Handle6" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, -0.707107, -0.707107, 0, 0.707107, -0.707107, 0, -0.141, 0.141) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle6"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle6"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle6/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle6/InteractableHandle"] +shape = SubResource("3") -[node name="Handle7" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, 1.19249e-08, -1, 0, 1, 1.19249e-08, 0, 0, 0.2 ) +[node name="Handle7" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, 1.19249e-08, -1, 0, 1, 1.19249e-08, 0, 0, 0.2) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle7"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle7"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle7/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle7/InteractableHandle"] +shape = SubResource("3") -[node name="Handle8" type="Spatial" parent="HingeOrigin/InteractableHinge"] -transform = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0.141, 0.141 ) +[node name="Handle8" type="Node3D" parent="HingeOrigin/InteractableHinge"] +transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0.141, 0.141) -[node name="InteractableHandle" type="RigidBody" parent="HingeOrigin/InteractableHinge/Handle8"] +[node name="InteractableHandle" type="RigidBody3D" parent="HingeOrigin/InteractableHinge/Handle8"] collision_layer = 262144 collision_mask = 0 -mode = 1 -script = ExtResource( 3 ) +freeze = true +script = ExtResource("3") picked_up_layer = 0 -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/InteractableHinge/Handle8/InteractableHandle"] -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/InteractableHinge/Handle8/InteractableHandle"] +shape = SubResource("3") -[node name="HandPoseArea" parent="HingeOrigin" instance=ExtResource( 4 )] -left_pose = ExtResource( 6 ) -right_pose = ExtResource( 5 ) +[node name="HandPoseArea" parent="HingeOrigin" instance=ExtResource("4_2vgo6")] +left_pose = ExtResource("5_gt8jj") +right_pose = ExtResource("6_ss5gc") -[node name="CollisionShape" type="CollisionShape" parent="HingeOrigin/HandPoseArea"] -transform = Transform( -4.37114e-08, 1, 4.37114e-08, -1, -4.37114e-08, 4.37114e-08, 4.37114e-08, -4.37114e-08, 1, 0, 0, 0 ) -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="HingeOrigin/HandPoseArea"] +transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0) +shape = SubResource("CylinderShape3D_3cy60") diff --git a/assets/meshes/mound/mound.glb.import b/assets/meshes/mound/mound.glb.import index 362a5f4b..f804d27a 100644 --- a/assets/meshes/mound/mound.glb.import +++ b/assets/meshes/mound/mound.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/mound.glb-8c6a3be1c57dd40494eb20805b8e12b9.scn" +uid="uid://b40l7e73lfwkf" +path="res://.godot/imported/mound.glb-8c6a3be1c57dd40494eb20805b8e12b9.scn" [deps] source_file="res://assets/meshes/mound/mound.glb" -dest_files=[ "res://.import/mound.glb-8c6a3be1c57dd40494eb20805b8e12b9.scn" ] +dest_files=["res://.godot/imported/mound.glb-8c6a3be1c57dd40494eb20805b8e12b9.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/mound/mound.tscn b/assets/meshes/mound/mound.tscn index 4c9f3467..56e4e187 100644 --- a/assets/meshes/mound/mound.tscn +++ b/assets/meshes/mound/mound.tscn @@ -1,32 +1,52 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=7 format=3 uid="uid://dpjfart2qg8k7"] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid.png" type="Texture" id=1] +[ext_resource type="Texture2D" uid="uid://bskwc0drdadnd" path="res://assets/wahooney.itch.io/brown_grid.png" id="1"] -[sub_resource type="ConvexPolygonShape" id=3] -points = PoolVector3Array( 2.5, 0, -0.00146341, 2.41435, 0.647024, -0.00146341, 2.41435, 0.595634, 1.0434, 2.49315, 0, 0.984865, 2.49315, 0, -0.986329, 2.41435, 0.595634, -1.04486, 2.16474, 1.25, -0.00146341, 2.16474, 1.19567, 1.10194, 2.41435, 0.442443, 2.07656, 2.47406, 0, 1.98876, 2.47406, 0, -1.99022, 2.41435, 0.442443, -2.07802, 2.16474, 1.19567, -1.1034, 1.76732, 1.76757, -0.00146341, 1.76732, 1.71104, 1.15316, 1.76732, 1.71104, -1.15462, 2.16474, 1.03367, 2.19363, 2.16474, 0.765466, 3.26484, 2.41435, 0.18843, 3.08923, 2.44029, 0, 3.03216, 2.44029, 0, -3.03362, 2.41435, 0.18843, -3.09069, 2.16474, 0.765466, -3.2663, 2.16474, 1.03367, -2.19509, 1.25, 2.16499, -0.00146341, 1.25, 2.10625, 1.1912, 1.25, 1.93128, 2.37216, 1.76732, 1.54145, 2.29461, 1.76732, 1.54145, -2.29607, 1.25, 1.93128, -2.37363, 1.25, 2.10625, -1.19267, 1.76732, 1.26101, 3.41557, 1.76732, 0.871917, 4.50287, 2.16474, 0.3935, 4.30385, 2.34142, 0, 4.14141, 2.41435, 0, 3.61751, 2.41435, 0, -3.61898, 1.76732, 1.26101, -3.41703, 2.34142, 0, -4.14287, 2.16474, 0.3935, -4.30531, 1.76732, 0.871917, -4.50433, 0.647023, 2.35488, -1.21755, 0.647023, 2.41459, -0.00146341, 0.647023, 2.35488, 1.21608, 0.647023, 2.17624, 2.42192, 1.25, 1.64105, 3.53117, 1.25, 1.64105, -3.53264, 0.647023, 2.17624, -2.42338, 1.25, 1.23899, 4.65506, 1.76732, 0.378083, 5.54627, 2.09671, 0, 5.34432, 2.16474, 0, 5.13652, 1.25, 1.23899, -4.65653, 2.16474, 0, -5.13798, 2.09671, 0, -5.34579, 1.76732, 0.378083, -5.54773, -9.53674e-07, 2.4398, -1.22633, -9.53674e-07, 2.5, -0.00146341, -9.53674e-07, 2.4398, 1.22486, -9.53674e-07, 2.25969, 2.43802, -9.53674e-07, 1.96163, 3.62776, 0.647023, 1.88014, 3.60288, 0.647023, 1.46975, 4.75018, 0.647023, 1.46975, -4.75165, 0.647023, 1.88014, -3.60434, -9.53674e-07, 1.96163, -3.62922, -9.53674e-07, 2.25969, -2.43948, 0.647023, 0.948757, 5.85212, 1.25, 0.728514, 5.73359, 1.25, 0.114771, 6.75796, 1.76732, 0, 6.17699, 1.25, 0.728514, -5.73505, 0.647023, 0.948757, -5.85358, 1.76732, 0, -6.17846, 1.25, 0.114771, -6.75943, -0.647515, 2.17624, -2.42338, -0.647515, 2.35488, -1.21755, -0.647515, 2.35488, 1.21608, -0.647515, 2.41459, -0.00146341, -0.647515, 2.17624, 2.42192, -0.647515, 1.88014, 3.60288, -0.647515, 1.46975, 4.75018, -9.53674e-07, 1.54831, 4.78238, -9.53674e-07, 1.02388, 5.89163, -9.53674e-07, 1.54831, -4.78384, -9.53674e-07, 1.02388, -5.8931, -0.647515, 1.88014, -3.60434, -0.647515, 1.46975, -4.75165, 0.647023, 0.322533, 6.89699, 1.42962, 0, 6.6804, 1.25, 0, 6.91308, 0.647023, 0.322533, -6.89845, 1.42962, 0, -6.68187, 1.25, 0, -6.91455, -1.25, 1.93128, -2.37363, -1.25, 2.10625, -1.19267, -1.25, 1.64105, -3.53264, -1.25, 2.16499, -0.00146341, -1.25, 2.10625, 1.1912, -1.25, 1.93128, 2.37216, -1.25, 1.64105, 3.53117, -1.25, 1.23899, 4.65506, -0.647515, 0.948757, 5.85212, -0.647515, 0.322533, 6.89699, -9.53674e-07, 0.393256, 6.94381, -9.53674e-07, 0.393256, -6.94528, -0.647515, 0.322533, -6.89845, -0.647515, 0.948757, -5.85358, -1.25, 1.23899, -4.65653, -9.53674e-07, 0, 7.47503, 0.647023, 0, 7.33161, 0.647023, 0, -7.33308, -1.76782, 1.26101, -3.41703, -1.76782, 1.54145, -2.29607, -1.76782, 1.71104, -1.15462, -1.76782, 1.76757, -0.00146341, -1.76782, 1.71104, 1.15316, -1.76782, 1.54145, 2.29461, -1.76782, 1.26101, 3.41557, -1.76782, 0.871917, 4.50287, -1.76782, 0.378083, 5.54627, -1.25, 0.728514, 5.73359, -1.25, 0.114771, 6.75796, -1.25, 0, 6.91308, -0.647515, 0, 7.33161, -9.53674e-07, 0, -7.47503, -0.647515, 0, -7.33308, -1.25, 0, -6.91455, -1.25, 0.114771, -6.75943, -1.25, 0.728514, -5.73505, -1.76782, 0.871917, -4.50433, -1.76782, 0.378083, -5.54773, -2.16523, 0.765466, -3.2663, -2.16523, 1.03367, -2.19509, -2.16523, 1.19567, -1.1034, -2.16523, 1.25, -0.00146341, -2.16523, 1.19567, 1.10194, -2.16523, 1.03367, 2.19363, -2.16523, 0.765466, 3.26484, -2.16523, 0.3935, 4.30385, -2.0972, 0, 5.34432, -1.76782, 0, 6.17699, -1.43011, 0, 6.6804, -1.43011, 0, -6.68187, -1.76782, 0, -6.17846, -2.0972, 0, -5.34579, -2.16523, 0.3935, -4.30531, -2.41484, 0.18843, -3.09069, -2.41484, 0.442443, -2.07802, -2.34192, 0, -4.14287, -2.41484, 0, -3.61898, -2.41484, 0.595634, -1.04486, -2.41484, 0.647024, -0.00146341, -2.41484, 0.595634, 1.0434, -2.41484, 0.442443, 2.07656, -2.41484, 0.18843, 3.08923, -2.41484, 0, 3.61751, -2.34192, 0, 4.14141, -2.16523, 0, 5.13652, -2.16523, 0, -5.13798, -2.44078, 0, -3.03362, -2.47455, 0, -1.99022, -2.49364, 0, -0.986329, -2.5, 0, -0.00146341, -2.49364, 0, 0.984865, -2.47455, 0, 1.98876, -2.44078, 0, 3.03216 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_3sfqa"] +points = PackedVector3Array(2.5, 0, -0.00146341, 2.41435, 0.647024, -0.00146341, 2.41435, 0.595634, 1.0434, 2.49315, 0, 0.984865, 2.49315, 0, -0.986329, 2.41435, 0.595634, -1.04486, 2.16474, 1.25, -0.00146341, 2.16474, 1.19567, 1.10194, 2.41435, 0.442443, 2.07656, 2.47406, 0, 1.98876, 2.47406, 0, -1.99022, 2.41435, 0.442443, -2.07802, 2.16474, 1.19567, -1.1034, 1.76732, 1.71104, -1.15462, 1.76732, 1.76757, -0.00146341, 1.76732, 1.71104, 1.15316, 2.16474, 1.03367, 2.19363, 2.16474, 0.765466, 3.26484, 2.41435, 0.18843, 3.08923, 2.44029, 0, 3.03216, 2.44029, 0, -3.03362, 2.41435, 0.18843, -3.09069, 2.16474, 0.765466, -3.2663, 2.16474, 1.03367, -2.19509, 1.76732, 1.54145, -2.29607, 1.25, 1.93128, -2.37363, 1.25, 2.10625, -1.19267, 1.25, 2.16499, -0.00146341, 1.25, 2.10625, 1.1912, 1.25, 1.93128, 2.37216, 1.76732, 1.54145, 2.29461, 1.76732, 1.26101, 3.41557, 1.76732, 0.871917, 4.50287, 2.16474, 0.3935, 4.30385, 2.34142, 0, 4.14141, 2.41435, 0, 3.61751, 2.41435, 0, -3.61898, 1.76732, 1.26101, -3.41703, 2.34142, 0, -4.14287, 2.16474, 0.3935, -4.30531, 1.76732, 0.871917, -4.50433, 1.25, 1.64105, -3.53264, 0.647023, 2.17624, -2.42338, 0.647023, 2.35488, -1.21755, 0.647023, 2.41459, -0.00146341, 0.647023, 2.35488, 1.21608, 0.647023, 2.17624, 2.42192, 1.25, 1.64105, 3.53117, 1.25, 1.23899, 4.65506, 1.76732, 0.378083, 5.54627, 2.09671, 0, 5.34432, 2.16474, 0, 5.13652, 1.25, 1.23899, -4.65653, 2.16474, 0, -5.13798, 2.09671, 0, -5.34579, 1.76732, 0.378083, -5.54773, 0.647023, 1.46975, -4.75165, 0.647023, 1.88014, -3.60434, -9.53674e-07, 2.25969, -2.43948, -9.53674e-07, 2.4398, -1.22633, -9.53674e-07, 1.96163, -3.62922, -9.53674e-07, 2.5, -0.00146341, -9.53674e-07, 2.4398, 1.22486, -9.53674e-07, 2.25969, 2.43802, -9.53674e-07, 1.96163, 3.62776, 0.647023, 1.88014, 3.60288, 0.647023, 1.46975, 4.75018, 0.647023, 0.948757, 5.85212, 1.25, 0.728514, 5.73359, 1.25, 0.114771, 6.75796, 1.76732, 0, 6.17699, 1.25, 0.728514, -5.73505, 0.647023, 0.948757, -5.85358, 1.76732, 0, -6.17846, 1.25, 0.114771, -6.75943, -9.53674e-07, 1.54831, -4.78384, -9.53674e-07, 1.02388, -5.8931, -0.647515, 2.17624, -2.42338, -0.647515, 2.35488, -1.21755, -0.647515, 1.88014, -3.60434, -0.647515, 1.46975, -4.75165, -0.647515, 2.41459, -0.00146341, -0.647515, 2.35488, 1.21608, -0.647515, 2.17624, 2.42192, -0.647515, 1.88014, 3.60288, -0.647515, 1.46975, 4.75018, -9.53674e-07, 1.54831, 4.78238, -9.53674e-07, 1.02388, 5.89163, 0.647023, 0.322533, 6.89699, 1.42962, 0, 6.6804, 1.25, 0, 6.91308, 0.647023, 0.322533, -6.89845, 1.42962, 0, -6.68187, 1.25, 0, -6.91455, -9.53674e-07, 0.393256, -6.94528, -0.647515, 0.322533, -6.89845, -0.647515, 0.948757, -5.85358, -1.25, 1.93128, -2.37363, -1.25, 2.10625, -1.19267, -1.25, 1.64105, -3.53264, -1.25, 2.16499, -0.00146341, -1.25, 1.23899, -4.65653, -1.25, 2.10625, 1.1912, -1.25, 1.93128, 2.37216, -1.25, 1.64105, 3.53117, -1.25, 1.23899, 4.65506, -0.647515, 0.948757, 5.85212, -0.647515, 0.322533, 6.89699, -9.53674e-07, 0.393256, 6.94381, -9.53674e-07, 0, 7.47503, 0.647023, 0, 7.33161, 0.647023, 0, -7.33308, -9.53674e-07, 0, -7.47503, -0.647515, 0, -7.33308, -1.25, 0, -6.91455, -1.25, 0.114771, -6.75943, -1.25, 0.728514, -5.73505, -1.76782, 1.26101, -3.41703, -1.76782, 1.54145, -2.29607, -1.76782, 1.71104, -1.15462, -1.76782, 1.76757, -0.00146341, -1.76782, 1.71104, 1.15316, -1.76782, 0.378083, -5.54773, -1.76782, 0.871917, -4.50433, -1.76782, 1.54145, 2.29461, -1.76782, 1.26101, 3.41557, -1.76782, 0.871917, 4.50287, -1.76782, 0.378083, 5.54627, -1.25, 0.728514, 5.73359, -1.25, 0.114771, 6.75796, -1.25, 0, 6.91308, -0.647515, 0, 7.33161, -1.43011, 0, -6.68187, -1.76782, 0, -6.17846, -2.16523, 0.765466, -3.2663, -2.16523, 1.03367, -2.19509, -2.16523, 1.19567, -1.1034, -2.16523, 1.25, -0.00146341, -2.16523, 1.19567, 1.10194, -2.16523, 1.03367, 2.19363, -2.0972, 0, -5.34579, -2.16523, 0.3935, -4.30531, -2.16523, 0.765466, 3.26484, -2.16523, 0.3935, 4.30385, -2.0972, 0, 5.34432, -1.76782, 0, 6.17699, -1.43011, 0, 6.6804, -2.41484, 0.18843, -3.09069, -2.41484, 0.442443, -2.07802, -2.34192, 0, -4.14287, -2.41484, 0, -3.61898, -2.41484, 0.595634, -1.04486, -2.41484, 0.647024, -0.00146341, -2.41484, 0.595634, 1.0434, -2.41484, 0.442443, 2.07656, -2.16523, 0, -5.13798, -2.41484, 0.18843, 3.08923, -2.41484, 0, 3.61751, -2.34192, 0, 4.14141, -2.16523, 0, 5.13652, -2.44078, 0, -3.03362, -2.47455, 0, -1.99022, -2.49364, 0, -0.986329, -2.5, 0, -0.00146341, -2.49364, 0, 0.984865, -2.47455, 0, 1.98876, -2.44078, 0, 3.03216) -[sub_resource type="ArrayMesh" id=2] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sgl8b"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_11324"] +_surfaces = [{ +"aabb": AABB(-2.5, 0, -7.47503, 5, 2.5, 14.9501), +"format": 4097, +"index_count": 852, +"index_data": PackedByteArray(121, 0, 1, 0, 0, 0, 121, 0, 122, 0, 1, 0, 122, 0, 2, 0, 1, 0, 122, 0, 123, 0, 2, 0, 123, 0, 124, 0, 2, 0, 125, 0, 126, 0, 3, 0, 126, 0, 4, 0, 3, 0, 126, 0, 127, 0, 4, 0, 127, 0, 0, 0, 4, 0, 127, 0, 121, 0, 0, 0, 0, 0, 6, 0, 5, 0, 0, 0, 1, 0, 6, 0, 1, 0, 7, 0, 6, 0, 1, 0, 2, 0, 7, 0, 128, 0, 2, 0, 124, 0, 2, 0, 8, 0, 7, 0, 2, 0, 128, 0, 8, 0, 128, 0, 129, 0, 8, 0, 130, 0, 131, 0, 9, 0, 125, 0, 9, 0, 131, 0, 9, 0, 3, 0, 10, 0, 9, 0, 125, 0, 3, 0, 3, 0, 11, 0, 10, 0, 3, 0, 4, 0, 11, 0, 4, 0, 5, 0, 11, 0, 4, 0, 0, 0, 5, 0, 5, 0, 13, 0, 12, 0, 5, 0, 6, 0, 13, 0, 6, 0, 14, 0, 13, 0, 6, 0, 7, 0, 14, 0, 7, 0, 15, 0, 14, 0, 7, 0, 8, 0, 15, 0, 132, 0, 8, 0, 129, 0, 8, 0, 16, 0, 15, 0, 8, 0, 132, 0, 16, 0, 132, 0, 133, 0, 16, 0, 134, 0, 135, 0, 17, 0, 17, 0, 9, 0, 18, 0, 9, 0, 135, 0, 130, 0, 9, 0, 17, 0, 135, 0, 9, 0, 19, 0, 18, 0, 9, 0, 10, 0, 19, 0, 10, 0, 20, 0, 19, 0, 10, 0, 11, 0, 20, 0, 11, 0, 12, 0, 20, 0, 11, 0, 5, 0, 12, 0, 12, 0, 22, 0, 21, 0, 12, 0, 13, 0, 22, 0, 13, 0, 23, 0, 22, 0, 13, 0, 14, 0, 23, 0, 14, 0, 24, 0, 23, 0, 14, 0, 15, 0, 24, 0, 15, 0, 25, 0, 24, 0, 15, 0, 16, 0, 25, 0, 136, 0, 16, 0, 133, 0, 16, 0, 26, 0, 25, 0, 16, 0, 136, 0, 26, 0, 136, 0, 137, 0, 26, 0, 138, 0, 139, 0, 27, 0, 27, 0, 17, 0, 28, 0, 17, 0, 139, 0, 134, 0, 17, 0, 27, 0, 139, 0, 17, 0, 29, 0, 28, 0, 17, 0, 18, 0, 29, 0, 18, 0, 30, 0, 29, 0, 18, 0, 19, 0, 30, 0, 19, 0, 31, 0, 30, 0, 19, 0, 20, 0, 31, 0, 20, 0, 21, 0, 31, 0, 20, 0, 12, 0, 21, 0, 21, 0, 33, 0, 32, 0, 21, 0, 22, 0, 33, 0, 22, 0, 34, 0, 33, 0, 22, 0, 23, 0, 34, 0, 23, 0, 35, 0, 34, 0, 23, 0, 24, 0, 35, 0, 24, 0, 36, 0, 35, 0, 24, 0, 25, 0, 36, 0, 25, 0, 37, 0, 36, 0, 25, 0, 26, 0, 37, 0, 137, 0, 37, 0, 26, 0, 137, 0, 140, 0, 37, 0, 38, 0, 138, 0, 27, 0, 38, 0, 141, 0, 138, 0, 27, 0, 39, 0, 38, 0, 27, 0, 28, 0, 39, 0, 28, 0, 40, 0, 39, 0, 28, 0, 29, 0, 40, 0, 29, 0, 41, 0, 40, 0, 29, 0, 30, 0, 41, 0, 30, 0, 42, 0, 41, 0, 30, 0, 31, 0, 42, 0, 31, 0, 32, 0, 42, 0, 31, 0, 21, 0, 32, 0, 32, 0, 44, 0, 43, 0, 32, 0, 33, 0, 44, 0, 33, 0, 45, 0, 44, 0, 33, 0, 34, 0, 45, 0, 34, 0, 46, 0, 45, 0, 34, 0, 35, 0, 46, 0, 35, 0, 47, 0, 46, 0, 35, 0, 36, 0, 47, 0, 36, 0, 48, 0, 47, 0, 36, 0, 37, 0, 48, 0, 140, 0, 48, 0, 37, 0, 140, 0, 142, 0, 48, 0, 143, 0, 38, 0, 49, 0, 143, 0, 141, 0, 38, 0, 38, 0, 50, 0, 49, 0, 38, 0, 39, 0, 50, 0, 39, 0, 51, 0, 50, 0, 39, 0, 40, 0, 51, 0, 40, 0, 52, 0, 51, 0, 40, 0, 41, 0, 52, 0, 41, 0, 53, 0, 52, 0, 41, 0, 42, 0, 53, 0, 42, 0, 43, 0, 53, 0, 42, 0, 32, 0, 43, 0, 43, 0, 55, 0, 54, 0, 43, 0, 44, 0, 55, 0, 44, 0, 56, 0, 55, 0, 44, 0, 45, 0, 56, 0, 45, 0, 57, 0, 56, 0, 45, 0, 46, 0, 57, 0, 46, 0, 58, 0, 57, 0, 46, 0, 47, 0, 58, 0, 47, 0, 59, 0, 58, 0, 47, 0, 48, 0, 59, 0, 142, 0, 59, 0, 48, 0, 142, 0, 60, 0, 59, 0, 62, 0, 143, 0, 49, 0, 62, 0, 61, 0, 143, 0, 49, 0, 63, 0, 62, 0, 49, 0, 50, 0, 63, 0, 50, 0, 64, 0, 63, 0, 50, 0, 51, 0, 64, 0, 51, 0, 65, 0, 64, 0, 51, 0, 52, 0, 65, 0, 52, 0, 66, 0, 65, 0, 52, 0, 53, 0, 66, 0, 53, 0, 54, 0, 66, 0, 53, 0, 43, 0, 54, 0, 54, 0, 68, 0, 67, 0, 54, 0, 55, 0, 68, 0, 55, 0, 69, 0, 68, 0, 55, 0, 56, 0, 69, 0, 56, 0, 70, 0, 69, 0, 56, 0, 57, 0, 70, 0, 57, 0, 71, 0, 70, 0, 57, 0, 58, 0, 71, 0, 58, 0, 72, 0, 71, 0, 58, 0, 59, 0, 72, 0, 60, 0, 72, 0, 59, 0, 60, 0, 144, 0, 72, 0, 73, 0, 61, 0, 62, 0, 73, 0, 145, 0, 61, 0, 62, 0, 74, 0, 73, 0, 62, 0, 63, 0, 74, 0, 63, 0, 75, 0, 74, 0, 63, 0, 64, 0, 75, 0, 64, 0, 76, 0, 75, 0, 64, 0, 65, 0, 76, 0, 65, 0, 77, 0, 76, 0, 65, 0, 66, 0, 77, 0, 66, 0, 67, 0, 77, 0, 66, 0, 54, 0, 67, 0, 67, 0, 79, 0, 78, 0, 67, 0, 68, 0, 79, 0, 68, 0, 80, 0, 79, 0, 68, 0, 69, 0, 80, 0, 69, 0, 81, 0, 80, 0, 69, 0, 70, 0, 81, 0, 70, 0, 82, 0, 81, 0, 70, 0, 71, 0, 82, 0, 71, 0, 83, 0, 82, 0, 71, 0, 72, 0, 83, 0, 144, 0, 83, 0, 72, 0, 144, 0, 146, 0, 83, 0, 84, 0, 145, 0, 73, 0, 84, 0, 147, 0, 145, 0, 73, 0, 85, 0, 84, 0, 73, 0, 74, 0, 85, 0, 74, 0, 86, 0, 85, 0, 74, 0, 75, 0, 86, 0, 75, 0, 87, 0, 86, 0, 75, 0, 76, 0, 87, 0, 76, 0, 88, 0, 87, 0, 76, 0, 77, 0, 88, 0, 77, 0, 78, 0, 88, 0, 77, 0, 67, 0, 78, 0, 78, 0, 90, 0, 89, 0, 78, 0, 79, 0, 90, 0, 79, 0, 91, 0, 90, 0, 79, 0, 80, 0, 91, 0, 80, 0, 92, 0, 91, 0, 80, 0, 81, 0, 92, 0, 81, 0, 93, 0, 92, 0, 81, 0, 82, 0, 93, 0, 82, 0, 94, 0, 93, 0, 82, 0, 83, 0, 94, 0, 146, 0, 94, 0, 83, 0, 146, 0, 148, 0, 94, 0, 95, 0, 147, 0, 84, 0, 95, 0, 149, 0, 147, 0, 84, 0, 96, 0, 95, 0, 84, 0, 85, 0, 96, 0, 85, 0, 97, 0, 96, 0, 85, 0, 86, 0, 97, 0, 86, 0, 98, 0, 97, 0, 86, 0, 87, 0, 98, 0, 87, 0, 99, 0, 98, 0, 87, 0, 88, 0, 99, 0, 88, 0, 89, 0, 99, 0, 88, 0, 78, 0, 89, 0, 89, 0, 101, 0, 100, 0, 89, 0, 90, 0, 101, 0, 90, 0, 102, 0, 101, 0, 90, 0, 91, 0, 102, 0, 91, 0, 103, 0, 102, 0, 91, 0, 92, 0, 103, 0, 92, 0, 104, 0, 103, 0, 92, 0, 93, 0, 104, 0, 94, 0, 104, 0, 93, 0, 104, 0, 151, 0, 150, 0, 104, 0, 94, 0, 151, 0, 148, 0, 151, 0, 94, 0, 149, 0, 95, 0, 152, 0, 153, 0, 96, 0, 105, 0, 96, 0, 152, 0, 95, 0, 96, 0, 153, 0, 152, 0, 96, 0, 106, 0, 105, 0, 96, 0, 97, 0, 106, 0, 97, 0, 107, 0, 106, 0, 97, 0, 98, 0, 107, 0, 98, 0, 108, 0, 107, 0, 98, 0, 99, 0, 108, 0, 99, 0, 100, 0, 108, 0, 99, 0, 89, 0, 100, 0, 100, 0, 110, 0, 109, 0, 100, 0, 101, 0, 110, 0, 101, 0, 111, 0, 110, 0, 101, 0, 102, 0, 111, 0, 102, 0, 112, 0, 111, 0, 102, 0, 103, 0, 112, 0, 104, 0, 112, 0, 103, 0, 112, 0, 155, 0, 154, 0, 112, 0, 104, 0, 155, 0, 150, 0, 155, 0, 104, 0, 153, 0, 105, 0, 156, 0, 157, 0, 106, 0, 113, 0, 106, 0, 156, 0, 105, 0, 106, 0, 157, 0, 156, 0, 106, 0, 114, 0, 113, 0, 106, 0, 107, 0, 114, 0, 107, 0, 115, 0, 114, 0, 107, 0, 108, 0, 115, 0, 108, 0, 109, 0, 115, 0, 108, 0, 100, 0, 109, 0, 109, 0, 117, 0, 116, 0, 109, 0, 110, 0, 117, 0, 110, 0, 118, 0, 117, 0, 110, 0, 111, 0, 118, 0, 158, 0, 112, 0, 159, 0, 112, 0, 118, 0, 111, 0, 112, 0, 158, 0, 118, 0, 154, 0, 159, 0, 112, 0, 157, 0, 113, 0, 160, 0, 160, 0, 119, 0, 161, 0, 119, 0, 113, 0, 114, 0, 119, 0, 160, 0, 113, 0, 114, 0, 120, 0, 119, 0, 114, 0, 115, 0, 120, 0, 115, 0, 116, 0, 120, 0, 115, 0, 109, 0, 116, 0, 163, 0, 116, 0, 117, 0, 163, 0, 162, 0, 116, 0, 164, 0, 117, 0, 118, 0, 164, 0, 163, 0, 117, 0, 118, 0, 158, 0, 164, 0, 165, 0, 161, 0, 119, 0, 166, 0, 119, 0, 120, 0, 166, 0, 165, 0, 119, 0, 162, 0, 120, 0, 116, 0, 162, 0, 166, 0, 120, 0), +"lods": [0.280658, PackedByteArray(122, 0, 123, 0, 2, 0, 123, 0, 124, 0, 2, 0, 128, 0, 2, 0, 124, 0, 122, 0, 2, 0, 6, 0, 121, 0, 122, 0, 6, 0, 2, 0, 128, 0, 132, 0, 128, 0, 129, 0, 132, 0, 2, 0, 24, 0, 6, 0, 2, 0, 132, 0, 24, 0, 121, 0, 6, 0, 5, 0, 5, 0, 6, 0, 24, 0, 127, 0, 121, 0, 5, 0, 132, 0, 133, 0, 136, 0, 132, 0, 136, 0, 24, 0, 127, 0, 5, 0, 22, 0, 5, 0, 24, 0, 22, 0, 24, 0, 136, 0, 37, 0, 137, 0, 37, 0, 136, 0, 137, 0, 140, 0, 37, 0, 140, 0, 142, 0, 37, 0, 24, 0, 37, 0, 47, 0, 142, 0, 72, 0, 37, 0, 47, 0, 37, 0, 72, 0, 142, 0, 60, 0, 72, 0, 24, 0, 47, 0, 46, 0, 46, 0, 47, 0, 72, 0, 60, 0, 144, 0, 72, 0, 24, 0, 46, 0, 45, 0, 46, 0, 72, 0, 45, 0, 22, 0, 24, 0, 45, 0, 144, 0, 82, 0, 72, 0, 45, 0, 72, 0, 82, 0, 144, 0, 146, 0, 82, 0, 146, 0, 151, 0, 82, 0, 146, 0, 148, 0, 151, 0, 82, 0, 151, 0, 81, 0, 45, 0, 82, 0, 81, 0, 151, 0, 104, 0, 81, 0, 104, 0, 151, 0, 150, 0, 150, 0, 155, 0, 104, 0, 112, 0, 104, 0, 155, 0, 112, 0, 155, 0, 154, 0, 154, 0, 159, 0, 112, 0, 158, 0, 112, 0, 159, 0, 112, 0, 158, 0, 118, 0, 118, 0, 158, 0, 164, 0, 164, 0, 163, 0, 118, 0, 102, 0, 112, 0, 118, 0, 102, 0, 104, 0, 112, 0, 90, 0, 118, 0, 163, 0, 90, 0, 102, 0, 118, 0, 89, 0, 90, 0, 163, 0, 89, 0, 163, 0, 162, 0, 79, 0, 102, 0, 90, 0, 80, 0, 104, 0, 102, 0, 79, 0, 80, 0, 102, 0, 80, 0, 81, 0, 104, 0, 77, 0, 79, 0, 90, 0, 77, 0, 90, 0, 89, 0, 54, 0, 80, 0, 79, 0, 56, 0, 81, 0, 80, 0, 54, 0, 56, 0, 80, 0, 56, 0, 45, 0, 81, 0, 44, 0, 56, 0, 54, 0, 44, 0, 45, 0, 56, 0, 66, 0, 54, 0, 79, 0, 66, 0, 79, 0, 77, 0, 66, 0, 44, 0, 54, 0, 33, 0, 45, 0, 44, 0, 22, 0, 45, 0, 33, 0, 22, 0, 33, 0, 44, 0, 19, 0, 22, 0, 44, 0, 19, 0, 44, 0, 66, 0, 10, 0, 22, 0, 19, 0, 127, 0, 22, 0, 10, 0, 126, 0, 127, 0, 10, 0, 9, 0, 126, 0, 10, 0, 9, 0, 10, 0, 19, 0, 9, 0, 125, 0, 126, 0, 125, 0, 9, 0, 131, 0, 130, 0, 131, 0, 9, 0, 9, 0, 135, 0, 130, 0, 9, 0, 19, 0, 41, 0, 41, 0, 19, 0, 66, 0, 9, 0, 17, 0, 135, 0, 134, 0, 135, 0, 17, 0, 9, 0, 41, 0, 40, 0, 17, 0, 9, 0, 40, 0, 40, 0, 41, 0, 66, 0, 17, 0, 139, 0, 134, 0, 139, 0, 17, 0, 40, 0, 139, 0, 141, 0, 138, 0, 143, 0, 141, 0, 139, 0, 143, 0, 139, 0, 73, 0, 139, 0, 40, 0, 73, 0, 73, 0, 61, 0, 143, 0, 73, 0, 145, 0, 61, 0, 73, 0, 147, 0, 145, 0, 152, 0, 147, 0, 73, 0, 152, 0, 149, 0, 147, 0, 73, 0, 40, 0, 64, 0, 40, 0, 66, 0, 64, 0, 73, 0, 96, 0, 152, 0, 73, 0, 64, 0, 96, 0, 96, 0, 153, 0, 152, 0, 153, 0, 96, 0, 156, 0, 96, 0, 106, 0, 156, 0, 106, 0, 157, 0, 156, 0, 64, 0, 86, 0, 96, 0, 64, 0, 66, 0, 86, 0, 96, 0, 86, 0, 106, 0, 157, 0, 106, 0, 160, 0, 66, 0, 88, 0, 86, 0, 66, 0, 77, 0, 88, 0, 88, 0, 77, 0, 89, 0, 86, 0, 88, 0, 107, 0, 86, 0, 107, 0, 106, 0, 88, 0, 89, 0, 107, 0, 106, 0, 119, 0, 160, 0, 106, 0, 107, 0, 119, 0, 160, 0, 119, 0, 161, 0, 165, 0, 161, 0, 119, 0, 166, 0, 165, 0, 119, 0, 107, 0, 89, 0, 115, 0, 107, 0, 115, 0, 119, 0, 119, 0, 115, 0, 166, 0, 115, 0, 89, 0, 162, 0, 115, 0, 162, 0, 166, 0), 0.614485, PackedByteArray(121, 0, 122, 0, 22, 0, 127, 0, 121, 0, 22, 0, 122, 0, 123, 0, 22, 0, 127, 0, 22, 0, 126, 0, 128, 0, 123, 0, 124, 0, 123, 0, 128, 0, 132, 0, 128, 0, 129, 0, 132, 0, 123, 0, 24, 0, 22, 0, 123, 0, 132, 0, 24, 0, 126, 0, 22, 0, 44, 0, 22, 0, 24, 0, 44, 0, 132, 0, 133, 0, 136, 0, 132, 0, 136, 0, 24, 0, 24, 0, 136, 0, 140, 0, 137, 0, 140, 0, 136, 0, 24, 0, 140, 0, 144, 0, 142, 0, 144, 0, 140, 0, 142, 0, 60, 0, 144, 0, 24, 0, 144, 0, 80, 0, 44, 0, 24, 0, 80, 0, 80, 0, 144, 0, 155, 0, 79, 0, 44, 0, 80, 0, 80, 0, 155, 0, 79, 0, 144, 0, 151, 0, 155, 0, 146, 0, 151, 0, 144, 0, 146, 0, 148, 0, 151, 0, 155, 0, 151, 0, 150, 0, 159, 0, 155, 0, 154, 0, 79, 0, 155, 0, 159, 0, 159, 0, 158, 0, 164, 0, 79, 0, 159, 0, 164, 0, 79, 0, 164, 0, 163, 0, 162, 0, 79, 0, 163, 0, 66, 0, 44, 0, 79, 0, 66, 0, 79, 0, 162, 0, 126, 0, 44, 0, 66, 0, 66, 0, 162, 0, 107, 0, 107, 0, 162, 0, 166, 0, 135, 0, 126, 0, 66, 0, 135, 0, 125, 0, 126, 0, 125, 0, 135, 0, 131, 0, 130, 0, 131, 0, 135, 0, 165, 0, 107, 0, 166, 0, 64, 0, 66, 0, 107, 0, 135, 0, 66, 0, 64, 0, 134, 0, 135, 0, 139, 0, 139, 0, 135, 0, 64, 0, 139, 0, 64, 0, 138, 0, 160, 0, 165, 0, 161, 0, 156, 0, 165, 0, 160, 0, 156, 0, 107, 0, 165, 0, 157, 0, 156, 0, 160, 0, 152, 0, 107, 0, 156, 0, 64, 0, 107, 0, 152, 0, 153, 0, 152, 0, 156, 0, 138, 0, 64, 0, 73, 0, 73, 0, 64, 0, 152, 0, 143, 0, 141, 0, 138, 0, 143, 0, 138, 0, 73, 0, 73, 0, 61, 0, 143, 0, 73, 0, 145, 0, 61, 0, 73, 0, 147, 0, 145, 0, 152, 0, 147, 0, 73, 0, 152, 0, 149, 0, 147, 0), 1.83976, PackedByteArray(128, 0, 123, 0, 124, 0, 123, 0, 128, 0, 132, 0, 128, 0, 129, 0, 132, 0, 123, 0, 132, 0, 127, 0, 127, 0, 132, 0, 163, 0, 131, 0, 127, 0, 163, 0, 137, 0, 140, 0, 132, 0, 132, 0, 140, 0, 60, 0, 142, 0, 60, 0, 140, 0, 132, 0, 60, 0, 163, 0, 159, 0, 158, 0, 163, 0, 163, 0, 154, 0, 159, 0, 163, 0, 60, 0, 154, 0, 60, 0, 151, 0, 154, 0, 154, 0, 151, 0, 150, 0, 146, 0, 151, 0, 60, 0, 146, 0, 148, 0, 151, 0, 131, 0, 163, 0, 153, 0, 153, 0, 163, 0, 162, 0, 153, 0, 162, 0, 166, 0, 130, 0, 131, 0, 153, 0, 165, 0, 153, 0, 166, 0, 153, 0, 165, 0, 160, 0, 160, 0, 165, 0, 161, 0, 157, 0, 153, 0, 160, 0, 138, 0, 130, 0, 153, 0, 134, 0, 130, 0, 138, 0, 138, 0, 153, 0, 147, 0, 143, 0, 138, 0, 147, 0, 143, 0, 141, 0, 138, 0, 147, 0, 61, 0, 143, 0, 147, 0, 145, 0, 61, 0), 1.90169, PackedByteArray(134, 0, 133, 0, 158, 0, 134, 0, 158, 0, 61, 0, 160, 0, 61, 0, 158, 0, 158, 0, 133, 0, 148, 0), 2.01908, PackedByteArray(141, 0, 130, 0, 145, 0, 143, 0, 141, 0, 145, 0, 145, 0, 61, 0, 143, 0, 145, 0, 130, 0, 166, 0, 130, 0, 128, 0, 166, 0, 160, 0, 145, 0, 166, 0, 128, 0, 137, 0, 148, 0, 128, 0, 148, 0, 166, 0)], +"primitive": 3, +"vertex_count": 167, +"vertex_data": PackedByteArray(162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 253, 255, 31, 64, 0, 0, 0, 0, 122, 172, 106, 181, 4, 0, 32, 192, 0, 0, 0, 0, 122, 172, 106, 181, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 192, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 192, 250, 255, 159, 63, 0, 0, 0, 0, 244, 58, 221, 192, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 192, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 192, 6, 0, 160, 191, 0, 0, 0, 0, 244, 58, 221, 192, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 192, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 192, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 192, 244, 219, 21, 64, 0, 0, 0, 0, 97, 140, 132, 192, 250, 219, 21, 192, 0, 0, 0, 0, 97, 140, 132, 192, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 192, 79, 140, 26, 64, 0, 0, 0, 0, 38, 137, 103, 192, 102, 53, 28, 64, 0, 0, 0, 0, 95, 36, 66, 192, 108, 53, 28, 192, 0, 0, 0, 0, 95, 36, 66, 192, 85, 140, 26, 192, 0, 0, 0, 0, 38, 137, 103, 192, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 191, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 191, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 191, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 191, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 63, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 63, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 63, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 63, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 109, 53, 28, 192, 0, 0, 0, 0, 72, 36, 66, 64, 248, 219, 21, 64, 0, 0, 0, 0, 86, 140, 132, 64, 79, 140, 26, 64, 0, 0, 0, 0, 43, 137, 103, 64, 85, 140, 26, 192, 0, 0, 0, 0, 43, 137, 103, 64, 254, 219, 21, 192, 0, 0, 0, 0, 86, 140, 132, 64, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 64, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 64, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 64, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 64, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 64, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 64, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 64, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 64, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 64, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 250, 255, 159, 63, 0, 0, 0, 0, 242, 58, 221, 64, 6, 0, 160, 191, 0, 0, 0, 0, 242, 58, 221, 64, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_qya8c"] resource_name = "mound_Torus001" -surfaces/0 = { -"aabb": AABB( -2.5, 0, -7.47503, 5, 2.5, 14.9501 ), -"array_data": PoolByteArray( 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 202, 115, 0, 87, 220, 198, 0, 56, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 196, 116, 0, 90, 220, 198, 0, 56, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 60, 116, 0, 90, 220, 198, 0, 56, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 54, 115, 0, 87, 220, 198, 0, 56, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 60, 116, 0, 90, 220, 198, 226, 176, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 54, 115, 0, 87, 220, 198, 226, 176, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 65, 97, 0, 87, 220, 198, 226, 176, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 70, 98, 0, 90, 220, 198, 226, 176, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 65, 97, 0, 87, 220, 198, 113, 186, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 70, 98, 0, 90, 220, 198, 113, 186, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 79, 82, 0, 90, 220, 198, 113, 186, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 76, 81, 0, 87, 220, 198, 113, 186, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 180, 81, 0, 87, 220, 198, 56, 63, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 177, 82, 0, 90, 220, 198, 56, 63, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 186, 98, 0, 90, 220, 198, 56, 63, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 191, 97, 0, 87, 220, 198, 56, 63, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 186, 98, 0, 90, 220, 198, 156, 60, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 191, 97, 0, 87, 220, 198, 156, 60, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 202, 115, 0, 87, 220, 198, 156, 60, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 196, 116, 0, 90, 220, 198, 156, 60, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 208, 115, 0, 83, 162, 197, 0, 56, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 202, 115, 0, 87, 162, 197, 0, 56, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 54, 115, 0, 87, 162, 197, 0, 56, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 48, 115, 0, 83, 162, 197, 0, 56, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 54, 115, 0, 87, 162, 197, 226, 176, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 48, 115, 0, 83, 162, 197, 226, 176, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 61, 96, 0, 83, 162, 197, 226, 176, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 65, 97, 0, 87, 162, 197, 226, 176, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 61, 96, 0, 83, 162, 197, 113, 186, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 65, 97, 0, 87, 162, 197, 113, 186, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 72, 80, 0, 83, 162, 197, 113, 186, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 76, 81, 0, 87, 162, 197, 113, 186, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 72, 80, 0, 83, 162, 197, 212, 189, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 76, 81, 0, 87, 162, 197, 212, 189, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 86, 65, 0, 87, 162, 197, 212, 189, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 83, 64, 0, 83, 162, 197, 212, 189, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 173, 64, 0, 83, 162, 197, 234, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 170, 65, 0, 87, 162, 197, 234, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 184, 80, 0, 83, 162, 197, 234, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 180, 81, 0, 87, 162, 197, 234, 64, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 184, 80, 0, 83, 162, 197, 56, 63, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 180, 81, 0, 87, 162, 197, 56, 63, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 191, 97, 0, 87, 162, 197, 56, 63, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 195, 96, 0, 83, 162, 197, 56, 63, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 191, 97, 0, 87, 162, 197, 156, 60, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 195, 96, 0, 83, 162, 197, 156, 60, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 208, 115, 0, 83, 162, 197, 156, 60, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 202, 115, 0, 87, 162, 197, 156, 60, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 208, 115, 0, 83, 104, 196, 0, 56, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 214, 115, 0, 80, 104, 196, 0, 56, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 42, 115, 0, 80, 104, 196, 0, 56, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 48, 115, 0, 83, 104, 196, 0, 56, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 42, 115, 0, 80, 104, 196, 226, 176, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 48, 115, 0, 83, 104, 196, 226, 176, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 61, 96, 0, 83, 104, 196, 226, 176, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 56, 95, 0, 80, 104, 196, 226, 176, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 61, 96, 0, 83, 104, 196, 113, 186, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 56, 95, 0, 80, 104, 196, 113, 186, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 68, 79, 0, 80, 104, 196, 113, 186, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 72, 80, 0, 83, 104, 196, 113, 186, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 68, 79, 0, 80, 104, 196, 212, 189, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 72, 80, 0, 83, 104, 196, 212, 189, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 80, 62, 0, 80, 104, 196, 212, 189, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 83, 64, 0, 83, 104, 196, 212, 189, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 80, 62, 0, 80, 104, 196, 56, 192, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 83, 64, 0, 83, 104, 196, 56, 192, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 96, 45, 0, 83, 104, 196, 56, 192, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 94, 44, 0, 80, 104, 196, 56, 192, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 160, 45, 0, 83, 104, 196, 56, 66, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 162, 44, 0, 80, 104, 196, 56, 66, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 176, 62, 0, 80, 104, 196, 56, 66, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 173, 64, 0, 83, 104, 196, 56, 66, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 176, 62, 0, 80, 104, 196, 234, 64, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 173, 64, 0, 83, 104, 196, 234, 64, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 184, 80, 0, 83, 104, 196, 234, 64, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 188, 79, 0, 80, 104, 196, 234, 64, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 184, 80, 0, 83, 104, 196, 56, 63, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 188, 79, 0, 80, 104, 196, 56, 63, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 200, 95, 0, 80, 104, 196, 56, 63, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 195, 96, 0, 83, 104, 196, 56, 63, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 200, 95, 0, 80, 104, 196, 156, 60, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 195, 96, 0, 83, 104, 196, 156, 60, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 208, 115, 0, 83, 104, 196, 156, 60, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 214, 115, 0, 80, 104, 196, 156, 60, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 214, 115, 0, 80, 92, 194, 0, 56, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 221, 114, 0, 76, 92, 194, 0, 56, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 42, 115, 0, 80, 92, 194, 0, 56, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 35, 114, 0, 76, 92, 194, 0, 56, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 42, 115, 0, 80, 92, 194, 226, 176, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 35, 114, 0, 76, 92, 194, 226, 176, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 51, 94, 0, 76, 92, 194, 226, 176, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 56, 95, 0, 80, 92, 194, 226, 176, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 51, 94, 0, 76, 92, 194, 113, 186, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 56, 95, 0, 80, 92, 194, 113, 186, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 64, 77, 0, 76, 92, 194, 113, 186, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 68, 79, 0, 80, 92, 194, 113, 186, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 64, 77, 0, 76, 92, 194, 212, 189, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 68, 79, 0, 80, 92, 194, 212, 189, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 80, 62, 0, 80, 92, 194, 212, 189, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 78, 61, 0, 76, 92, 194, 212, 189, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 80, 62, 0, 80, 92, 194, 56, 192, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 78, 61, 0, 76, 92, 194, 56, 192, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 93, 42, 0, 76, 92, 194, 56, 192, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 94, 44, 0, 80, 92, 194, 56, 192, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 93, 42, 0, 76, 92, 194, 134, 193, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 94, 44, 0, 80, 92, 194, 134, 193, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 113, 18, 0, 80, 92, 194, 134, 193, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 113, 17, 0, 76, 92, 194, 134, 193, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 143, 17, 0, 76, 92, 194, 134, 67, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 143, 18, 0, 80, 92, 194, 134, 67, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 162, 44, 0, 80, 92, 194, 134, 67, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 163, 42, 0, 76, 92, 194, 134, 67, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 162, 44, 0, 80, 92, 194, 56, 66, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 163, 42, 0, 76, 92, 194, 56, 66, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 178, 61, 0, 76, 92, 194, 56, 66, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 176, 62, 0, 80, 92, 194, 56, 66, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 178, 61, 0, 76, 92, 194, 234, 64, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 176, 62, 0, 80, 92, 194, 234, 64, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 188, 79, 0, 80, 92, 194, 234, 64, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 192, 77, 0, 76, 92, 194, 234, 64, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 188, 79, 0, 80, 92, 194, 56, 63, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 192, 77, 0, 76, 92, 194, 56, 63, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 200, 95, 0, 80, 92, 194, 56, 63, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 205, 94, 0, 76, 92, 194, 56, 63, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 200, 95, 0, 80, 92, 194, 156, 60, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 205, 94, 0, 76, 92, 194, 156, 60, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 214, 115, 0, 80, 92, 194, 156, 60, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 221, 114, 0, 76, 92, 194, 156, 60, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 221, 114, 0, 76, 208, 191, 0, 56, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 229, 113, 0, 71, 208, 191, 0, 56, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 27, 113, 0, 71, 208, 191, 0, 56, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 35, 114, 0, 76, 208, 191, 0, 56, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 27, 113, 0, 71, 208, 191, 226, 176, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 35, 114, 0, 76, 208, 191, 226, 176, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 45, 93, 0, 71, 208, 191, 226, 176, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 51, 94, 0, 76, 208, 191, 226, 176, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 45, 93, 0, 71, 208, 191, 113, 186, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 51, 94, 0, 76, 208, 191, 113, 186, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 64, 77, 0, 76, 208, 191, 113, 186, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 60, 75, 0, 71, 208, 191, 113, 186, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 64, 77, 0, 76, 208, 191, 212, 189, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 60, 75, 0, 71, 208, 191, 212, 189, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 75, 59, 0, 71, 208, 191, 212, 189, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 78, 61, 0, 76, 208, 191, 212, 189, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 75, 59, 0, 71, 208, 191, 56, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 78, 61, 0, 76, 208, 191, 56, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 93, 42, 0, 76, 208, 191, 56, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 91, 40, 0, 71, 208, 191, 56, 192, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 93, 42, 0, 76, 208, 191, 134, 193, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 91, 40, 0, 71, 208, 191, 134, 193, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 113, 17, 0, 76, 208, 191, 134, 193, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 112, 16, 0, 71, 208, 191, 134, 193, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 143, 17, 0, 76, 208, 191, 134, 67, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 144, 16, 0, 71, 208, 191, 134, 67, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 165, 40, 0, 71, 208, 191, 134, 67, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 163, 42, 0, 76, 208, 191, 134, 67, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 165, 40, 0, 71, 208, 191, 56, 66, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 163, 42, 0, 76, 208, 191, 56, 66, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 178, 61, 0, 76, 208, 191, 56, 66, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 181, 59, 0, 71, 208, 191, 56, 66, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 178, 61, 0, 76, 208, 191, 234, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 181, 59, 0, 71, 208, 191, 234, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 196, 75, 0, 71, 208, 191, 234, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 192, 77, 0, 76, 208, 191, 234, 64, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 196, 75, 0, 71, 208, 191, 56, 63, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 192, 77, 0, 76, 208, 191, 56, 63, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 205, 94, 0, 76, 208, 191, 56, 63, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 211, 93, 0, 71, 208, 191, 56, 63, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 205, 94, 0, 76, 208, 191, 156, 60, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 211, 93, 0, 71, 208, 191, 156, 60, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 221, 114, 0, 76, 208, 191, 156, 60, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 229, 113, 0, 71, 208, 191, 156, 60, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 229, 113, 0, 71, 208, 185, 0, 56, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 237, 112, 0, 66, 208, 185, 0, 56, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 27, 113, 0, 71, 208, 185, 0, 56, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 19, 112, 0, 66, 208, 185, 0, 56, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 27, 113, 0, 71, 208, 185, 226, 176, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 19, 112, 0, 66, 208, 185, 226, 176, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 40, 91, 0, 66, 208, 185, 226, 176, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 45, 93, 0, 71, 208, 185, 226, 176, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 40, 91, 0, 66, 208, 185, 113, 186, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 45, 93, 0, 71, 208, 185, 113, 186, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 60, 75, 0, 71, 208, 185, 113, 186, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 57, 73, 0, 66, 208, 185, 113, 186, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 60, 75, 0, 71, 208, 185, 212, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 57, 73, 0, 66, 208, 185, 212, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 73, 56, 0, 66, 208, 185, 212, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 75, 59, 0, 71, 208, 185, 212, 189, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 73, 56, 0, 66, 208, 185, 56, 192, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 75, 59, 0, 71, 208, 185, 56, 192, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 91, 40, 0, 71, 208, 185, 56, 192, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 90, 38, 0, 66, 208, 185, 56, 192, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 91, 40, 0, 71, 208, 185, 134, 193, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 90, 38, 0, 66, 208, 185, 134, 193, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 112, 15, 0, 66, 208, 185, 134, 193, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 112, 16, 0, 71, 208, 185, 134, 193, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 144, 15, 0, 66, 208, 185, 134, 67, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 144, 16, 0, 71, 208, 185, 134, 67, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 166, 38, 0, 66, 208, 185, 134, 67, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 165, 40, 0, 71, 208, 185, 134, 67, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 166, 38, 0, 66, 208, 185, 56, 66, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 165, 40, 0, 71, 208, 185, 56, 66, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 181, 59, 0, 71, 208, 185, 56, 66, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 183, 56, 0, 66, 208, 185, 56, 66, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 181, 59, 0, 71, 208, 185, 234, 64, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 183, 56, 0, 66, 208, 185, 234, 64, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 199, 73, 0, 66, 208, 185, 234, 64, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 196, 75, 0, 71, 208, 185, 234, 64, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 199, 73, 0, 66, 208, 185, 56, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 196, 75, 0, 71, 208, 185, 56, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 211, 93, 0, 71, 208, 185, 56, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 216, 91, 0, 66, 208, 185, 56, 63, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 211, 93, 0, 71, 208, 185, 156, 60, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 216, 91, 0, 66, 208, 185, 156, 60, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 229, 113, 0, 71, 208, 185, 156, 60, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 237, 112, 0, 66, 208, 185, 156, 60, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 242, 107, 0, 60, 255, 55, 0, 56, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 237, 112, 0, 66, 255, 55, 0, 56, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 14, 107, 0, 60, 255, 55, 0, 56, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 19, 112, 0, 66, 255, 55, 0, 56, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 14, 107, 0, 60, 255, 55, 226, 176, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 19, 112, 0, 66, 255, 55, 226, 176, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 40, 91, 0, 66, 255, 55, 226, 176, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 35, 86, 0, 60, 255, 55, 226, 176, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 40, 91, 0, 66, 255, 55, 113, 186, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 35, 86, 0, 60, 255, 55, 113, 186, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 53, 69, 0, 60, 255, 55, 113, 186, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 57, 73, 0, 66, 255, 55, 113, 186, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 53, 69, 0, 60, 255, 55, 212, 189, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 57, 73, 0, 66, 255, 55, 212, 189, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 73, 56, 0, 66, 255, 55, 212, 189, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 70, 53, 0, 60, 255, 55, 212, 189, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 73, 56, 0, 66, 255, 55, 56, 192, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 70, 53, 0, 60, 255, 55, 56, 192, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 88, 36, 0, 60, 255, 55, 56, 192, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 90, 38, 0, 66, 255, 55, 56, 192, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 88, 36, 0, 60, 255, 55, 134, 193, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 90, 38, 0, 66, 255, 55, 134, 193, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 111, 14, 0, 60, 255, 55, 134, 193, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 112, 15, 0, 66, 255, 55, 134, 193, 253, 255, 31, 64, 0, 0, 0, 0, 122, 172, 106, 181, 111, 14, 0, 60, 255, 55, 212, 194, 253, 255, 31, 64, 0, 0, 0, 0, 122, 172, 106, 181, 112, 15, 0, 66, 255, 55, 212, 194, 4, 0, 32, 192, 0, 0, 0, 0, 122, 172, 106, 181, 145, 14, 0, 60, 255, 55, 106, 68, 4, 0, 32, 192, 0, 0, 0, 0, 122, 172, 106, 181, 144, 15, 0, 66, 255, 55, 106, 68, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 145, 14, 0, 60, 255, 55, 134, 67, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 144, 15, 0, 66, 255, 55, 134, 67, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 166, 38, 0, 66, 255, 55, 134, 67, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 168, 36, 0, 60, 255, 55, 134, 67, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 166, 38, 0, 66, 255, 55, 56, 66, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 168, 36, 0, 60, 255, 55, 56, 66, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 186, 53, 0, 60, 255, 55, 56, 66, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 183, 56, 0, 66, 255, 55, 56, 66, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 186, 53, 0, 60, 255, 55, 234, 64, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 183, 56, 0, 66, 255, 55, 234, 64, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 199, 73, 0, 66, 255, 55, 234, 64, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 203, 69, 0, 60, 255, 55, 234, 64, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 199, 73, 0, 66, 255, 55, 56, 63, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 203, 69, 0, 60, 255, 55, 56, 63, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 216, 91, 0, 66, 255, 55, 56, 63, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 221, 86, 0, 60, 255, 55, 56, 63, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 216, 91, 0, 66, 255, 55, 156, 60, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 221, 86, 0, 60, 255, 55, 156, 60, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 242, 107, 0, 60, 255, 55, 156, 60, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 237, 112, 0, 66, 255, 55, 156, 60, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 242, 107, 0, 60, 232, 62, 0, 56, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 243, 99, 0, 55, 232, 62, 0, 56, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 13, 99, 0, 55, 232, 62, 0, 56, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 14, 107, 0, 60, 232, 62, 0, 56, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 13, 99, 0, 55, 232, 62, 226, 176, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 14, 107, 0, 60, 232, 62, 226, 176, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 35, 86, 0, 60, 232, 62, 226, 176, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 33, 81, 0, 55, 232, 62, 226, 176, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 35, 86, 0, 60, 232, 62, 113, 186, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 33, 81, 0, 55, 232, 62, 113, 186, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 51, 66, 0, 55, 232, 62, 113, 186, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 53, 69, 0, 60, 232, 62, 113, 186, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 51, 66, 0, 55, 232, 62, 212, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 53, 69, 0, 60, 232, 62, 212, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 67, 51, 0, 55, 232, 62, 212, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 70, 53, 0, 60, 232, 62, 212, 189, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 67, 51, 0, 55, 232, 62, 56, 192, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 70, 53, 0, 60, 232, 62, 56, 192, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 88, 36, 0, 60, 232, 62, 56, 192, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 86, 35, 0, 55, 232, 62, 56, 192, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 88, 36, 0, 60, 232, 62, 134, 193, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 86, 35, 0, 55, 232, 62, 134, 193, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 111, 14, 0, 60, 232, 62, 134, 193, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 110, 14, 0, 55, 232, 62, 134, 193, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 145, 14, 0, 60, 232, 62, 134, 67, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 146, 14, 0, 55, 232, 62, 134, 67, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 168, 36, 0, 60, 232, 62, 134, 67, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 170, 35, 0, 55, 232, 62, 134, 67, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 168, 36, 0, 60, 232, 62, 56, 66, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 170, 35, 0, 55, 232, 62, 56, 66, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 189, 51, 0, 55, 232, 62, 56, 66, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 186, 53, 0, 60, 232, 62, 56, 66, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 189, 51, 0, 55, 232, 62, 234, 64, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 186, 53, 0, 60, 232, 62, 234, 64, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 203, 69, 0, 60, 232, 62, 234, 64, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 205, 66, 0, 55, 232, 62, 234, 64, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 203, 69, 0, 60, 232, 62, 56, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 205, 66, 0, 55, 232, 62, 56, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 223, 81, 0, 55, 232, 62, 56, 63, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 221, 86, 0, 60, 232, 62, 56, 63, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 223, 81, 0, 55, 232, 62, 156, 60, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 221, 86, 0, 60, 232, 62, 156, 60, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 242, 107, 0, 60, 232, 62, 156, 60, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 243, 99, 0, 55, 232, 62, 156, 60, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 244, 91, 0, 50, 232, 65, 0, 56, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 243, 99, 0, 55, 232, 65, 0, 56, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 13, 99, 0, 55, 232, 65, 0, 56, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 12, 91, 0, 50, 232, 65, 0, 56, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 13, 99, 0, 55, 232, 65, 226, 176, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 12, 91, 0, 50, 232, 65, 226, 176, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 32, 75, 0, 50, 232, 65, 226, 176, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 33, 81, 0, 55, 232, 65, 226, 176, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 32, 75, 0, 50, 232, 65, 113, 186, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 33, 81, 0, 55, 232, 65, 113, 186, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 49, 62, 0, 50, 232, 65, 113, 186, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 51, 66, 0, 55, 232, 65, 113, 186, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 49, 62, 0, 50, 232, 65, 212, 189, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 51, 66, 0, 55, 232, 65, 212, 189, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 67, 51, 0, 55, 232, 65, 212, 189, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 65, 48, 0, 50, 232, 65, 212, 189, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 67, 51, 0, 55, 232, 65, 56, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 65, 48, 0, 50, 232, 65, 56, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 84, 33, 0, 50, 232, 65, 56, 192, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 86, 35, 0, 55, 232, 65, 56, 192, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 84, 33, 0, 50, 232, 65, 134, 193, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 86, 35, 0, 55, 232, 65, 134, 193, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 109, 13, 0, 50, 232, 65, 134, 193, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 110, 14, 0, 55, 232, 65, 134, 193, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 147, 13, 0, 50, 232, 65, 134, 67, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 146, 14, 0, 55, 232, 65, 134, 67, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 172, 33, 0, 50, 232, 65, 134, 67, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 170, 35, 0, 55, 232, 65, 134, 67, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 172, 33, 0, 50, 232, 65, 56, 66, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 170, 35, 0, 55, 232, 65, 56, 66, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 191, 48, 0, 50, 232, 65, 56, 66, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 189, 51, 0, 55, 232, 65, 56, 66, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 191, 48, 0, 50, 232, 65, 234, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 189, 51, 0, 55, 232, 65, 234, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 205, 66, 0, 55, 232, 65, 234, 64, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 207, 62, 0, 50, 232, 65, 234, 64, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 205, 66, 0, 55, 232, 65, 56, 63, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 207, 62, 0, 50, 232, 65, 56, 63, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 223, 81, 0, 55, 232, 65, 56, 63, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 224, 75, 0, 50, 232, 65, 56, 63, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 223, 81, 0, 55, 232, 65, 156, 60, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 224, 75, 0, 50, 232, 65, 156, 60, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 244, 91, 0, 50, 232, 65, 156, 60, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 243, 99, 0, 55, 232, 65, 156, 60, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 244, 91, 0, 50, 46, 68, 0, 56, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 245, 84, 0, 46, 46, 68, 0, 56, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 11, 84, 0, 46, 46, 68, 0, 56, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 12, 91, 0, 50, 46, 68, 0, 56, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 11, 84, 0, 46, 46, 68, 226, 176, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 12, 91, 0, 50, 46, 68, 226, 176, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 31, 70, 0, 46, 46, 68, 226, 176, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 32, 75, 0, 50, 46, 68, 226, 176, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 31, 70, 0, 46, 46, 68, 113, 186, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 32, 75, 0, 50, 46, 68, 113, 186, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 49, 62, 0, 50, 46, 68, 113, 186, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 47, 58, 0, 46, 46, 68, 113, 186, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 49, 62, 0, 50, 46, 68, 212, 189, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 47, 58, 0, 46, 46, 68, 212, 189, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 64, 46, 0, 46, 46, 68, 212, 189, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 65, 48, 0, 50, 46, 68, 212, 189, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 64, 46, 0, 46, 46, 68, 56, 192, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 65, 48, 0, 50, 46, 68, 56, 192, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 84, 33, 0, 50, 46, 68, 56, 192, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 82, 32, 0, 46, 46, 68, 56, 192, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 84, 33, 0, 50, 46, 68, 134, 193, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 82, 32, 0, 46, 46, 68, 134, 193, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 108, 13, 0, 46, 46, 68, 134, 193, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 109, 13, 0, 50, 46, 68, 134, 193, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 147, 13, 0, 50, 46, 68, 134, 67, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 148, 13, 0, 46, 46, 68, 134, 67, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 174, 32, 0, 46, 46, 68, 134, 67, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 172, 33, 0, 50, 46, 68, 134, 67, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 174, 32, 0, 46, 46, 68, 56, 66, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 172, 33, 0, 50, 46, 68, 56, 66, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 191, 48, 0, 50, 46, 68, 56, 66, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 192, 46, 0, 46, 46, 68, 56, 66, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 191, 48, 0, 50, 46, 68, 234, 64, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 192, 46, 0, 46, 46, 68, 234, 64, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 209, 58, 0, 46, 46, 68, 234, 64, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 207, 62, 0, 50, 46, 68, 234, 64, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 209, 58, 0, 46, 46, 68, 56, 63, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 207, 62, 0, 50, 46, 68, 56, 63, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 224, 75, 0, 50, 46, 68, 56, 63, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 225, 70, 0, 46, 46, 68, 56, 63, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 224, 75, 0, 50, 46, 68, 156, 60, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 225, 70, 0, 46, 46, 68, 156, 60, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 244, 91, 0, 50, 46, 68, 156, 60, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 245, 84, 0, 46, 46, 68, 156, 60, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 245, 84, 0, 46, 104, 69, 0, 56, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 245, 78, 0, 43, 104, 69, 0, 56, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 11, 78, 0, 43, 104, 69, 0, 56, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 11, 84, 0, 46, 104, 69, 0, 56, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 11, 78, 0, 43, 104, 69, 226, 176, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 11, 84, 0, 46, 104, 69, 226, 176, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 30, 65, 0, 43, 104, 69, 226, 176, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 31, 70, 0, 46, 104, 69, 226, 176, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 30, 65, 0, 43, 104, 69, 113, 186, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 31, 70, 0, 46, 104, 69, 113, 186, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 47, 58, 0, 46, 104, 69, 113, 186, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 46, 54, 0, 43, 104, 69, 113, 186, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 47, 58, 0, 46, 104, 69, 212, 189, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 46, 54, 0, 43, 104, 69, 212, 189, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 64, 46, 0, 46, 104, 69, 212, 189, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 62, 43, 0, 43, 104, 69, 212, 189, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 64, 46, 0, 46, 104, 69, 56, 192, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 62, 43, 0, 43, 104, 69, 56, 192, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 82, 32, 0, 46, 104, 69, 56, 192, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 81, 30, 0, 43, 104, 69, 56, 192, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 175, 30, 0, 43, 104, 69, 56, 66, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 174, 32, 0, 46, 104, 69, 56, 66, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 194, 43, 0, 43, 104, 69, 56, 66, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 192, 46, 0, 46, 104, 69, 56, 66, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 194, 43, 0, 43, 104, 69, 234, 64, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 192, 46, 0, 46, 104, 69, 234, 64, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 210, 54, 0, 43, 104, 69, 234, 64, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 209, 58, 0, 46, 104, 69, 234, 64, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 210, 54, 0, 43, 104, 69, 56, 63, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 209, 58, 0, 46, 104, 69, 56, 63, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 225, 70, 0, 46, 104, 69, 56, 63, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 226, 65, 0, 43, 104, 69, 56, 63, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 225, 70, 0, 46, 104, 69, 156, 60, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 226, 65, 0, 43, 104, 69, 156, 60, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 245, 84, 0, 46, 104, 69, 156, 60, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 245, 78, 0, 43, 104, 69, 156, 60, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 245, 78, 0, 43, 162, 70, 0, 56, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 245, 72, 0, 39, 162, 70, 0, 56, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 11, 72, 0, 39, 162, 70, 0, 56, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 11, 78, 0, 43, 162, 70, 0, 56, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 11, 72, 0, 39, 162, 70, 226, 176, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 11, 78, 0, 43, 162, 70, 226, 176, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 30, 65, 0, 43, 162, 70, 226, 176, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 29, 61, 0, 39, 162, 70, 226, 176, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 30, 65, 0, 43, 162, 70, 113, 186, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 29, 61, 0, 39, 162, 70, 113, 186, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 45, 50, 0, 39, 162, 70, 113, 186, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 46, 54, 0, 43, 162, 70, 113, 186, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 45, 50, 0, 39, 162, 70, 212, 189, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 46, 54, 0, 43, 162, 70, 212, 189, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 61, 40, 0, 39, 162, 70, 212, 189, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 62, 43, 0, 43, 162, 70, 212, 189, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 194, 43, 0, 43, 162, 70, 234, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 195, 40, 0, 39, 162, 70, 234, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 210, 54, 0, 43, 162, 70, 234, 64, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 211, 50, 0, 39, 162, 70, 234, 64, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 210, 54, 0, 43, 162, 70, 56, 63, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 211, 50, 0, 39, 162, 70, 56, 63, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 227, 61, 0, 39, 162, 70, 56, 63, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 226, 65, 0, 43, 162, 70, 56, 63, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 227, 61, 0, 39, 162, 70, 156, 60, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 226, 65, 0, 43, 162, 70, 156, 60, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 245, 78, 0, 43, 162, 70, 156, 60, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 245, 72, 0, 39, 162, 70, 156, 60, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 245, 72, 0, 39, 220, 71, 0, 56, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 246, 66, 0, 36, 220, 71, 0, 56, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 10, 66, 0, 36, 220, 71, 0, 56, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 11, 72, 0, 39, 220, 71, 0, 56, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 10, 66, 0, 36, 220, 71, 226, 176, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 11, 72, 0, 39, 220, 71, 226, 176, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 29, 61, 0, 39, 220, 71, 226, 176, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 28, 56, 0, 36, 220, 71, 226, 176, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 29, 61, 0, 39, 220, 71, 113, 186, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 28, 56, 0, 36, 220, 71, 113, 186, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 44, 47, 0, 36, 220, 71, 113, 186, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 45, 50, 0, 39, 220, 71, 113, 186, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 211, 50, 0, 39, 220, 71, 56, 63, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 212, 47, 0, 36, 220, 71, 56, 63, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 228, 56, 0, 36, 220, 71, 56, 63, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 227, 61, 0, 39, 220, 71, 56, 63, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 228, 56, 0, 36, 220, 71, 156, 60, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 227, 61, 0, 39, 220, 71, 156, 60, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 245, 72, 0, 39, 220, 71, 156, 60, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 246, 66, 0, 36, 220, 71, 156, 60, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 192, 196, 116, 0, 90, 133, 199, 0, 56, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 192, 60, 116, 0, 90, 133, 199, 0, 56, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 192, 60, 116, 0, 90, 103, 199, 226, 176, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 192, 70, 98, 0, 90, 103, 199, 226, 176, 250, 255, 159, 63, 0, 0, 0, 0, 244, 58, 221, 192, 70, 98, 0, 90, 14, 199, 113, 186, 250, 255, 159, 63, 0, 0, 0, 0, 244, 58, 221, 192, 79, 82, 0, 90, 14, 199, 113, 186, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 192, 79, 82, 0, 90, 220, 198, 32, 188, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 192, 76, 81, 0, 87, 220, 198, 32, 188, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 192, 180, 81, 0, 87, 220, 198, 16, 64, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 192, 177, 82, 0, 90, 220, 198, 16, 64, 6, 0, 160, 191, 0, 0, 0, 0, 244, 58, 221, 192, 177, 82, 0, 90, 14, 199, 56, 63, 6, 0, 160, 191, 0, 0, 0, 0, 244, 58, 221, 192, 186, 98, 0, 90, 14, 199, 56, 63, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 186, 98, 0, 90, 103, 199, 156, 60, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 196, 116, 0, 90, 103, 199, 156, 60, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 76, 81, 0, 87, 106, 198, 212, 189, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 86, 65, 0, 87, 106, 198, 212, 189, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 192, 86, 65, 0, 87, 162, 197, 254, 191, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 192, 83, 64, 0, 83, 162, 197, 254, 191, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 173, 64, 0, 83, 162, 197, 255, 65, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 170, 65, 0, 87, 162, 197, 255, 65, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 192, 170, 65, 0, 87, 106, 198, 234, 64, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 192, 180, 81, 0, 87, 106, 198, 234, 64, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 192, 83, 64, 0, 83, 110, 197, 56, 192, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 192, 96, 45, 0, 83, 110, 197, 56, 192, 244, 219, 21, 64, 0, 0, 0, 0, 97, 140, 132, 192, 96, 45, 0, 83, 104, 196, 36, 193, 244, 219, 21, 64, 0, 0, 0, 0, 97, 140, 132, 192, 94, 44, 0, 80, 104, 196, 36, 193, 250, 219, 21, 192, 0, 0, 0, 0, 97, 140, 132, 192, 160, 45, 0, 83, 104, 196, 36, 67, 250, 219, 21, 192, 0, 0, 0, 0, 97, 140, 132, 192, 162, 44, 0, 80, 104, 196, 36, 67, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 192, 160, 45, 0, 83, 110, 197, 56, 66, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 192, 173, 64, 0, 83, 110, 197, 56, 66, 79, 140, 26, 64, 0, 0, 0, 0, 38, 137, 103, 192, 94, 44, 0, 80, 172, 195, 134, 193, 79, 140, 26, 64, 0, 0, 0, 0, 38, 137, 103, 192, 113, 18, 0, 80, 172, 195, 134, 193, 102, 53, 28, 64, 0, 0, 0, 0, 95, 36, 66, 192, 113, 18, 0, 80, 92, 194, 236, 193, 102, 53, 28, 64, 0, 0, 0, 0, 95, 36, 66, 192, 113, 17, 0, 76, 92, 194, 236, 193, 108, 53, 28, 192, 0, 0, 0, 0, 95, 36, 66, 192, 143, 17, 0, 76, 92, 194, 236, 67, 108, 53, 28, 192, 0, 0, 0, 0, 95, 36, 66, 192, 143, 18, 0, 80, 92, 194, 236, 67, 85, 140, 26, 192, 0, 0, 0, 0, 38, 137, 103, 192, 143, 18, 0, 80, 172, 195, 134, 67, 85, 140, 26, 192, 0, 0, 0, 0, 38, 137, 103, 192, 162, 44, 0, 80, 172, 195, 134, 67, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 191, 113, 17, 0, 76, 208, 191, 111, 194, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 191, 112, 16, 0, 71, 208, 191, 111, 194, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 191, 143, 17, 0, 76, 208, 191, 55, 68, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 191, 144, 16, 0, 71, 208, 191, 55, 68, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 191, 112, 15, 0, 66, 208, 185, 187, 194, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 191, 112, 16, 0, 71, 208, 185, 187, 194, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 191, 144, 15, 0, 66, 208, 185, 93, 68, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 191, 144, 16, 0, 71, 208, 185, 93, 68, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 63, 111, 14, 0, 60, 232, 62, 187, 194, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 63, 110, 14, 0, 55, 232, 62, 187, 194, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 63, 145, 14, 0, 60, 232, 62, 93, 68, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 63, 146, 14, 0, 55, 232, 62, 93, 68, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 63, 109, 13, 0, 50, 232, 65, 111, 194, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 63, 110, 14, 0, 55, 232, 65, 111, 194, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 63, 147, 13, 0, 50, 232, 65, 55, 68, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 63, 146, 14, 0, 55, 232, 65, 55, 68, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 108, 13, 0, 46, 46, 68, 236, 193, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 109, 13, 0, 50, 46, 68, 236, 193, 109, 53, 28, 192, 0, 0, 0, 0, 72, 36, 66, 64, 147, 13, 0, 50, 46, 68, 236, 67, 109, 53, 28, 192, 0, 0, 0, 0, 72, 36, 66, 64, 148, 13, 0, 46, 46, 68, 236, 67, 248, 219, 21, 64, 0, 0, 0, 0, 86, 140, 132, 64, 82, 32, 0, 46, 104, 69, 36, 193, 248, 219, 21, 64, 0, 0, 0, 0, 86, 140, 132, 64, 81, 30, 0, 43, 104, 69, 36, 193, 79, 140, 26, 64, 0, 0, 0, 0, 43, 137, 103, 64, 82, 32, 0, 46, 214, 68, 134, 193, 79, 140, 26, 64, 0, 0, 0, 0, 43, 137, 103, 64, 108, 13, 0, 46, 214, 68, 134, 193, 85, 140, 26, 192, 0, 0, 0, 0, 43, 137, 103, 64, 148, 13, 0, 46, 214, 68, 134, 67, 85, 140, 26, 192, 0, 0, 0, 0, 43, 137, 103, 64, 174, 32, 0, 46, 214, 68, 134, 67, 254, 219, 21, 192, 0, 0, 0, 0, 86, 140, 132, 64, 175, 30, 0, 43, 104, 69, 36, 67, 254, 219, 21, 192, 0, 0, 0, 0, 86, 140, 132, 64, 174, 32, 0, 46, 104, 69, 36, 67, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 64, 61, 40, 0, 39, 162, 70, 254, 191, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 64, 62, 43, 0, 43, 162, 70, 254, 191, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 64, 62, 43, 0, 43, 110, 70, 56, 192, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 64, 81, 30, 0, 43, 110, 70, 56, 192, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 64, 175, 30, 0, 43, 110, 70, 56, 66, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 64, 194, 43, 0, 43, 110, 70, 56, 66, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 64, 194, 43, 0, 43, 162, 70, 255, 65, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 64, 195, 40, 0, 39, 162, 70, 255, 65, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 64, 44, 47, 0, 36, 220, 71, 32, 188, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 64, 45, 50, 0, 39, 220, 71, 32, 188, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 64, 45, 50, 0, 39, 106, 71, 212, 189, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 64, 61, 40, 0, 39, 106, 71, 212, 189, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 64, 195, 40, 0, 39, 106, 71, 234, 64, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 64, 211, 50, 0, 39, 106, 71, 234, 64, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 64, 211, 50, 0, 39, 220, 71, 16, 64, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 64, 212, 47, 0, 36, 220, 71, 16, 64, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 64, 246, 66, 0, 36, 66, 72, 0, 56, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 64, 10, 66, 0, 36, 66, 72, 0, 56, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 10, 66, 0, 36, 51, 72, 226, 176, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 28, 56, 0, 36, 51, 72, 226, 176, 250, 255, 159, 63, 0, 0, 0, 0, 242, 58, 221, 64, 28, 56, 0, 36, 7, 72, 113, 186, 250, 255, 159, 63, 0, 0, 0, 0, 242, 58, 221, 64, 44, 47, 0, 36, 7, 72, 113, 186, 6, 0, 160, 191, 0, 0, 0, 0, 242, 58, 221, 64, 212, 47, 0, 36, 7, 72, 56, 63, 6, 0, 160, 191, 0, 0, 0, 0, 242, 58, 221, 64, 228, 56, 0, 36, 7, 72, 56, 63, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64, 228, 56, 0, 36, 51, 72, 156, 60, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64, 246, 66, 0, 36, 51, 72, 156, 60 ), -"array_index_data": PoolByteArray( 225, 1, 4, 0, 2, 0, 225, 1, 226, 1, 4, 0, 227, 1, 9, 0, 7, 0, 227, 1, 228, 1, 9, 0, 229, 1, 230, 1, 10, 0, 233, 1, 234, 1, 13, 0, 235, 1, 16, 0, 14, 0, 235, 1, 236, 1, 16, 0, 237, 1, 1, 0, 19, 0, 237, 1, 224, 1, 1, 0, 3, 0, 24, 0, 22, 0, 3, 0, 5, 0, 24, 0, 6, 0, 29, 0, 27, 0, 6, 0, 8, 0, 29, 0, 238, 1, 11, 0, 231, 1, 11, 0, 33, 0, 31, 0, 11, 0, 238, 1, 33, 0, 239, 1, 240, 1, 34, 0, 243, 1, 244, 1, 37, 0, 232, 1, 39, 0, 245, 1, 39, 0, 12, 0, 41, 0, 39, 0, 232, 1, 12, 0, 15, 0, 44, 0, 42, 0, 15, 0, 17, 0, 44, 0, 18, 0, 21, 0, 47, 0, 18, 0, 0, 0, 21, 0, 23, 0, 53, 0, 51, 0, 23, 0, 25, 0, 53, 0, 26, 0, 56, 0, 54, 0, 26, 0, 28, 0, 56, 0, 30, 0, 61, 0, 59, 0, 30, 0, 32, 0, 61, 0, 246, 1, 35, 0, 241, 1, 35, 0, 65, 0, 63, 0, 35, 0, 246, 1, 65, 0, 247, 1, 248, 1, 66, 0, 250, 1, 252, 1, 68, 0, 71, 0, 36, 0, 73, 0, 36, 0, 253, 1, 242, 1, 36, 0, 71, 0, 253, 1, 38, 0, 76, 0, 74, 0, 38, 0, 40, 0, 76, 0, 43, 0, 81, 0, 79, 0, 43, 0, 45, 0, 81, 0, 46, 0, 48, 0, 82, 0, 46, 0, 20, 0, 48, 0, 50, 0, 88, 0, 86, 0, 50, 0, 52, 0, 88, 0, 55, 0, 93, 0, 91, 0, 55, 0, 57, 0, 93, 0, 58, 0, 97, 0, 95, 0, 58, 0, 60, 0, 97, 0, 62, 0, 100, 0, 98, 0, 62, 0, 64, 0, 100, 0, 254, 1, 67, 0, 249, 1, 67, 0, 105, 0, 103, 0, 67, 0, 254, 1, 105, 0, 255, 1, 0, 2, 106, 0, 3, 2, 4, 2, 109, 0, 110, 0, 69, 0, 112, 0, 69, 0, 5, 2, 251, 1, 69, 0, 110, 0, 5, 2, 70, 0, 117, 0, 115, 0, 70, 0, 72, 0, 117, 0, 75, 0, 120, 0, 118, 0, 75, 0, 77, 0, 120, 0, 78, 0, 124, 0, 122, 0, 78, 0, 80, 0, 124, 0, 83, 0, 84, 0, 126, 0, 83, 0, 49, 0, 84, 0, 87, 0, 133, 0, 131, 0, 87, 0, 89, 0, 133, 0, 90, 0, 137, 0, 135, 0, 90, 0, 92, 0, 137, 0, 94, 0, 140, 0, 138, 0, 94, 0, 96, 0, 140, 0, 99, 0, 145, 0, 143, 0, 99, 0, 101, 0, 145, 0, 102, 0, 148, 0, 146, 0, 102, 0, 104, 0, 148, 0, 1, 2, 150, 0, 107, 0, 1, 2, 6, 2, 150, 0, 152, 0, 2, 2, 108, 0, 152, 0, 8, 2, 2, 2, 111, 0, 157, 0, 155, 0, 111, 0, 113, 0, 157, 0, 114, 0, 160, 0, 158, 0, 114, 0, 116, 0, 160, 0, 119, 0, 165, 0, 163, 0, 119, 0, 121, 0, 165, 0, 123, 0, 168, 0, 166, 0, 123, 0, 125, 0, 168, 0, 127, 0, 128, 0, 170, 0, 127, 0, 85, 0, 128, 0, 130, 0, 176, 0, 174, 0, 130, 0, 132, 0, 176, 0, 134, 0, 181, 0, 179, 0, 134, 0, 136, 0, 181, 0, 139, 0, 184, 0, 182, 0, 139, 0, 141, 0, 184, 0, 142, 0, 189, 0, 187, 0, 142, 0, 144, 0, 189, 0, 147, 0, 192, 0, 190, 0, 147, 0, 149, 0, 192, 0, 7, 2, 195, 0, 151, 0, 7, 2, 11, 2, 195, 0, 13, 2, 153, 0, 197, 0, 13, 2, 9, 2, 153, 0, 154, 0, 201, 0, 199, 0, 154, 0, 156, 0, 201, 0, 159, 0, 204, 0, 202, 0, 159, 0, 161, 0, 204, 0, 162, 0, 209, 0, 207, 0, 162, 0, 164, 0, 209, 0, 167, 0, 212, 0, 210, 0, 167, 0, 169, 0, 212, 0, 171, 0, 172, 0, 214, 0, 171, 0, 129, 0, 172, 0, 175, 0, 221, 0, 219, 0, 175, 0, 177, 0, 221, 0, 178, 0, 224, 0, 222, 0, 178, 0, 180, 0, 224, 0, 183, 0, 229, 0, 227, 0, 183, 0, 185, 0, 229, 0, 186, 0, 232, 0, 230, 0, 186, 0, 188, 0, 232, 0, 191, 0, 237, 0, 235, 0, 191, 0, 193, 0, 237, 0, 10, 2, 239, 0, 194, 0, 10, 2, 241, 0, 239, 0, 245, 0, 12, 2, 196, 0, 245, 0, 243, 0, 12, 2, 198, 0, 248, 0, 246, 0, 198, 0, 200, 0, 248, 0, 203, 0, 253, 0, 251, 0, 203, 0, 205, 0, 253, 0, 206, 0, 0, 1, 254, 0, 206, 0, 208, 0, 0, 1, 211, 0, 4, 1, 2, 1, 211, 0, 213, 0, 4, 1, 215, 0, 217, 0, 7, 1, 215, 0, 173, 0, 217, 0, 218, 0, 13, 1, 11, 1, 218, 0, 220, 0, 13, 1, 223, 0, 16, 1, 14, 1, 223, 0, 225, 0, 16, 1, 226, 0, 21, 1, 19, 1, 226, 0, 228, 0, 21, 1, 231, 0, 25, 1, 23, 1, 231, 0, 233, 0, 25, 1, 234, 0, 28, 1, 26, 1, 234, 0, 236, 0, 28, 1, 240, 0, 30, 1, 238, 0, 240, 0, 14, 2, 30, 1, 32, 1, 242, 0, 244, 0, 32, 1, 16, 2, 242, 0, 247, 0, 36, 1, 34, 1, 247, 0, 249, 0, 36, 1, 250, 0, 41, 1, 39, 1, 250, 0, 252, 0, 41, 1, 255, 0, 44, 1, 42, 1, 255, 0, 1, 1, 44, 1, 3, 1, 49, 1, 47, 1, 3, 1, 5, 1, 49, 1, 6, 1, 8, 1, 50, 1, 6, 1, 216, 0, 8, 1, 10, 1, 56, 1, 54, 1, 10, 1, 12, 1, 56, 1, 15, 1, 61, 1, 59, 1, 15, 1, 17, 1, 61, 1, 18, 1, 65, 1, 63, 1, 18, 1, 20, 1, 65, 1, 22, 1, 68, 1, 66, 1, 22, 1, 24, 1, 68, 1, 27, 1, 73, 1, 71, 1, 27, 1, 29, 1, 73, 1, 15, 2, 75, 1, 31, 1, 15, 2, 19, 2, 75, 1, 77, 1, 17, 2, 33, 1, 77, 1, 21, 2, 17, 2, 35, 1, 81, 1, 79, 1, 35, 1, 37, 1, 81, 1, 38, 1, 85, 1, 83, 1, 38, 1, 40, 1, 85, 1, 43, 1, 88, 1, 86, 1, 43, 1, 45, 1, 88, 1, 46, 1, 92, 1, 90, 1, 46, 1, 48, 1, 92, 1, 51, 1, 53, 1, 95, 1, 51, 1, 9, 1, 53, 1, 55, 1, 101, 1, 99, 1, 55, 1, 57, 1, 101, 1, 58, 1, 105, 1, 103, 1, 58, 1, 60, 1, 105, 1, 62, 1, 108, 1, 106, 1, 62, 1, 64, 1, 108, 1, 67, 1, 113, 1, 111, 1, 67, 1, 69, 1, 113, 1, 70, 1, 116, 1, 114, 1, 70, 1, 72, 1, 116, 1, 18, 2, 119, 1, 74, 1, 18, 2, 23, 2, 119, 1, 120, 1, 20, 2, 76, 1, 120, 1, 24, 2, 20, 2, 78, 1, 125, 1, 123, 1, 78, 1, 80, 1, 125, 1, 82, 1, 128, 1, 126, 1, 82, 1, 84, 1, 128, 1, 87, 1, 133, 1, 131, 1, 87, 1, 89, 1, 133, 1, 91, 1, 136, 1, 134, 1, 91, 1, 93, 1, 136, 1, 94, 1, 96, 1, 138, 1, 94, 1, 52, 1, 96, 1, 98, 1, 145, 1, 143, 1, 98, 1, 100, 1, 145, 1, 102, 1, 149, 1, 147, 1, 102, 1, 104, 1, 149, 1, 107, 1, 152, 1, 150, 1, 107, 1, 109, 1, 152, 1, 110, 1, 156, 1, 154, 1, 110, 1, 112, 1, 156, 1, 117, 1, 158, 1, 115, 1, 158, 1, 28, 2, 26, 2, 158, 1, 117, 1, 28, 2, 22, 2, 29, 2, 118, 1, 25, 2, 121, 1, 30, 2, 33, 2, 124, 1, 161, 1, 124, 1, 31, 2, 122, 1, 124, 1, 33, 2, 31, 2, 127, 1, 165, 1, 163, 1, 127, 1, 129, 1, 165, 1, 130, 1, 169, 1, 167, 1, 130, 1, 132, 1, 169, 1, 135, 1, 172, 1, 170, 1, 135, 1, 137, 1, 172, 1, 139, 1, 140, 1, 174, 1, 139, 1, 97, 1, 140, 1, 142, 1, 181, 1, 179, 1, 142, 1, 144, 1, 181, 1, 146, 1, 184, 1, 182, 1, 146, 1, 148, 1, 184, 1, 151, 1, 189, 1, 187, 1, 151, 1, 153, 1, 189, 1, 157, 1, 191, 1, 155, 1, 191, 1, 36, 2, 35, 2, 191, 1, 157, 1, 36, 2, 27, 2, 37, 2, 159, 1, 32, 2, 160, 1, 38, 2, 40, 2, 164, 1, 192, 1, 164, 1, 39, 2, 162, 1, 164, 1, 40, 2, 39, 2, 166, 1, 196, 1, 194, 1, 166, 1, 168, 1, 196, 1, 171, 1, 201, 1, 199, 1, 171, 1, 173, 1, 201, 1, 175, 1, 176, 1, 202, 1, 175, 1, 141, 1, 176, 1, 178, 1, 209, 1, 207, 1, 178, 1, 180, 1, 209, 1, 183, 1, 212, 1, 210, 1, 183, 1, 185, 1, 212, 1, 43, 2, 188, 1, 44, 2, 188, 1, 215, 1, 186, 1, 188, 1, 43, 2, 215, 1, 34, 2, 45, 2, 190, 1, 41, 2, 193, 1, 46, 2, 47, 2, 216, 1, 48, 2, 216, 1, 195, 1, 197, 1, 216, 1, 47, 2, 195, 1, 198, 1, 221, 1, 219, 1, 198, 1, 200, 1, 221, 1, 203, 1, 204, 1, 222, 1, 203, 1, 177, 1, 204, 1, 52, 2, 206, 1, 208, 1, 52, 2, 51, 2, 206, 1, 54, 2, 211, 1, 213, 1, 54, 2, 53, 2, 211, 1, 214, 1, 42, 2, 55, 2, 56, 2, 49, 2, 217, 1, 58, 2, 218, 1, 220, 1, 58, 2, 57, 2, 218, 1, 50, 2, 223, 1, 205, 1, 50, 2, 59, 2, 223, 1 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-2.5, 0, -7.47503, 5, 2.5, 14.9501), +"attribute_data": PackedByteArray(103, 134, 219, 192, 0, 0, 0, 63, 103, 134, 219, 192, 0, 0, 0, 63, 103, 134, 219, 192, 0, 0, 0, 63, 103, 134, 219, 192, 0, 0, 0, 63, 103, 134, 219, 192, 32, 75, 28, 190, 103, 134, 219, 192, 32, 75, 28, 190, 103, 134, 219, 192, 32, 75, 28, 190, 103, 134, 219, 192, 32, 75, 28, 190, 103, 134, 219, 192, 128, 37, 78, 191, 103, 134, 219, 192, 128, 37, 78, 191, 103, 134, 219, 192, 128, 37, 78, 191, 103, 134, 219, 192, 128, 37, 78, 191, 103, 134, 219, 192, 196, 18, 231, 63, 103, 134, 219, 192, 196, 18, 231, 63, 103, 134, 219, 192, 196, 18, 231, 63, 103, 134, 219, 192, 196, 18, 231, 63, 103, 134, 219, 192, 96, 137, 147, 63, 103, 134, 219, 192, 96, 137, 147, 63, 103, 134, 219, 192, 96, 137, 147, 63, 103, 134, 219, 192, 96, 137, 147, 63, 87, 69, 180, 192, 0, 0, 0, 63, 87, 69, 180, 192, 0, 0, 0, 63, 87, 69, 180, 192, 0, 0, 0, 63, 87, 69, 180, 192, 0, 0, 0, 63, 87, 69, 180, 192, 32, 75, 28, 190, 87, 69, 180, 192, 32, 75, 28, 190, 87, 69, 180, 192, 32, 75, 28, 190, 87, 69, 180, 192, 32, 75, 28, 190, 87, 69, 180, 192, 128, 37, 78, 191, 87, 69, 180, 192, 128, 37, 78, 191, 87, 69, 180, 192, 128, 37, 78, 191, 87, 69, 180, 192, 128, 37, 78, 191, 87, 69, 180, 192, 36, 156, 186, 191, 87, 69, 180, 192, 36, 156, 186, 191, 87, 69, 180, 192, 36, 156, 186, 191, 87, 69, 180, 192, 36, 156, 186, 191, 87, 69, 180, 192, 18, 78, 29, 64, 87, 69, 180, 192, 18, 78, 29, 64, 87, 69, 180, 192, 18, 78, 29, 64, 87, 69, 180, 192, 18, 78, 29, 64, 87, 69, 180, 192, 196, 18, 231, 63, 87, 69, 180, 192, 196, 18, 231, 63, 87, 69, 180, 192, 196, 18, 231, 63, 87, 69, 180, 192, 196, 18, 231, 63, 87, 69, 180, 192, 96, 137, 147, 63, 87, 69, 180, 192, 96, 137, 147, 63, 87, 69, 180, 192, 96, 137, 147, 63, 87, 69, 180, 192, 96, 137, 147, 63, 71, 4, 141, 192, 0, 0, 0, 63, 71, 4, 141, 192, 0, 0, 0, 63, 71, 4, 141, 192, 0, 0, 0, 63, 71, 4, 141, 192, 0, 0, 0, 63, 71, 4, 141, 192, 32, 75, 28, 190, 71, 4, 141, 192, 32, 75, 28, 190, 71, 4, 141, 192, 32, 75, 28, 190, 71, 4, 141, 192, 32, 75, 28, 190, 71, 4, 141, 192, 128, 37, 78, 191, 71, 4, 141, 192, 128, 37, 78, 191, 71, 4, 141, 192, 128, 37, 78, 191, 71, 4, 141, 192, 128, 37, 78, 191, 71, 4, 141, 192, 36, 156, 186, 191, 71, 4, 141, 192, 36, 156, 186, 191, 71, 4, 141, 192, 36, 156, 186, 191, 71, 4, 141, 192, 36, 156, 186, 191, 71, 4, 141, 192, 197, 18, 7, 192, 71, 4, 141, 192, 197, 18, 7, 192, 71, 4, 141, 192, 197, 18, 7, 192, 71, 4, 141, 192, 197, 18, 7, 192, 71, 4, 141, 192, 193, 18, 71, 64, 71, 4, 141, 192, 193, 18, 71, 64, 71, 4, 141, 192, 193, 18, 71, 64, 71, 4, 141, 192, 193, 18, 71, 64, 71, 4, 141, 192, 18, 78, 29, 64, 71, 4, 141, 192, 18, 78, 29, 64, 71, 4, 141, 192, 18, 78, 29, 64, 71, 4, 141, 192, 18, 78, 29, 64, 71, 4, 141, 192, 196, 18, 231, 63, 71, 4, 141, 192, 196, 18, 231, 63, 71, 4, 141, 192, 196, 18, 231, 63, 71, 4, 141, 192, 196, 18, 231, 63, 71, 4, 141, 192, 96, 137, 147, 63, 71, 4, 141, 192, 96, 137, 147, 63, 71, 4, 141, 192, 96, 137, 147, 63, 71, 4, 141, 192, 96, 137, 147, 63, 108, 134, 75, 192, 0, 0, 0, 63, 108, 134, 75, 192, 0, 0, 0, 63, 108, 134, 75, 192, 0, 0, 0, 63, 108, 134, 75, 192, 0, 0, 0, 63, 108, 134, 75, 192, 32, 75, 28, 190, 108, 134, 75, 192, 32, 75, 28, 190, 108, 134, 75, 192, 32, 75, 28, 190, 108, 134, 75, 192, 32, 75, 28, 190, 108, 134, 75, 192, 128, 37, 78, 191, 108, 134, 75, 192, 128, 37, 78, 191, 108, 134, 75, 192, 128, 37, 78, 191, 108, 134, 75, 192, 128, 37, 78, 191, 108, 134, 75, 192, 36, 156, 186, 191, 108, 134, 75, 192, 36, 156, 186, 191, 108, 134, 75, 192, 36, 156, 186, 191, 108, 134, 75, 192, 36, 156, 186, 191, 108, 134, 75, 192, 197, 18, 7, 192, 108, 134, 75, 192, 197, 18, 7, 192, 108, 134, 75, 192, 197, 18, 7, 192, 108, 134, 75, 192, 197, 18, 7, 192, 108, 134, 75, 192, 112, 215, 48, 192, 108, 134, 75, 192, 112, 215, 48, 192, 108, 134, 75, 192, 112, 215, 48, 192, 108, 134, 75, 192, 112, 215, 48, 192, 108, 134, 75, 192, 116, 215, 112, 64, 108, 134, 75, 192, 116, 215, 112, 64, 108, 134, 75, 192, 116, 215, 112, 64, 108, 134, 75, 192, 116, 215, 112, 64, 108, 134, 75, 192, 193, 18, 71, 64, 108, 134, 75, 192, 193, 18, 71, 64, 108, 134, 75, 192, 193, 18, 71, 64, 108, 134, 75, 192, 193, 18, 71, 64, 108, 134, 75, 192, 18, 78, 29, 64, 108, 134, 75, 192, 18, 78, 29, 64, 108, 134, 75, 192, 18, 78, 29, 64, 108, 134, 75, 192, 18, 78, 29, 64, 108, 134, 75, 192, 196, 18, 231, 63, 108, 134, 75, 192, 196, 18, 231, 63, 108, 134, 75, 192, 196, 18, 231, 63, 108, 134, 75, 192, 196, 18, 231, 63, 108, 134, 75, 192, 96, 137, 147, 63, 108, 134, 75, 192, 96, 137, 147, 63, 108, 134, 75, 192, 96, 137, 147, 63, 108, 134, 75, 192, 96, 137, 147, 63, 152, 8, 250, 191, 0, 0, 0, 63, 152, 8, 250, 191, 0, 0, 0, 63, 152, 8, 250, 191, 0, 0, 0, 63, 152, 8, 250, 191, 0, 0, 0, 63, 152, 8, 250, 191, 32, 75, 28, 190, 152, 8, 250, 191, 32, 75, 28, 190, 152, 8, 250, 191, 32, 75, 28, 190, 152, 8, 250, 191, 32, 75, 28, 190, 152, 8, 250, 191, 128, 37, 78, 191, 152, 8, 250, 191, 128, 37, 78, 191, 152, 8, 250, 191, 128, 37, 78, 191, 152, 8, 250, 191, 128, 37, 78, 191, 152, 8, 250, 191, 36, 156, 186, 191, 152, 8, 250, 191, 36, 156, 186, 191, 152, 8, 250, 191, 36, 156, 186, 191, 152, 8, 250, 191, 36, 156, 186, 191, 152, 8, 250, 191, 197, 18, 7, 192, 152, 8, 250, 191, 197, 18, 7, 192, 152, 8, 250, 191, 197, 18, 7, 192, 152, 8, 250, 191, 197, 18, 7, 192, 152, 8, 250, 191, 112, 215, 48, 192, 152, 8, 250, 191, 112, 215, 48, 192, 152, 8, 250, 191, 112, 215, 48, 192, 152, 8, 250, 191, 112, 215, 48, 192, 152, 8, 250, 191, 116, 215, 112, 64, 152, 8, 250, 191, 116, 215, 112, 64, 152, 8, 250, 191, 116, 215, 112, 64, 152, 8, 250, 191, 116, 215, 112, 64, 152, 8, 250, 191, 193, 18, 71, 64, 152, 8, 250, 191, 193, 18, 71, 64, 152, 8, 250, 191, 193, 18, 71, 64, 152, 8, 250, 191, 193, 18, 71, 64, 152, 8, 250, 191, 18, 78, 29, 64, 152, 8, 250, 191, 18, 78, 29, 64, 152, 8, 250, 191, 18, 78, 29, 64, 152, 8, 250, 191, 18, 78, 29, 64, 152, 8, 250, 191, 196, 18, 231, 63, 152, 8, 250, 191, 196, 18, 231, 63, 152, 8, 250, 191, 196, 18, 231, 63, 152, 8, 250, 191, 196, 18, 231, 63, 152, 8, 250, 191, 96, 137, 147, 63, 152, 8, 250, 191, 96, 137, 147, 63, 152, 8, 250, 191, 96, 137, 147, 63, 152, 8, 250, 191, 96, 137, 147, 63, 176, 8, 58, 191, 0, 0, 0, 63, 176, 8, 58, 191, 0, 0, 0, 63, 176, 8, 58, 191, 0, 0, 0, 63, 176, 8, 58, 191, 0, 0, 0, 63, 176, 8, 58, 191, 32, 75, 28, 190, 176, 8, 58, 191, 32, 75, 28, 190, 176, 8, 58, 191, 32, 75, 28, 190, 176, 8, 58, 191, 32, 75, 28, 190, 176, 8, 58, 191, 128, 37, 78, 191, 176, 8, 58, 191, 128, 37, 78, 191, 176, 8, 58, 191, 128, 37, 78, 191, 176, 8, 58, 191, 128, 37, 78, 191, 176, 8, 58, 191, 36, 156, 186, 191, 176, 8, 58, 191, 36, 156, 186, 191, 176, 8, 58, 191, 36, 156, 186, 191, 176, 8, 58, 191, 36, 156, 186, 191, 176, 8, 58, 191, 197, 18, 7, 192, 176, 8, 58, 191, 197, 18, 7, 192, 176, 8, 58, 191, 197, 18, 7, 192, 176, 8, 58, 191, 197, 18, 7, 192, 176, 8, 58, 191, 112, 215, 48, 192, 176, 8, 58, 191, 112, 215, 48, 192, 176, 8, 58, 191, 112, 215, 48, 192, 176, 8, 58, 191, 112, 215, 48, 192, 176, 8, 58, 191, 116, 215, 112, 64, 176, 8, 58, 191, 116, 215, 112, 64, 176, 8, 58, 191, 116, 215, 112, 64, 176, 8, 58, 191, 116, 215, 112, 64, 176, 8, 58, 191, 193, 18, 71, 64, 176, 8, 58, 191, 193, 18, 71, 64, 176, 8, 58, 191, 193, 18, 71, 64, 176, 8, 58, 191, 193, 18, 71, 64, 176, 8, 58, 191, 18, 78, 29, 64, 176, 8, 58, 191, 18, 78, 29, 64, 176, 8, 58, 191, 18, 78, 29, 64, 176, 8, 58, 191, 18, 78, 29, 64, 176, 8, 58, 191, 196, 18, 231, 63, 176, 8, 58, 191, 196, 18, 231, 63, 176, 8, 58, 191, 196, 18, 231, 63, 176, 8, 58, 191, 196, 18, 231, 63, 176, 8, 58, 191, 96, 137, 147, 63, 176, 8, 58, 191, 96, 137, 147, 63, 176, 8, 58, 191, 96, 137, 147, 63, 176, 8, 58, 191, 96, 137, 147, 63, 157, 255, 255, 62, 0, 0, 0, 63, 157, 255, 255, 62, 0, 0, 0, 63, 157, 255, 255, 62, 0, 0, 0, 63, 157, 255, 255, 62, 0, 0, 0, 63, 157, 255, 255, 62, 8, 75, 28, 190, 157, 255, 255, 62, 8, 75, 28, 190, 157, 255, 255, 62, 8, 75, 28, 190, 157, 255, 255, 62, 8, 75, 28, 190, 157, 255, 255, 62, 128, 37, 78, 191, 157, 255, 255, 62, 128, 37, 78, 191, 157, 255, 255, 62, 128, 37, 78, 191, 157, 255, 255, 62, 128, 37, 78, 191, 157, 255, 255, 62, 36, 156, 186, 191, 157, 255, 255, 62, 36, 156, 186, 191, 157, 255, 255, 62, 36, 156, 186, 191, 157, 255, 255, 62, 36, 156, 186, 191, 157, 255, 255, 62, 197, 18, 7, 192, 157, 255, 255, 62, 197, 18, 7, 192, 157, 255, 255, 62, 197, 18, 7, 192, 157, 255, 255, 62, 197, 18, 7, 192, 157, 255, 255, 62, 112, 215, 48, 192, 157, 255, 255, 62, 112, 215, 48, 192, 157, 255, 255, 62, 112, 215, 48, 192, 157, 255, 255, 62, 112, 215, 48, 192, 157, 255, 255, 62, 36, 156, 90, 192, 157, 255, 255, 62, 36, 156, 90, 192, 157, 255, 255, 62, 18, 78, 141, 64, 157, 255, 255, 62, 18, 78, 141, 64, 157, 255, 255, 62, 116, 215, 112, 64, 157, 255, 255, 62, 116, 215, 112, 64, 157, 255, 255, 62, 116, 215, 112, 64, 157, 255, 255, 62, 116, 215, 112, 64, 157, 255, 255, 62, 193, 18, 71, 64, 157, 255, 255, 62, 193, 18, 71, 64, 157, 255, 255, 62, 193, 18, 71, 64, 157, 255, 255, 62, 193, 18, 71, 64, 157, 255, 255, 62, 18, 78, 29, 64, 157, 255, 255, 62, 18, 78, 29, 64, 157, 255, 255, 62, 18, 78, 29, 64, 157, 255, 255, 62, 18, 78, 29, 64, 157, 255, 255, 62, 196, 18, 231, 63, 157, 255, 255, 62, 196, 18, 231, 63, 157, 255, 255, 62, 196, 18, 231, 63, 157, 255, 255, 62, 196, 18, 231, 63, 157, 255, 255, 62, 96, 137, 147, 63, 157, 255, 255, 62, 96, 137, 147, 63, 157, 255, 255, 62, 96, 137, 147, 63, 157, 255, 255, 62, 96, 137, 147, 63, 45, 4, 221, 63, 0, 0, 0, 63, 45, 4, 221, 63, 0, 0, 0, 63, 45, 4, 221, 63, 0, 0, 0, 63, 45, 4, 221, 63, 0, 0, 0, 63, 38, 4, 221, 63, 32, 75, 28, 190, 38, 4, 221, 63, 32, 75, 28, 190, 38, 4, 221, 63, 32, 75, 28, 190, 38, 4, 221, 63, 32, 75, 28, 190, 38, 4, 221, 63, 128, 37, 78, 191, 38, 4, 221, 63, 128, 37, 78, 191, 38, 4, 221, 63, 128, 37, 78, 191, 38, 4, 221, 63, 128, 37, 78, 191, 38, 4, 221, 63, 36, 156, 186, 191, 38, 4, 221, 63, 36, 156, 186, 191, 38, 4, 221, 63, 36, 156, 186, 191, 38, 4, 221, 63, 36, 156, 186, 191, 38, 4, 221, 63, 197, 18, 7, 192, 38, 4, 221, 63, 197, 18, 7, 192, 38, 4, 221, 63, 197, 18, 7, 192, 38, 4, 221, 63, 197, 18, 7, 192, 38, 4, 221, 63, 112, 215, 48, 192, 38, 4, 221, 63, 112, 215, 48, 192, 38, 4, 221, 63, 112, 215, 48, 192, 38, 4, 221, 63, 112, 215, 48, 192, 38, 4, 221, 63, 116, 215, 112, 64, 38, 4, 221, 63, 116, 215, 112, 64, 38, 4, 221, 63, 116, 215, 112, 64, 38, 4, 221, 63, 116, 215, 112, 64, 38, 4, 221, 63, 193, 18, 71, 64, 38, 4, 221, 63, 193, 18, 71, 64, 38, 4, 221, 63, 193, 18, 71, 64, 38, 4, 221, 63, 193, 18, 71, 64, 38, 4, 221, 63, 18, 78, 29, 64, 38, 4, 221, 63, 18, 78, 29, 64, 38, 4, 221, 63, 18, 78, 29, 64, 38, 4, 221, 63, 18, 78, 29, 64, 38, 4, 221, 63, 196, 18, 231, 63, 38, 4, 221, 63, 196, 18, 231, 63, 38, 4, 221, 63, 196, 18, 231, 63, 38, 4, 221, 63, 196, 18, 231, 63, 38, 4, 221, 63, 96, 137, 147, 63, 38, 4, 221, 63, 96, 137, 147, 63, 38, 4, 221, 63, 96, 137, 147, 63, 38, 4, 221, 63, 96, 137, 147, 63, 50, 4, 61, 64, 0, 0, 0, 63, 50, 4, 61, 64, 0, 0, 0, 63, 50, 4, 61, 64, 0, 0, 0, 63, 50, 4, 61, 64, 0, 0, 0, 63, 50, 4, 61, 64, 32, 75, 28, 190, 50, 4, 61, 64, 32, 75, 28, 190, 50, 4, 61, 64, 32, 75, 28, 190, 50, 4, 61, 64, 32, 75, 28, 190, 50, 4, 61, 64, 128, 37, 78, 191, 50, 4, 61, 64, 128, 37, 78, 191, 50, 4, 61, 64, 128, 37, 78, 191, 50, 4, 61, 64, 128, 37, 78, 191, 50, 4, 61, 64, 36, 156, 186, 191, 50, 4, 61, 64, 36, 156, 186, 191, 50, 4, 61, 64, 36, 156, 186, 191, 50, 4, 61, 64, 36, 156, 186, 191, 50, 4, 61, 64, 197, 18, 7, 192, 50, 4, 61, 64, 197, 18, 7, 192, 50, 4, 61, 64, 197, 18, 7, 192, 50, 4, 61, 64, 197, 18, 7, 192, 50, 4, 61, 64, 112, 215, 48, 192, 50, 4, 61, 64, 112, 215, 48, 192, 50, 4, 61, 64, 112, 215, 48, 192, 50, 4, 61, 64, 112, 215, 48, 192, 50, 4, 61, 64, 116, 215, 112, 64, 50, 4, 61, 64, 116, 215, 112, 64, 50, 4, 61, 64, 116, 215, 112, 64, 50, 4, 61, 64, 116, 215, 112, 64, 50, 4, 61, 64, 193, 18, 71, 64, 50, 4, 61, 64, 193, 18, 71, 64, 50, 4, 61, 64, 193, 18, 71, 64, 50, 4, 61, 64, 193, 18, 71, 64, 50, 4, 61, 64, 18, 78, 29, 64, 50, 4, 61, 64, 18, 78, 29, 64, 50, 4, 61, 64, 18, 78, 29, 64, 50, 4, 61, 64, 18, 78, 29, 64, 50, 4, 61, 64, 196, 18, 231, 63, 50, 4, 61, 64, 196, 18, 231, 63, 50, 4, 61, 64, 196, 18, 231, 63, 50, 4, 61, 64, 196, 18, 231, 63, 50, 4, 61, 64, 96, 137, 147, 63, 50, 4, 61, 64, 96, 137, 147, 63, 50, 4, 61, 64, 96, 137, 147, 63, 50, 4, 61, 64, 96, 137, 147, 63, 41, 195, 133, 64, 0, 0, 0, 63, 41, 195, 133, 64, 0, 0, 0, 63, 41, 195, 133, 64, 0, 0, 0, 63, 41, 195, 133, 64, 0, 0, 0, 63, 41, 195, 133, 64, 32, 75, 28, 190, 41, 195, 133, 64, 32, 75, 28, 190, 41, 195, 133, 64, 32, 75, 28, 190, 41, 195, 133, 64, 32, 75, 28, 190, 41, 195, 133, 64, 128, 37, 78, 191, 41, 195, 133, 64, 128, 37, 78, 191, 41, 195, 133, 64, 128, 37, 78, 191, 41, 195, 133, 64, 128, 37, 78, 191, 41, 195, 133, 64, 36, 156, 186, 191, 41, 195, 133, 64, 36, 156, 186, 191, 41, 195, 133, 64, 36, 156, 186, 191, 41, 195, 133, 64, 36, 156, 186, 191, 41, 195, 133, 64, 197, 18, 7, 192, 41, 195, 133, 64, 197, 18, 7, 192, 41, 195, 133, 64, 197, 18, 7, 192, 41, 195, 133, 64, 197, 18, 7, 192, 41, 195, 133, 64, 112, 215, 48, 192, 41, 195, 133, 64, 112, 215, 48, 192, 41, 195, 133, 64, 112, 215, 48, 192, 41, 195, 133, 64, 112, 215, 48, 192, 41, 195, 133, 64, 116, 215, 112, 64, 41, 195, 133, 64, 116, 215, 112, 64, 41, 195, 133, 64, 116, 215, 112, 64, 41, 195, 133, 64, 116, 215, 112, 64, 41, 195, 133, 64, 193, 18, 71, 64, 41, 195, 133, 64, 193, 18, 71, 64, 41, 195, 133, 64, 193, 18, 71, 64, 41, 195, 133, 64, 193, 18, 71, 64, 41, 195, 133, 64, 18, 78, 29, 64, 41, 195, 133, 64, 18, 78, 29, 64, 41, 195, 133, 64, 18, 78, 29, 64, 41, 195, 133, 64, 18, 78, 29, 64, 41, 195, 133, 64, 196, 18, 231, 63, 41, 195, 133, 64, 196, 18, 231, 63, 41, 195, 133, 64, 196, 18, 231, 63, 41, 195, 133, 64, 196, 18, 231, 63, 41, 195, 133, 64, 96, 137, 147, 63, 41, 195, 133, 64, 96, 137, 147, 63, 41, 195, 133, 64, 96, 137, 147, 63, 41, 195, 133, 64, 96, 137, 147, 63, 57, 4, 173, 64, 0, 0, 0, 63, 57, 4, 173, 64, 0, 0, 0, 63, 57, 4, 173, 64, 0, 0, 0, 63, 57, 4, 173, 64, 0, 0, 0, 63, 57, 4, 173, 64, 32, 75, 28, 190, 57, 4, 173, 64, 32, 75, 28, 190, 57, 4, 173, 64, 32, 75, 28, 190, 57, 4, 173, 64, 32, 75, 28, 190, 57, 4, 173, 64, 128, 37, 78, 191, 57, 4, 173, 64, 128, 37, 78, 191, 57, 4, 173, 64, 128, 37, 78, 191, 57, 4, 173, 64, 128, 37, 78, 191, 57, 4, 173, 64, 36, 156, 186, 191, 57, 4, 173, 64, 36, 156, 186, 191, 57, 4, 173, 64, 36, 156, 186, 191, 57, 4, 173, 64, 36, 156, 186, 191, 57, 4, 173, 64, 197, 18, 7, 192, 57, 4, 173, 64, 197, 18, 7, 192, 57, 4, 173, 64, 197, 18, 7, 192, 57, 4, 173, 64, 197, 18, 7, 192, 57, 4, 173, 64, 193, 18, 71, 64, 57, 4, 173, 64, 193, 18, 71, 64, 57, 4, 173, 64, 193, 18, 71, 64, 57, 4, 173, 64, 193, 18, 71, 64, 57, 4, 173, 64, 18, 78, 29, 64, 57, 4, 173, 64, 18, 78, 29, 64, 57, 4, 173, 64, 18, 78, 29, 64, 57, 4, 173, 64, 18, 78, 29, 64, 57, 4, 173, 64, 196, 18, 231, 63, 57, 4, 173, 64, 196, 18, 231, 63, 57, 4, 173, 64, 196, 18, 231, 63, 57, 4, 173, 64, 196, 18, 231, 63, 57, 4, 173, 64, 96, 137, 147, 63, 57, 4, 173, 64, 96, 137, 147, 63, 57, 4, 173, 64, 96, 137, 147, 63, 57, 4, 173, 64, 96, 137, 147, 63, 71, 69, 212, 64, 0, 0, 0, 63, 71, 69, 212, 64, 0, 0, 0, 63, 71, 69, 212, 64, 0, 0, 0, 63, 71, 69, 212, 64, 0, 0, 0, 63, 71, 69, 212, 64, 32, 75, 28, 190, 71, 69, 212, 64, 32, 75, 28, 190, 71, 69, 212, 64, 32, 75, 28, 190, 71, 69, 212, 64, 32, 75, 28, 190, 71, 69, 212, 64, 128, 37, 78, 191, 71, 69, 212, 64, 128, 37, 78, 191, 71, 69, 212, 64, 128, 37, 78, 191, 71, 69, 212, 64, 128, 37, 78, 191, 71, 69, 212, 64, 36, 156, 186, 191, 71, 69, 212, 64, 36, 156, 186, 191, 71, 69, 212, 64, 36, 156, 186, 191, 71, 69, 212, 64, 36, 156, 186, 191, 71, 69, 212, 64, 18, 78, 29, 64, 71, 69, 212, 64, 18, 78, 29, 64, 71, 69, 212, 64, 18, 78, 29, 64, 71, 69, 212, 64, 18, 78, 29, 64, 71, 69, 212, 64, 196, 18, 231, 63, 71, 69, 212, 64, 196, 18, 231, 63, 71, 69, 212, 64, 196, 18, 231, 63, 71, 69, 212, 64, 196, 18, 231, 63, 71, 69, 212, 64, 96, 137, 147, 63, 71, 69, 212, 64, 96, 137, 147, 63, 71, 69, 212, 64, 96, 137, 147, 63, 71, 69, 212, 64, 96, 137, 147, 63, 86, 134, 251, 64, 0, 0, 0, 63, 86, 134, 251, 64, 0, 0, 0, 63, 86, 134, 251, 64, 0, 0, 0, 63, 86, 134, 251, 64, 0, 0, 0, 63, 86, 134, 251, 64, 32, 75, 28, 190, 86, 134, 251, 64, 32, 75, 28, 190, 86, 134, 251, 64, 32, 75, 28, 190, 86, 134, 251, 64, 32, 75, 28, 190, 86, 134, 251, 64, 128, 37, 78, 191, 86, 134, 251, 64, 128, 37, 78, 191, 86, 134, 251, 64, 128, 37, 78, 191, 86, 134, 251, 64, 128, 37, 78, 191, 86, 134, 251, 64, 196, 18, 231, 63, 86, 134, 251, 64, 196, 18, 231, 63, 86, 134, 251, 64, 196, 18, 231, 63, 86, 134, 251, 64, 196, 18, 231, 63, 86, 134, 251, 64, 96, 137, 147, 63, 86, 134, 251, 64, 96, 137, 147, 63, 86, 134, 251, 64, 96, 137, 147, 63, 86, 134, 251, 64, 96, 137, 147, 63, 244, 167, 240, 192, 0, 0, 0, 63, 244, 167, 240, 192, 0, 0, 0, 63, 103, 248, 236, 192, 32, 75, 28, 190, 103, 248, 236, 192, 32, 75, 28, 190, 179, 221, 225, 192, 128, 37, 78, 191, 179, 221, 225, 192, 128, 37, 78, 191, 103, 134, 219, 192, 196, 31, 132, 191, 103, 134, 219, 192, 196, 31, 132, 191, 103, 134, 219, 192, 228, 15, 2, 64, 103, 134, 219, 192, 228, 15, 2, 64, 179, 221, 225, 192, 196, 18, 231, 63, 179, 221, 225, 192, 196, 18, 231, 63, 103, 248, 236, 192, 100, 137, 147, 63, 103, 248, 236, 192, 100, 137, 147, 63, 134, 71, 205, 192, 36, 156, 186, 191, 134, 71, 205, 192, 36, 156, 186, 191, 87, 69, 180, 192, 134, 206, 255, 191, 87, 69, 180, 192, 134, 206, 255, 191, 87, 69, 180, 192, 65, 231, 63, 64, 87, 69, 180, 192, 65, 231, 63, 64, 124, 71, 205, 192, 18, 78, 29, 64, 124, 71, 205, 192, 18, 78, 29, 64, 147, 192, 173, 192, 197, 18, 7, 192, 147, 192, 173, 192, 197, 18, 7, 192, 71, 4, 141, 192, 200, 150, 36, 192, 71, 4, 141, 192, 200, 150, 36, 192, 71, 4, 141, 192, 200, 150, 100, 64, 71, 4, 141, 192, 200, 150, 100, 64, 157, 192, 173, 192, 193, 18, 71, 64, 157, 192, 173, 192, 193, 18, 71, 64, 62, 150, 117, 192, 112, 215, 48, 192, 62, 150, 117, 192, 112, 215, 48, 192, 108, 134, 75, 192, 42, 144, 61, 192, 108, 134, 75, 192, 42, 144, 61, 192, 108, 134, 75, 192, 42, 144, 125, 64, 108, 134, 75, 192, 42, 144, 125, 64, 62, 150, 117, 192, 116, 215, 112, 64, 62, 150, 117, 192, 116, 215, 112, 64, 152, 8, 250, 191, 168, 246, 77, 192, 152, 8, 250, 191, 168, 246, 77, 192, 112, 8, 250, 191, 82, 251, 134, 64, 112, 8, 250, 191, 82, 251, 134, 64, 176, 8, 58, 191, 146, 124, 87, 192, 176, 8, 58, 191, 146, 124, 87, 192, 176, 8, 58, 191, 70, 190, 139, 64, 176, 8, 58, 191, 70, 190, 139, 64, 38, 4, 221, 63, 142, 124, 87, 192, 38, 4, 221, 63, 142, 124, 87, 192, 38, 4, 221, 63, 71, 190, 139, 64, 38, 4, 221, 63, 71, 190, 139, 64, 50, 4, 61, 64, 164, 246, 77, 192, 50, 4, 61, 64, 164, 246, 77, 192, 50, 4, 61, 64, 82, 251, 134, 64, 50, 4, 61, 64, 82, 251, 134, 64, 41, 195, 133, 64, 52, 144, 61, 192, 41, 195, 133, 64, 52, 144, 61, 192, 41, 195, 133, 64, 52, 144, 125, 64, 41, 195, 133, 64, 52, 144, 125, 64, 57, 4, 173, 64, 204, 150, 36, 192, 57, 4, 173, 64, 204, 150, 36, 192, 35, 203, 154, 64, 112, 215, 48, 192, 35, 203, 154, 64, 112, 215, 48, 192, 35, 203, 154, 64, 116, 215, 112, 64, 35, 203, 154, 64, 116, 215, 112, 64, 57, 4, 173, 64, 208, 150, 100, 64, 57, 4, 173, 64, 208, 150, 100, 64, 71, 69, 212, 64, 134, 206, 255, 191, 71, 69, 212, 64, 134, 206, 255, 191, 141, 192, 205, 64, 197, 18, 7, 192, 141, 192, 205, 64, 197, 18, 7, 192, 141, 192, 205, 64, 192, 18, 71, 64, 141, 192, 205, 64, 192, 18, 71, 64, 71, 69, 212, 64, 65, 231, 63, 64, 71, 69, 212, 64, 65, 231, 63, 64, 86, 134, 251, 64, 196, 31, 132, 191, 86, 134, 251, 64, 196, 31, 132, 191, 118, 71, 237, 64, 36, 156, 186, 191, 118, 71, 237, 64, 36, 156, 186, 191, 118, 71, 237, 64, 18, 78, 29, 64, 118, 71, 237, 64, 18, 78, 29, 64, 86, 134, 251, 64, 229, 15, 2, 64, 86, 134, 251, 64, 229, 15, 2, 64, 250, 83, 8, 65, 0, 0, 0, 63, 250, 83, 8, 65, 0, 0, 0, 63, 46, 124, 6, 65, 32, 75, 28, 190, 46, 124, 6, 65, 32, 75, 28, 190, 214, 238, 0, 65, 128, 37, 78, 191, 214, 238, 0, 65, 128, 37, 78, 191, 214, 238, 0, 65, 196, 18, 231, 63, 214, 238, 0, 65, 196, 18, 231, 63, 46, 124, 6, 65, 96, 137, 147, 63, 46, 124, 6, 65, 96, 137, 147, 63, 157, 255, 255, 62, 18, 78, 141, 64, 71, 4, 141, 192, 200, 150, 36, 192, 71, 4, 141, 192, 200, 150, 100, 64, 41, 195, 133, 64, 52, 144, 61, 192, 86, 134, 251, 64, 196, 31, 132, 191, 118, 71, 237, 64, 18, 78, 29, 64, 134, 71, 205, 192, 36, 156, 186, 191, 134, 71, 205, 192, 36, 156, 186, 191, 87, 69, 180, 192, 65, 231, 63, 64, 41, 195, 133, 64, 52, 144, 61, 192, 46, 124, 6, 65, 96, 137, 147, 63, 46, 124, 6, 65, 96, 137, 147, 63, 103, 248, 236, 192, 100, 137, 147, 63, 87, 69, 180, 192, 134, 206, 255, 191, 87, 69, 180, 192, 65, 231, 63, 64, 176, 8, 58, 191, 146, 124, 87, 192, 38, 4, 221, 63, 71, 190, 139, 64, 46, 124, 6, 65, 32, 75, 28, 190, 46, 124, 6, 65, 32, 75, 28, 190, 103, 248, 236, 192, 100, 137, 147, 63, 124, 71, 205, 192, 18, 78, 29, 64, 57, 4, 173, 64, 208, 150, 100, 64, 46, 124, 6, 65, 32, 75, 28, 190, 46, 124, 6, 65, 32, 75, 28, 190), +"format": 4119, "index_count": 852, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 572 -} +"index_data": PackedByteArray(225, 1, 4, 0, 2, 0, 225, 1, 226, 1, 4, 0, 227, 1, 9, 0, 7, 0, 227, 1, 228, 1, 9, 0, 229, 1, 230, 1, 10, 0, 233, 1, 234, 1, 13, 0, 235, 1, 16, 0, 14, 0, 235, 1, 236, 1, 16, 0, 237, 1, 1, 0, 19, 0, 237, 1, 224, 1, 1, 0, 3, 0, 24, 0, 22, 0, 3, 0, 5, 0, 24, 0, 6, 0, 29, 0, 27, 0, 6, 0, 8, 0, 29, 0, 238, 1, 11, 0, 231, 1, 11, 0, 33, 0, 31, 0, 11, 0, 238, 1, 33, 0, 239, 1, 240, 1, 34, 0, 243, 1, 244, 1, 37, 0, 232, 1, 39, 0, 245, 1, 39, 0, 12, 0, 41, 0, 39, 0, 232, 1, 12, 0, 15, 0, 44, 0, 42, 0, 15, 0, 17, 0, 44, 0, 18, 0, 21, 0, 47, 0, 18, 0, 0, 0, 21, 0, 23, 0, 53, 0, 51, 0, 23, 0, 25, 0, 53, 0, 26, 0, 56, 0, 54, 0, 26, 0, 28, 0, 56, 0, 30, 0, 61, 0, 59, 0, 30, 0, 32, 0, 61, 0, 246, 1, 35, 0, 241, 1, 35, 0, 65, 0, 63, 0, 35, 0, 246, 1, 65, 0, 247, 1, 248, 1, 66, 0, 250, 1, 252, 1, 68, 0, 71, 0, 36, 0, 73, 0, 36, 0, 253, 1, 242, 1, 36, 0, 71, 0, 253, 1, 38, 0, 76, 0, 74, 0, 38, 0, 40, 0, 76, 0, 43, 0, 81, 0, 79, 0, 43, 0, 45, 0, 81, 0, 46, 0, 48, 0, 82, 0, 46, 0, 20, 0, 48, 0, 50, 0, 88, 0, 86, 0, 50, 0, 52, 0, 88, 0, 55, 0, 93, 0, 91, 0, 55, 0, 57, 0, 93, 0, 58, 0, 97, 0, 95, 0, 58, 0, 60, 0, 97, 0, 62, 0, 100, 0, 98, 0, 62, 0, 64, 0, 100, 0, 254, 1, 67, 0, 249, 1, 67, 0, 105, 0, 103, 0, 67, 0, 254, 1, 105, 0, 255, 1, 0, 2, 106, 0, 3, 2, 4, 2, 109, 0, 110, 0, 69, 0, 112, 0, 69, 0, 5, 2, 251, 1, 69, 0, 110, 0, 5, 2, 70, 0, 117, 0, 115, 0, 70, 0, 72, 0, 117, 0, 75, 0, 120, 0, 118, 0, 75, 0, 77, 0, 120, 0, 78, 0, 124, 0, 122, 0, 78, 0, 80, 0, 124, 0, 83, 0, 84, 0, 126, 0, 83, 0, 49, 0, 84, 0, 87, 0, 133, 0, 131, 0, 87, 0, 89, 0, 133, 0, 90, 0, 137, 0, 135, 0, 90, 0, 92, 0, 137, 0, 94, 0, 140, 0, 138, 0, 94, 0, 96, 0, 140, 0, 99, 0, 145, 0, 143, 0, 99, 0, 101, 0, 145, 0, 102, 0, 148, 0, 146, 0, 102, 0, 104, 0, 148, 0, 1, 2, 150, 0, 107, 0, 1, 2, 6, 2, 150, 0, 152, 0, 2, 2, 108, 0, 152, 0, 8, 2, 2, 2, 111, 0, 157, 0, 155, 0, 111, 0, 113, 0, 157, 0, 114, 0, 160, 0, 158, 0, 114, 0, 116, 0, 160, 0, 119, 0, 165, 0, 163, 0, 119, 0, 121, 0, 165, 0, 123, 0, 168, 0, 166, 0, 123, 0, 125, 0, 168, 0, 127, 0, 128, 0, 170, 0, 127, 0, 85, 0, 128, 0, 130, 0, 176, 0, 174, 0, 130, 0, 132, 0, 176, 0, 134, 0, 181, 0, 179, 0, 134, 0, 136, 0, 181, 0, 139, 0, 184, 0, 182, 0, 139, 0, 141, 0, 184, 0, 142, 0, 189, 0, 187, 0, 142, 0, 144, 0, 189, 0, 147, 0, 192, 0, 190, 0, 147, 0, 149, 0, 192, 0, 7, 2, 195, 0, 151, 0, 7, 2, 11, 2, 195, 0, 13, 2, 153, 0, 197, 0, 13, 2, 9, 2, 153, 0, 154, 0, 201, 0, 199, 0, 154, 0, 156, 0, 201, 0, 159, 0, 204, 0, 202, 0, 159, 0, 161, 0, 204, 0, 162, 0, 209, 0, 207, 0, 162, 0, 164, 0, 209, 0, 167, 0, 212, 0, 210, 0, 167, 0, 169, 0, 212, 0, 171, 0, 172, 0, 214, 0, 171, 0, 129, 0, 172, 0, 175, 0, 221, 0, 219, 0, 175, 0, 177, 0, 221, 0, 178, 0, 224, 0, 222, 0, 178, 0, 180, 0, 224, 0, 183, 0, 229, 0, 227, 0, 183, 0, 185, 0, 229, 0, 186, 0, 232, 0, 230, 0, 186, 0, 188, 0, 232, 0, 191, 0, 237, 0, 235, 0, 191, 0, 193, 0, 237, 0, 10, 2, 239, 0, 194, 0, 10, 2, 241, 0, 239, 0, 245, 0, 12, 2, 196, 0, 245, 0, 243, 0, 12, 2, 198, 0, 248, 0, 246, 0, 198, 0, 200, 0, 248, 0, 203, 0, 253, 0, 251, 0, 203, 0, 205, 0, 253, 0, 206, 0, 0, 1, 254, 0, 206, 0, 208, 0, 0, 1, 211, 0, 4, 1, 2, 1, 211, 0, 213, 0, 4, 1, 215, 0, 217, 0, 7, 1, 215, 0, 173, 0, 217, 0, 218, 0, 13, 1, 11, 1, 218, 0, 220, 0, 13, 1, 223, 0, 16, 1, 14, 1, 223, 0, 225, 0, 16, 1, 226, 0, 21, 1, 19, 1, 226, 0, 228, 0, 21, 1, 231, 0, 25, 1, 23, 1, 231, 0, 233, 0, 25, 1, 234, 0, 28, 1, 26, 1, 234, 0, 236, 0, 28, 1, 240, 0, 30, 1, 238, 0, 240, 0, 14, 2, 30, 1, 32, 1, 242, 0, 244, 0, 32, 1, 16, 2, 242, 0, 247, 0, 36, 1, 34, 1, 247, 0, 249, 0, 36, 1, 250, 0, 41, 1, 39, 1, 250, 0, 252, 0, 41, 1, 255, 0, 44, 1, 42, 1, 255, 0, 1, 1, 44, 1, 3, 1, 49, 1, 47, 1, 3, 1, 5, 1, 49, 1, 6, 1, 8, 1, 50, 1, 6, 1, 216, 0, 8, 1, 10, 1, 56, 1, 54, 1, 10, 1, 12, 1, 56, 1, 15, 1, 61, 1, 59, 1, 15, 1, 17, 1, 61, 1, 18, 1, 65, 1, 63, 1, 18, 1, 20, 1, 65, 1, 22, 1, 68, 1, 66, 1, 22, 1, 24, 1, 68, 1, 27, 1, 73, 1, 71, 1, 27, 1, 29, 1, 73, 1, 15, 2, 75, 1, 31, 1, 15, 2, 19, 2, 75, 1, 77, 1, 17, 2, 33, 1, 77, 1, 21, 2, 17, 2, 35, 1, 81, 1, 79, 1, 35, 1, 37, 1, 81, 1, 38, 1, 85, 1, 83, 1, 38, 1, 40, 1, 85, 1, 43, 1, 88, 1, 86, 1, 43, 1, 45, 1, 88, 1, 46, 1, 92, 1, 90, 1, 46, 1, 48, 1, 92, 1, 51, 1, 53, 1, 95, 1, 51, 1, 9, 1, 53, 1, 55, 1, 101, 1, 99, 1, 55, 1, 57, 1, 101, 1, 58, 1, 105, 1, 103, 1, 58, 1, 60, 1, 105, 1, 62, 1, 108, 1, 106, 1, 62, 1, 64, 1, 108, 1, 67, 1, 113, 1, 111, 1, 67, 1, 69, 1, 113, 1, 70, 1, 116, 1, 114, 1, 70, 1, 72, 1, 116, 1, 18, 2, 119, 1, 74, 1, 18, 2, 23, 2, 119, 1, 120, 1, 20, 2, 76, 1, 120, 1, 24, 2, 20, 2, 78, 1, 125, 1, 123, 1, 78, 1, 80, 1, 125, 1, 82, 1, 128, 1, 126, 1, 82, 1, 84, 1, 128, 1, 87, 1, 133, 1, 131, 1, 87, 1, 89, 1, 133, 1, 91, 1, 136, 1, 134, 1, 91, 1, 93, 1, 136, 1, 94, 1, 96, 1, 138, 1, 94, 1, 52, 1, 96, 1, 98, 1, 145, 1, 143, 1, 98, 1, 100, 1, 145, 1, 102, 1, 149, 1, 147, 1, 102, 1, 104, 1, 149, 1, 107, 1, 152, 1, 150, 1, 107, 1, 109, 1, 152, 1, 110, 1, 156, 1, 154, 1, 110, 1, 112, 1, 156, 1, 117, 1, 158, 1, 115, 1, 158, 1, 28, 2, 26, 2, 158, 1, 117, 1, 28, 2, 22, 2, 29, 2, 118, 1, 25, 2, 121, 1, 30, 2, 33, 2, 124, 1, 161, 1, 124, 1, 31, 2, 122, 1, 124, 1, 33, 2, 31, 2, 127, 1, 165, 1, 163, 1, 127, 1, 129, 1, 165, 1, 130, 1, 169, 1, 167, 1, 130, 1, 132, 1, 169, 1, 135, 1, 172, 1, 170, 1, 135, 1, 137, 1, 172, 1, 139, 1, 140, 1, 174, 1, 139, 1, 97, 1, 140, 1, 142, 1, 181, 1, 179, 1, 142, 1, 144, 1, 181, 1, 146, 1, 184, 1, 182, 1, 146, 1, 148, 1, 184, 1, 151, 1, 189, 1, 187, 1, 151, 1, 153, 1, 189, 1, 157, 1, 191, 1, 155, 1, 191, 1, 36, 2, 35, 2, 191, 1, 157, 1, 36, 2, 27, 2, 37, 2, 159, 1, 32, 2, 160, 1, 38, 2, 40, 2, 164, 1, 192, 1, 164, 1, 39, 2, 162, 1, 164, 1, 40, 2, 39, 2, 166, 1, 196, 1, 194, 1, 166, 1, 168, 1, 196, 1, 171, 1, 201, 1, 199, 1, 171, 1, 173, 1, 201, 1, 175, 1, 176, 1, 202, 1, 175, 1, 141, 1, 176, 1, 178, 1, 209, 1, 207, 1, 178, 1, 180, 1, 209, 1, 183, 1, 212, 1, 210, 1, 183, 1, 185, 1, 212, 1, 43, 2, 188, 1, 44, 2, 188, 1, 215, 1, 186, 1, 188, 1, 43, 2, 215, 1, 34, 2, 45, 2, 190, 1, 41, 2, 193, 1, 46, 2, 47, 2, 216, 1, 48, 2, 216, 1, 195, 1, 197, 1, 216, 1, 47, 2, 195, 1, 198, 1, 221, 1, 219, 1, 198, 1, 200, 1, 221, 1, 203, 1, 204, 1, 222, 1, 203, 1, 177, 1, 204, 1, 52, 2, 206, 1, 208, 1, 52, 2, 51, 2, 206, 1, 54, 2, 211, 1, 213, 1, 54, 2, 53, 2, 211, 1, 214, 1, 42, 2, 55, 2, 56, 2, 49, 2, 217, 1, 58, 2, 218, 1, 220, 1, 58, 2, 57, 2, 218, 1, 50, 2, 223, 1, 205, 1, 50, 2, 59, 2, 223, 1), +"lods": [0.280658, PackedByteArray(226, 1, 228, 1, 8, 0, 228, 1, 230, 1, 8, 0, 238, 1, 8, 0, 230, 1, 226, 1, 8, 0, 24, 0, 224, 1, 226, 1, 24, 0, 8, 0, 238, 1, 246, 1, 238, 1, 240, 1, 246, 1, 8, 0, 96, 0, 24, 0, 8, 0, 246, 1, 96, 0, 224, 1, 24, 0, 20, 0, 20, 0, 24, 0, 96, 0, 236, 1, 224, 1, 20, 0, 246, 1, 248, 1, 254, 1, 246, 1, 254, 1, 96, 0, 236, 1, 20, 0, 88, 0, 20, 0, 96, 0, 88, 0, 96, 0, 254, 1, 148, 0, 0, 2, 148, 0, 254, 1, 0, 2, 6, 2, 148, 0, 6, 2, 10, 2, 148, 0, 96, 0, 148, 0, 188, 0, 10, 2, 28, 1, 148, 0, 188, 0, 148, 0, 28, 1, 10, 2, 240, 0, 28, 1, 96, 0, 188, 0, 184, 0, 184, 0, 188, 0, 28, 1, 240, 0, 14, 2, 28, 1, 96, 0, 184, 0, 180, 0, 184, 0, 28, 1, 180, 0, 88, 0, 96, 0, 180, 0, 14, 2, 68, 1, 28, 1, 180, 0, 28, 1, 68, 1, 14, 2, 18, 2, 68, 1, 18, 2, 28, 2, 68, 1, 18, 2, 22, 2, 28, 2, 68, 1, 28, 2, 64, 1, 180, 0, 68, 1, 64, 1, 28, 2, 156, 1, 64, 1, 156, 1, 28, 2, 26, 2, 26, 2, 36, 2, 156, 1, 188, 1, 156, 1, 36, 2, 188, 1, 36, 2, 34, 2, 34, 2, 44, 2, 188, 1, 42, 2, 188, 1, 44, 2, 188, 1, 42, 2, 212, 1, 212, 1, 42, 2, 54, 2, 54, 2, 52, 2, 212, 1, 148, 1, 188, 1, 212, 1, 148, 1, 156, 1, 188, 1, 100, 1, 212, 1, 52, 2, 100, 1, 148, 1, 212, 1, 96, 1, 100, 1, 52, 2, 96, 1, 52, 2, 50, 2, 56, 1, 148, 1, 100, 1, 60, 1, 156, 1, 148, 1, 56, 1, 60, 1, 148, 1, 60, 1, 64, 1, 156, 1, 48, 1, 56, 1, 100, 1, 48, 1, 100, 1, 96, 1, 216, 0, 60, 1, 56, 1, 224, 0, 64, 1, 60, 1, 216, 0, 224, 0, 60, 1, 224, 0, 180, 0, 64, 1, 176, 0, 224, 0, 216, 0, 176, 0, 180, 0, 224, 0, 4, 1, 216, 0, 56, 1, 4, 1, 56, 1, 48, 1, 4, 1, 176, 0, 216, 0, 132, 0, 180, 0, 176, 0, 88, 0, 180, 0, 132, 0, 88, 0, 132, 0, 176, 0, 76, 0, 88, 0, 176, 0, 76, 0, 176, 0, 4, 1, 40, 0, 88, 0, 76, 0, 236, 1, 88, 0, 40, 0, 234, 1, 236, 1, 40, 0, 36, 0, 234, 1, 40, 0, 36, 0, 40, 0, 76, 0, 36, 0, 232, 1, 234, 1, 232, 1, 36, 0, 244, 1, 242, 1, 244, 1, 36, 0, 36, 0, 252, 1, 242, 1, 36, 0, 76, 0, 164, 0, 164, 0, 76, 0, 4, 1, 36, 0, 68, 0, 252, 1, 250, 1, 252, 1, 68, 0, 36, 0, 164, 0, 160, 0, 68, 0, 36, 0, 160, 0, 160, 0, 164, 0, 4, 1, 68, 0, 4, 2, 250, 1, 4, 2, 68, 0, 160, 0, 4, 2, 8, 2, 2, 2, 12, 2, 8, 2, 4, 2, 12, 2, 4, 2, 32, 1, 4, 2, 160, 0, 32, 1, 32, 1, 242, 0, 12, 2, 32, 1, 16, 2, 242, 0, 32, 1, 20, 2, 16, 2, 30, 2, 20, 2, 32, 1, 30, 2, 24, 2, 20, 2, 32, 1, 160, 0, 252, 0, 160, 0, 4, 1, 252, 0, 32, 1, 124, 1, 30, 2, 32, 1, 252, 0, 124, 1, 124, 1, 32, 2, 30, 2, 32, 2, 124, 1, 38, 2, 124, 1, 164, 1, 38, 2, 164, 1, 40, 2, 38, 2, 252, 0, 84, 1, 124, 1, 252, 0, 4, 1, 84, 1, 124, 1, 84, 1, 164, 1, 40, 2, 164, 1, 46, 2, 4, 1, 92, 1, 84, 1, 4, 1, 48, 1, 92, 1, 92, 1, 48, 1, 96, 1, 84, 1, 92, 1, 168, 1, 84, 1, 168, 1, 164, 1, 92, 1, 96, 1, 168, 1, 164, 1, 216, 1, 46, 2, 164, 1, 168, 1, 216, 1, 46, 2, 216, 1, 48, 2, 56, 2, 48, 2, 216, 1, 58, 2, 56, 2, 216, 1, 168, 1, 96, 1, 200, 1, 168, 1, 200, 1, 216, 1, 216, 1, 200, 1, 58, 2, 200, 1, 96, 1, 50, 2, 200, 1, 50, 2, 58, 2), 0.614485, PackedByteArray(224, 1, 226, 1, 88, 0, 236, 1, 224, 1, 88, 0, 226, 1, 228, 1, 88, 0, 236, 1, 88, 0, 234, 1, 238, 1, 228, 1, 230, 1, 228, 1, 238, 1, 246, 1, 238, 1, 240, 1, 246, 1, 228, 1, 96, 0, 88, 0, 228, 1, 246, 1, 96, 0, 234, 1, 88, 0, 176, 0, 88, 0, 96, 0, 176, 0, 246, 1, 248, 1, 254, 1, 246, 1, 254, 1, 96, 0, 96, 0, 254, 1, 6, 2, 0, 2, 6, 2, 254, 1, 96, 0, 6, 2, 14, 2, 10, 2, 14, 2, 6, 2, 10, 2, 240, 0, 14, 2, 96, 0, 14, 2, 60, 1, 176, 0, 96, 0, 60, 1, 60, 1, 14, 2, 36, 2, 56, 1, 176, 0, 60, 1, 60, 1, 36, 2, 56, 1, 14, 2, 28, 2, 36, 2, 18, 2, 28, 2, 14, 2, 18, 2, 22, 2, 28, 2, 36, 2, 28, 2, 26, 2, 44, 2, 36, 2, 34, 2, 56, 1, 36, 2, 44, 2, 44, 2, 42, 2, 54, 2, 56, 1, 44, 2, 54, 2, 56, 1, 54, 2, 52, 2, 50, 2, 56, 1, 52, 2, 4, 1, 176, 0, 56, 1, 4, 1, 56, 1, 50, 2, 234, 1, 176, 0, 4, 1, 4, 1, 50, 2, 168, 1, 168, 1, 50, 2, 58, 2, 252, 1, 234, 1, 4, 1, 252, 1, 232, 1, 234, 1, 232, 1, 252, 1, 244, 1, 242, 1, 244, 1, 252, 1, 56, 2, 168, 1, 58, 2, 252, 0, 4, 1, 168, 1, 252, 1, 4, 1, 252, 0, 250, 1, 252, 1, 4, 2, 4, 2, 252, 1, 252, 0, 4, 2, 252, 0, 2, 2, 46, 2, 56, 2, 48, 2, 38, 2, 56, 2, 46, 2, 38, 2, 168, 1, 56, 2, 40, 2, 38, 2, 46, 2, 30, 2, 168, 1, 38, 2, 252, 0, 168, 1, 30, 2, 32, 2, 30, 2, 38, 2, 2, 2, 252, 0, 32, 1, 32, 1, 252, 0, 30, 2, 12, 2, 8, 2, 2, 2, 12, 2, 2, 2, 32, 1, 32, 1, 242, 0, 12, 2, 32, 1, 16, 2, 242, 0, 32, 1, 20, 2, 16, 2, 30, 2, 20, 2, 32, 1, 30, 2, 24, 2, 20, 2), 1.83976, PackedByteArray(238, 1, 228, 1, 230, 1, 228, 1, 238, 1, 246, 1, 238, 1, 240, 1, 246, 1, 228, 1, 246, 1, 79, 2, 79, 2, 246, 1, 82, 2, 80, 2, 79, 2, 82, 2, 0, 2, 6, 2, 246, 1, 246, 1, 6, 2, 240, 0, 10, 2, 240, 0, 6, 2, 246, 1, 240, 0, 83, 2, 44, 2, 42, 2, 82, 2, 82, 2, 34, 2, 44, 2, 82, 2, 240, 0, 34, 2, 240, 0, 28, 2, 34, 2, 34, 2, 28, 2, 26, 2, 18, 2, 28, 2, 240, 0, 18, 2, 22, 2, 28, 2, 80, 2, 82, 2, 81, 2, 81, 2, 82, 2, 50, 2, 81, 2, 50, 2, 58, 2, 242, 1, 80, 2, 81, 2, 56, 2, 81, 2, 58, 2, 81, 2, 56, 2, 46, 2, 46, 2, 56, 2, 48, 2, 40, 2, 81, 2, 46, 2, 2, 2, 242, 1, 81, 2, 250, 1, 242, 1, 2, 2, 2, 2, 81, 2, 20, 2, 12, 2, 2, 2, 20, 2, 12, 2, 8, 2, 2, 2, 20, 2, 242, 0, 12, 2, 20, 2, 16, 2, 242, 0), 1.90169, PackedByteArray(62, 2, 61, 2, 64, 2, 62, 2, 64, 2, 60, 2, 65, 2, 60, 2, 64, 2, 42, 2, 61, 2, 63, 2), 2.01908, PackedByteArray(8, 2, 68, 2, 16, 2, 12, 2, 8, 2, 16, 2, 16, 2, 242, 0, 12, 2, 16, 2, 68, 2, 70, 2, 68, 2, 67, 2, 70, 2, 46, 2, 16, 2, 70, 2, 66, 2, 0, 2, 69, 2, 66, 2, 69, 2, 71, 2)], +"material": SubResource("StandardMaterial3D_sgl8b"), +"primitive": 3, +"vertex_count": 596, +"vertex_data": PackedByteArray(162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 7, 73, 204, 244, 255, 127, 251, 215, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 45, 67, 255, 244, 255, 127, 63, 219, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 209, 188, 255, 244, 255, 127, 63, 219, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 192, 247, 182, 204, 244, 255, 127, 251, 215, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 209, 188, 255, 244, 255, 127, 63, 219, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 247, 182, 204, 244, 255, 127, 251, 215, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 130, 194, 86, 226, 255, 127, 251, 215, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 192, 71, 199, 200, 226, 255, 127, 63, 219, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 130, 194, 86, 226, 255, 127, 251, 215, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 71, 199, 200, 226, 255, 127, 63, 219, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 132, 208, 177, 210, 255, 127, 63, 219, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 192, 166, 204, 30, 210, 255, 127, 251, 215, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 88, 51, 30, 210, 255, 127, 251, 215, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 122, 47, 177, 210, 255, 127, 63, 219, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 183, 56, 200, 226, 255, 127, 63, 219, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 192, 124, 61, 86, 226, 255, 127, 251, 215, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 183, 56, 200, 226, 255, 127, 63, 219, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 124, 61, 86, 226, 255, 127, 251, 215, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 7, 73, 204, 244, 255, 127, 251, 215, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 192, 45, 67, 255, 244, 255, 127, 63, 219, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 22, 79, 125, 244, 255, 127, 140, 212, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 7, 73, 204, 244, 255, 127, 251, 215, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 247, 182, 204, 244, 255, 127, 251, 215, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 192, 232, 176, 125, 244, 255, 127, 140, 212, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 247, 182, 204, 244, 255, 127, 251, 215, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 232, 176, 125, 244, 255, 127, 140, 212, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 178, 189, 167, 225, 255, 127, 140, 212, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 192, 130, 194, 86, 226, 255, 127, 251, 215, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 178, 189, 167, 225, 255, 127, 140, 212, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 130, 194, 86, 226, 255, 127, 251, 215, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 215, 200, 60, 209, 255, 127, 140, 212, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 192, 166, 204, 30, 210, 255, 127, 251, 215, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 215, 200, 60, 209, 255, 127, 140, 212, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 166, 204, 30, 210, 255, 127, 251, 215, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 238, 214, 173, 193, 255, 127, 251, 215, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 192, 13, 212, 185, 192, 255, 127, 140, 212, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 241, 43, 185, 192, 255, 127, 140, 212, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 16, 41, 173, 193, 255, 127, 251, 215, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 39, 55, 60, 209, 255, 127, 140, 212, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 192, 88, 51, 30, 210, 255, 127, 251, 215, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 39, 55, 60, 209, 255, 127, 140, 212, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 88, 51, 30, 210, 255, 127, 251, 215, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 124, 61, 86, 226, 255, 127, 251, 215, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 192, 76, 66, 167, 225, 255, 127, 140, 212, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 124, 61, 86, 226, 255, 127, 251, 215, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 76, 66, 167, 225, 255, 127, 140, 212, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 22, 79, 125, 244, 255, 127, 140, 212, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 192, 7, 73, 204, 244, 255, 127, 251, 215, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 22, 79, 125, 244, 255, 127, 140, 212, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 121, 85, 14, 244, 255, 127, 220, 208, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 133, 170, 14, 244, 255, 127, 220, 208, 160, 11, 106, 181, 16, 53, 198, 63, 202, 18, 153, 192, 232, 176, 125, 244, 255, 127, 140, 212, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 133, 170, 14, 244, 255, 127, 220, 208, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 232, 176, 125, 244, 255, 127, 140, 212, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 178, 189, 167, 225, 255, 127, 140, 212, 218, 164, 37, 63, 40, 34, 188, 63, 188, 7, 152, 192, 198, 184, 179, 224, 255, 127, 220, 208, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 178, 189, 167, 225, 255, 127, 140, 212, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 198, 184, 179, 224, 255, 127, 220, 208, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 15, 197, 5, 208, 255, 127, 220, 208, 249, 255, 159, 63, 72, 153, 158, 63, 200, 248, 148, 192, 215, 200, 60, 209, 255, 127, 140, 212, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 15, 197, 5, 208, 255, 127, 220, 208, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 215, 200, 60, 209, 255, 127, 140, 212, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 73, 209, 107, 191, 255, 127, 220, 208, 40, 70, 226, 63, 64, 59, 95, 63, 72, 27, 144, 192, 13, 212, 185, 192, 255, 127, 140, 212, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 73, 209, 107, 191, 255, 127, 220, 208, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 13, 212, 185, 192, 255, 127, 140, 212, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 20, 225, 136, 173, 255, 127, 140, 212, 99, 144, 10, 64, 192, 139, 201, 62, 28, 196, 137, 192, 85, 223, 88, 172, 255, 127, 220, 208, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 234, 30, 136, 173, 255, 127, 140, 212, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 169, 32, 88, 172, 255, 127, 220, 208, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 181, 46, 107, 191, 255, 127, 220, 208, 106, 144, 10, 192, 192, 139, 201, 62, 28, 196, 137, 192, 241, 43, 185, 192, 255, 127, 140, 212, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 181, 46, 107, 191, 255, 127, 220, 208, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 241, 43, 185, 192, 255, 127, 140, 212, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 39, 55, 60, 209, 255, 127, 140, 212, 55, 70, 226, 191, 64, 59, 95, 63, 72, 27, 144, 192, 239, 58, 5, 208, 255, 127, 220, 208, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 39, 55, 60, 209, 255, 127, 140, 212, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 239, 58, 5, 208, 255, 127, 220, 208, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 56, 71, 179, 224, 255, 127, 220, 208, 8, 0, 160, 191, 72, 153, 158, 63, 200, 248, 148, 192, 76, 66, 167, 225, 255, 127, 140, 212, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 56, 71, 179, 224, 255, 127, 220, 208, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 76, 66, 167, 225, 255, 127, 140, 212, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 22, 79, 125, 244, 255, 127, 140, 212, 248, 164, 37, 191, 40, 34, 188, 63, 188, 7, 152, 192, 121, 85, 14, 244, 255, 127, 220, 208, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 121, 85, 14, 244, 255, 127, 220, 208, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 89, 92, 122, 243, 255, 127, 209, 204, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 133, 170, 14, 244, 255, 127, 220, 208, 175, 107, 114, 181, 192, 26, 251, 63, 90, 58, 104, 192, 165, 163, 122, 243, 255, 127, 209, 204, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 133, 170, 14, 244, 255, 127, 220, 208, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 165, 163, 122, 243, 255, 127, 209, 204, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 171, 179, 113, 223, 255, 127, 209, 204, 218, 164, 37, 63, 144, 171, 240, 63, 54, 165, 102, 192, 198, 184, 179, 224, 255, 127, 220, 208, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 171, 179, 113, 223, 255, 127, 209, 204, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 198, 184, 179, 224, 255, 127, 220, 208, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 68, 193, 111, 206, 255, 127, 209, 204, 248, 255, 159, 63, 32, 20, 210, 63, 99, 1, 98, 192, 15, 197, 5, 208, 255, 127, 220, 208, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 68, 193, 111, 206, 255, 127, 209, 204, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 15, 197, 5, 208, 255, 127, 220, 208, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 73, 209, 107, 191, 255, 127, 220, 208, 40, 70, 226, 63, 16, 106, 161, 63, 213, 159, 90, 192, 158, 206, 189, 189, 255, 127, 209, 204, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 73, 209, 107, 191, 255, 127, 220, 208, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 158, 206, 189, 189, 255, 127, 209, 204, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 188, 221, 214, 170, 255, 127, 209, 204, 99, 144, 10, 64, 224, 252, 67, 63, 81, 1, 81, 192, 85, 223, 88, 172, 255, 127, 220, 208, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 188, 221, 214, 170, 255, 127, 209, 204, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 85, 223, 88, 172, 255, 127, 220, 208, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 102, 242, 116, 146, 255, 127, 220, 208, 79, 140, 26, 64, 64, 29, 65, 62, 169, 205, 69, 192, 226, 241, 164, 145, 255, 127, 209, 204, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 28, 14, 164, 145, 255, 127, 209, 204, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 152, 13, 116, 146, 255, 127, 220, 208, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 169, 32, 88, 172, 255, 127, 220, 208, 85, 140, 26, 192, 64, 29, 65, 62, 169, 205, 69, 192, 66, 34, 214, 170, 255, 127, 209, 204, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 169, 32, 88, 172, 255, 127, 220, 208, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 66, 34, 214, 170, 255, 127, 209, 204, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 96, 49, 189, 189, 255, 127, 209, 204, 106, 144, 10, 192, 224, 252, 67, 63, 81, 1, 81, 192, 181, 46, 107, 191, 255, 127, 220, 208, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 96, 49, 189, 189, 255, 127, 209, 204, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 181, 46, 107, 191, 255, 127, 220, 208, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 239, 58, 5, 208, 255, 127, 220, 208, 55, 70, 226, 191, 16, 106, 161, 63, 213, 159, 90, 192, 186, 62, 111, 206, 255, 127, 209, 204, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 239, 58, 5, 208, 255, 127, 220, 208, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 186, 62, 111, 206, 255, 127, 209, 204, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 56, 71, 179, 224, 255, 127, 220, 208, 8, 0, 160, 191, 32, 20, 210, 63, 99, 1, 98, 192, 83, 76, 113, 223, 255, 127, 209, 204, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 56, 71, 179, 224, 255, 127, 220, 208, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 83, 76, 113, 223, 255, 127, 209, 204, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 121, 85, 14, 244, 255, 127, 220, 208, 248, 164, 37, 191, 144, 171, 240, 63, 54, 165, 102, 192, 89, 92, 122, 243, 255, 127, 209, 204, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 89, 92, 122, 243, 255, 127, 209, 204, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 230, 99, 183, 242, 255, 127, 67, 200, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 24, 156, 183, 242, 255, 127, 67, 200, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 192, 165, 163, 122, 243, 255, 127, 209, 204, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 24, 156, 183, 242, 255, 127, 67, 200, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 165, 163, 122, 243, 255, 127, 209, 204, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 74, 174, 210, 221, 255, 127, 67, 200, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 192, 171, 179, 113, 223, 255, 127, 209, 204, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 74, 174, 210, 221, 255, 127, 67, 200, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 171, 179, 113, 223, 255, 127, 209, 204, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 68, 193, 111, 206, 255, 127, 209, 204, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 192, 112, 189, 109, 204, 255, 127, 67, 200, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 68, 193, 111, 206, 255, 127, 209, 204, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 112, 189, 109, 204, 255, 127, 67, 200, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 13, 204, 165, 187, 255, 127, 67, 200, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 192, 158, 206, 189, 189, 255, 127, 209, 204, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 13, 204, 165, 187, 255, 127, 67, 200, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 158, 206, 189, 189, 255, 127, 209, 204, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 188, 221, 214, 170, 255, 127, 209, 204, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 192, 77, 220, 252, 168, 255, 127, 67, 200, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 188, 221, 214, 170, 255, 127, 209, 204, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 77, 220, 252, 168, 255, 127, 67, 200, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 226, 241, 164, 145, 255, 127, 209, 204, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 192, 123, 241, 170, 144, 255, 127, 67, 200, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 28, 14, 164, 145, 255, 127, 209, 204, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 132, 14, 170, 144, 255, 127, 67, 200, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 177, 35, 252, 168, 255, 127, 67, 200, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 192, 66, 34, 214, 170, 255, 127, 209, 204, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 177, 35, 252, 168, 255, 127, 67, 200, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 66, 34, 214, 170, 255, 127, 209, 204, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 96, 49, 189, 189, 255, 127, 209, 204, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 192, 241, 51, 165, 187, 255, 127, 67, 200, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 96, 49, 189, 189, 255, 127, 209, 204, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 241, 51, 165, 187, 255, 127, 67, 200, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 142, 66, 109, 204, 255, 127, 67, 200, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 192, 186, 62, 111, 206, 255, 127, 209, 204, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 142, 66, 109, 204, 255, 127, 67, 200, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 186, 62, 111, 206, 255, 127, 209, 204, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 83, 76, 113, 223, 255, 127, 209, 204, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 192, 180, 81, 210, 221, 255, 127, 67, 200, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 83, 76, 113, 223, 255, 127, 209, 204, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 180, 81, 210, 221, 255, 127, 67, 200, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 89, 92, 122, 243, 255, 127, 209, 204, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 192, 230, 99, 183, 242, 255, 127, 67, 200, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 230, 99, 183, 242, 255, 127, 67, 200, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 102, 108, 185, 241, 255, 127, 254, 194, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 24, 156, 183, 242, 255, 127, 67, 200, 237, 27, 124, 181, 216, 37, 28, 64, 180, 211, 156, 191, 152, 147, 185, 241, 255, 127, 254, 194, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 24, 156, 183, 242, 255, 127, 67, 200, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 152, 147, 185, 241, 255, 127, 254, 194, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 134, 168, 195, 219, 255, 127, 254, 194, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 191, 74, 174, 210, 221, 255, 127, 67, 200, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 134, 168, 195, 219, 255, 127, 254, 194, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 74, 174, 210, 221, 255, 127, 67, 200, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 112, 189, 109, 204, 255, 127, 67, 200, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 191, 135, 185, 236, 201, 255, 127, 254, 194, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 112, 189, 109, 204, 255, 127, 67, 200, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 135, 185, 236, 201, 255, 127, 254, 194, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 149, 201, 21, 185, 255, 127, 254, 194, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 191, 13, 204, 165, 187, 255, 127, 67, 200, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 149, 201, 21, 185, 255, 127, 254, 194, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 13, 204, 165, 187, 255, 127, 67, 200, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 77, 220, 252, 168, 255, 127, 67, 200, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 191, 9, 219, 197, 166, 255, 127, 254, 194, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 77, 220, 252, 168, 255, 127, 67, 200, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 9, 219, 197, 166, 255, 127, 254, 194, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 48, 241, 136, 143, 255, 127, 254, 194, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 191, 123, 241, 170, 144, 255, 127, 67, 200, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 206, 14, 136, 143, 255, 127, 254, 194, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 132, 14, 170, 144, 255, 127, 67, 200, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 245, 36, 197, 166, 255, 127, 254, 194, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 191, 177, 35, 252, 168, 255, 127, 67, 200, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 245, 36, 197, 166, 255, 127, 254, 194, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 177, 35, 252, 168, 255, 127, 67, 200, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 241, 51, 165, 187, 255, 127, 67, 200, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 191, 105, 54, 21, 185, 255, 127, 254, 194, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 241, 51, 165, 187, 255, 127, 67, 200, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 105, 54, 21, 185, 255, 127, 254, 194, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 119, 70, 236, 201, 255, 127, 254, 194, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 191, 142, 66, 109, 204, 255, 127, 67, 200, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 119, 70, 236, 201, 255, 127, 254, 194, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 142, 66, 109, 204, 255, 127, 67, 200, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 180, 81, 210, 221, 255, 127, 67, 200, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 191, 120, 87, 195, 219, 255, 127, 254, 194, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 180, 81, 210, 221, 255, 127, 67, 200, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 120, 87, 195, 219, 255, 127, 254, 194, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 230, 99, 183, 242, 255, 127, 67, 200, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 191, 102, 108, 185, 241, 255, 127, 254, 194, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 186, 113, 102, 236, 255, 127, 0, 189, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 102, 108, 185, 241, 255, 127, 254, 194, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 69, 142, 102, 236, 255, 127, 0, 189, 52, 84, 125, 181, 0, 0, 32, 64, 204, 171, 146, 181, 152, 147, 185, 241, 255, 127, 254, 194, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 69, 142, 102, 236, 255, 127, 0, 189, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 152, 147, 185, 241, 255, 127, 254, 194, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 134, 168, 195, 219, 255, 127, 254, 194, 223, 164, 37, 63, 63, 140, 26, 64, 234, 171, 145, 181, 58, 164, 119, 215, 255, 127, 0, 189, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 134, 168, 195, 219, 255, 127, 254, 194, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 58, 164, 119, 215, 255, 127, 0, 189, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 17, 182, 118, 198, 255, 127, 0, 189, 248, 255, 159, 63, 104, 144, 10, 64, 181, 189, 142, 181, 135, 185, 236, 201, 255, 127, 254, 194, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 17, 182, 118, 198, 255, 127, 0, 189, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 135, 185, 236, 201, 255, 127, 254, 194, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 149, 201, 21, 185, 255, 127, 254, 194, 40, 70, 226, 63, 48, 70, 226, 63, 76, 20, 138, 181, 232, 198, 105, 182, 255, 127, 0, 189, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 149, 201, 21, 185, 255, 127, 254, 194, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 232, 198, 105, 182, 255, 127, 0, 189, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 56, 217, 244, 164, 255, 127, 0, 189, 99, 144, 10, 64, 0, 0, 160, 63, 4, 1, 132, 181, 9, 219, 197, 166, 255, 127, 254, 194, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 56, 217, 244, 164, 255, 127, 0, 189, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 9, 219, 197, 166, 255, 127, 254, 194, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 118, 240, 205, 142, 255, 127, 0, 189, 79, 140, 26, 64, 240, 164, 37, 63, 182, 219, 121, 181, 48, 241, 136, 143, 255, 127, 254, 194, 253, 255, 31, 64, 0, 0, 0, 0, 122, 172, 106, 181, 118, 240, 205, 142, 255, 127, 0, 189, 253, 255, 31, 64, 0, 0, 0, 0, 122, 172, 106, 181, 48, 241, 136, 143, 255, 127, 254, 194, 4, 0, 32, 192, 0, 0, 0, 0, 122, 172, 106, 181, 136, 15, 205, 142, 255, 127, 0, 189, 4, 0, 32, 192, 0, 0, 0, 0, 122, 172, 106, 181, 206, 14, 136, 143, 255, 127, 254, 194, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 136, 15, 205, 142, 255, 127, 0, 189, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 206, 14, 136, 143, 255, 127, 254, 194, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 245, 36, 197, 166, 255, 127, 254, 194, 85, 140, 26, 192, 240, 164, 37, 63, 182, 219, 121, 181, 198, 38, 244, 164, 255, 127, 0, 189, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 245, 36, 197, 166, 255, 127, 254, 194, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 198, 38, 244, 164, 255, 127, 0, 189, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 22, 57, 105, 182, 255, 127, 0, 189, 106, 144, 10, 192, 0, 0, 160, 63, 4, 1, 132, 181, 105, 54, 21, 185, 255, 127, 254, 194, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 22, 57, 105, 182, 255, 127, 0, 189, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 105, 54, 21, 185, 255, 127, 254, 194, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 119, 70, 236, 201, 255, 127, 254, 194, 55, 70, 226, 191, 48, 70, 226, 63, 76, 20, 138, 181, 237, 73, 118, 198, 255, 127, 0, 189, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 119, 70, 236, 201, 255, 127, 254, 194, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 237, 73, 118, 198, 255, 127, 0, 189, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 120, 87, 195, 219, 255, 127, 254, 194, 8, 0, 160, 191, 104, 144, 10, 64, 181, 189, 142, 181, 196, 91, 119, 215, 255, 127, 0, 189, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 120, 87, 195, 219, 255, 127, 254, 194, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 196, 91, 119, 215, 255, 127, 0, 189, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 186, 113, 102, 236, 255, 127, 0, 189, 250, 164, 37, 191, 80, 140, 26, 64, 234, 171, 145, 181, 102, 108, 185, 241, 255, 127, 254, 194, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 186, 113, 102, 236, 255, 127, 0, 189, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 183, 114, 229, 227, 255, 127, 186, 183, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 71, 141, 229, 227, 255, 127, 186, 183, 237, 27, 124, 181, 217, 37, 28, 64, 174, 211, 156, 63, 69, 142, 102, 236, 255, 127, 0, 189, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 71, 141, 229, 227, 255, 127, 186, 183, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 69, 142, 102, 236, 255, 127, 0, 189, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 58, 164, 119, 215, 255, 127, 0, 189, 217, 164, 37, 63, 224, 184, 22, 64, 27, 194, 155, 63, 43, 162, 180, 209, 255, 127, 186, 183, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 58, 164, 119, 215, 255, 127, 0, 189, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 43, 162, 180, 209, 255, 127, 186, 183, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 144, 179, 142, 194, 255, 127, 186, 183, 248, 255, 159, 63, 172, 208, 6, 64, 243, 159, 152, 63, 17, 182, 118, 198, 255, 127, 0, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 144, 179, 142, 194, 255, 127, 186, 183, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 17, 182, 118, 198, 255, 127, 0, 189, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 89, 196, 240, 179, 255, 127, 186, 183, 40, 70, 226, 63, 96, 5, 219, 63, 232, 163, 147, 63, 232, 198, 105, 182, 255, 127, 0, 189, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 89, 196, 240, 179, 255, 127, 186, 183, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 232, 198, 105, 182, 255, 127, 0, 189, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 56, 217, 244, 164, 255, 127, 0, 189, 99, 144, 10, 64, 240, 16, 153, 63, 239, 36, 141, 63, 2, 215, 177, 163, 255, 127, 186, 183, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 56, 217, 244, 164, 255, 127, 0, 189, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 2, 215, 177, 163, 255, 127, 186, 183, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 118, 240, 205, 142, 255, 127, 0, 189, 79, 140, 26, 64, 0, 133, 24, 63, 93, 148, 133, 63, 83, 239, 131, 142, 255, 127, 186, 183, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 136, 15, 205, 142, 255, 127, 0, 189, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 171, 16, 131, 142, 255, 127, 186, 183, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 198, 38, 244, 164, 255, 127, 0, 189, 85, 140, 26, 192, 0, 133, 24, 63, 93, 148, 133, 63, 252, 40, 177, 163, 255, 127, 186, 183, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 198, 38, 244, 164, 255, 127, 0, 189, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 252, 40, 177, 163, 255, 127, 186, 183, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 165, 59, 240, 179, 255, 127, 186, 183, 106, 144, 10, 192, 240, 16, 153, 63, 239, 36, 141, 63, 22, 57, 105, 182, 255, 127, 0, 189, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 165, 59, 240, 179, 255, 127, 186, 183, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 22, 57, 105, 182, 255, 127, 0, 189, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 237, 73, 118, 198, 255, 127, 0, 189, 55, 70, 226, 191, 96, 5, 219, 63, 232, 163, 147, 63, 110, 76, 142, 194, 255, 127, 186, 183, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 237, 73, 118, 198, 255, 127, 0, 189, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 110, 76, 142, 194, 255, 127, 186, 183, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 211, 93, 180, 209, 255, 127, 186, 183, 8, 0, 160, 191, 172, 208, 6, 64, 243, 159, 152, 63, 196, 91, 119, 215, 255, 127, 0, 189, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 211, 93, 180, 209, 255, 127, 186, 183, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 196, 91, 119, 215, 255, 127, 0, 189, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 186, 113, 102, 236, 255, 127, 0, 189, 250, 164, 37, 191, 224, 184, 22, 64, 27, 194, 155, 63, 183, 114, 229, 227, 255, 127, 186, 183, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 122, 115, 88, 220, 255, 127, 45, 179, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 183, 114, 229, 227, 255, 127, 186, 183, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 71, 141, 229, 227, 255, 127, 186, 183, 22, 118, 120, 181, 212, 160, 16, 64, 127, 18, 28, 64, 132, 140, 88, 220, 255, 127, 45, 179, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 71, 141, 229, 227, 255, 127, 186, 183, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 132, 140, 88, 220, 255, 127, 45, 179, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 141, 160, 83, 204, 255, 127, 45, 179, 218, 164, 37, 63, 244, 71, 11, 64, 54, 2, 27, 64, 43, 162, 180, 209, 255, 127, 186, 183, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 141, 160, 83, 204, 255, 127, 45, 179, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 43, 162, 180, 209, 255, 127, 186, 183, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 142, 177, 185, 190, 255, 127, 45, 179, 248, 255, 159, 63, 88, 53, 247, 63, 235, 227, 23, 64, 144, 179, 142, 194, 255, 127, 186, 183, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 142, 177, 185, 190, 255, 127, 45, 179, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 144, 179, 142, 194, 255, 127, 186, 183, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 89, 196, 240, 179, 255, 127, 186, 183, 40, 70, 226, 63, 224, 84, 197, 63, 4, 238, 18, 64, 64, 194, 95, 177, 255, 127, 45, 179, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 89, 196, 240, 179, 255, 127, 186, 183, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 64, 194, 95, 177, 255, 127, 45, 179, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 40, 213, 65, 162, 255, 127, 45, 179, 99, 144, 10, 64, 176, 84, 132, 63, 12, 119, 12, 64, 2, 215, 177, 163, 255, 127, 186, 183, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 40, 213, 65, 162, 255, 127, 45, 179, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 2, 215, 177, 163, 255, 127, 186, 183, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 90, 238, 27, 142, 255, 127, 45, 179, 79, 140, 26, 64, 32, 139, 226, 62, 203, 239, 4, 64, 83, 239, 131, 142, 255, 127, 186, 183, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 164, 17, 27, 142, 255, 127, 45, 179, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 171, 16, 131, 142, 255, 127, 186, 183, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 214, 42, 65, 162, 255, 127, 45, 179, 85, 140, 26, 192, 32, 139, 226, 62, 203, 239, 4, 64, 252, 40, 177, 163, 255, 127, 186, 183, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 214, 42, 65, 162, 255, 127, 45, 179, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 252, 40, 177, 163, 255, 127, 186, 183, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 190, 61, 95, 177, 255, 127, 45, 179, 106, 144, 10, 192, 176, 84, 132, 63, 12, 119, 12, 64, 165, 59, 240, 179, 255, 127, 186, 183, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 190, 61, 95, 177, 255, 127, 45, 179, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 165, 59, 240, 179, 255, 127, 186, 183, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 110, 76, 142, 194, 255, 127, 186, 183, 55, 70, 226, 191, 224, 84, 197, 63, 4, 238, 18, 64, 112, 78, 185, 190, 255, 127, 45, 179, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 110, 76, 142, 194, 255, 127, 186, 183, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 112, 78, 185, 190, 255, 127, 45, 179, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 211, 93, 180, 209, 255, 127, 186, 183, 8, 0, 160, 191, 88, 53, 247, 63, 235, 227, 23, 64, 113, 95, 83, 204, 255, 127, 45, 179, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 211, 93, 180, 209, 255, 127, 186, 183, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 113, 95, 83, 204, 255, 127, 45, 179, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 122, 115, 88, 220, 255, 127, 45, 179, 248, 164, 37, 191, 244, 71, 11, 64, 54, 2, 27, 64, 183, 114, 229, 227, 255, 127, 186, 183, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 122, 115, 88, 220, 255, 127, 45, 179, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 15, 116, 121, 213, 255, 127, 33, 175, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 239, 139, 121, 213, 255, 127, 33, 175, 178, 107, 114, 181, 208, 26, 251, 63, 68, 58, 104, 64, 132, 140, 88, 220, 255, 127, 45, 179, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 239, 139, 121, 213, 255, 127, 33, 175, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 132, 140, 88, 220, 255, 127, 45, 179, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 74, 159, 55, 199, 255, 127, 33, 175, 218, 164, 37, 63, 152, 171, 240, 63, 30, 165, 102, 64, 141, 160, 83, 204, 255, 127, 45, 179, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 74, 159, 55, 199, 255, 127, 33, 175, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 141, 160, 83, 204, 255, 127, 45, 179, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 142, 177, 185, 190, 255, 127, 45, 179, 248, 255, 159, 63, 48, 20, 210, 63, 77, 1, 98, 64, 248, 175, 239, 186, 255, 127, 33, 175, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 142, 177, 185, 190, 255, 127, 45, 179, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 248, 175, 239, 186, 255, 127, 33, 175, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 146, 192, 181, 174, 255, 127, 33, 175, 40, 70, 226, 63, 40, 106, 161, 63, 190, 159, 90, 64, 64, 194, 95, 177, 255, 127, 45, 179, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 146, 192, 181, 174, 255, 127, 33, 175, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 64, 194, 95, 177, 255, 127, 45, 179, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 40, 213, 65, 162, 255, 127, 45, 179, 99, 144, 10, 64, 16, 253, 67, 63, 60, 1, 81, 64, 165, 211, 169, 160, 255, 127, 33, 175, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 40, 213, 65, 162, 255, 127, 45, 179, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 165, 211, 169, 160, 255, 127, 33, 175, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 137, 237, 151, 141, 255, 127, 33, 175, 79, 140, 26, 64, 192, 29, 65, 62, 149, 205, 69, 64, 90, 238, 27, 142, 255, 127, 45, 179, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 164, 17, 27, 142, 255, 127, 45, 179, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 117, 18, 151, 141, 255, 127, 33, 175, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 89, 44, 169, 160, 255, 127, 33, 175, 85, 140, 26, 192, 192, 29, 65, 62, 149, 205, 69, 64, 214, 42, 65, 162, 255, 127, 45, 179, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 89, 44, 169, 160, 255, 127, 33, 175, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 214, 42, 65, 162, 255, 127, 45, 179, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 190, 61, 95, 177, 255, 127, 45, 179, 106, 144, 10, 192, 16, 253, 67, 63, 60, 1, 81, 64, 108, 63, 181, 174, 255, 127, 33, 175, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 190, 61, 95, 177, 255, 127, 45, 179, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 108, 63, 181, 174, 255, 127, 33, 175, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 6, 80, 239, 186, 255, 127, 33, 175, 55, 70, 226, 191, 40, 106, 161, 63, 190, 159, 90, 64, 112, 78, 185, 190, 255, 127, 45, 179, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 6, 80, 239, 186, 255, 127, 33, 175, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 112, 78, 185, 190, 255, 127, 45, 179, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 113, 95, 83, 204, 255, 127, 45, 179, 8, 0, 160, 191, 48, 20, 210, 63, 77, 1, 98, 64, 180, 96, 56, 199, 255, 127, 33, 175, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 113, 95, 83, 204, 255, 127, 45, 179, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 180, 96, 56, 199, 255, 127, 33, 175, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 122, 115, 88, 220, 255, 127, 45, 179, 248, 164, 37, 191, 152, 171, 240, 63, 30, 165, 102, 64, 15, 116, 121, 213, 255, 127, 33, 175, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 15, 116, 121, 213, 255, 127, 33, 175, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 126, 116, 22, 207, 255, 127, 114, 171, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 128, 139, 22, 207, 255, 127, 114, 171, 162, 11, 106, 181, 32, 53, 198, 63, 191, 18, 153, 64, 239, 139, 121, 213, 255, 127, 33, 175, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 128, 139, 22, 207, 255, 127, 114, 171, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 239, 139, 121, 213, 255, 127, 33, 175, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 87, 158, 76, 194, 255, 127, 114, 171, 218, 164, 37, 63, 56, 34, 188, 63, 178, 7, 152, 64, 74, 159, 55, 199, 255, 127, 33, 175, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 87, 158, 76, 194, 255, 127, 114, 171, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 74, 159, 55, 199, 255, 127, 33, 175, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 248, 175, 239, 186, 255, 127, 33, 175, 249, 255, 159, 63, 96, 153, 158, 63, 190, 248, 148, 64, 193, 174, 38, 183, 255, 127, 114, 171, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 248, 175, 239, 186, 255, 127, 33, 175, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 193, 174, 38, 183, 255, 127, 114, 171, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 146, 192, 181, 174, 255, 127, 33, 175, 40, 70, 226, 63, 112, 59, 95, 63, 61, 27, 144, 64, 69, 191, 240, 171, 255, 127, 114, 171, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 146, 192, 181, 174, 255, 127, 33, 175, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 69, 191, 240, 171, 255, 127, 114, 171, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 165, 211, 169, 160, 255, 127, 33, 175, 99, 144, 10, 64, 32, 140, 201, 62, 18, 196, 137, 64, 117, 210, 233, 158, 255, 127, 114, 171, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 137, 45, 233, 158, 255, 127, 114, 171, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 89, 44, 169, 160, 255, 127, 33, 175, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 185, 64, 240, 171, 255, 127, 114, 171, 106, 144, 10, 192, 32, 140, 201, 62, 18, 196, 137, 64, 108, 63, 181, 174, 255, 127, 33, 175, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 185, 64, 240, 171, 255, 127, 114, 171, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 108, 63, 181, 174, 255, 127, 33, 175, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 61, 81, 38, 183, 255, 127, 114, 171, 55, 70, 226, 191, 112, 59, 95, 63, 61, 27, 144, 64, 6, 80, 239, 186, 255, 127, 33, 175, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 61, 81, 38, 183, 255, 127, 114, 171, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 6, 80, 239, 186, 255, 127, 33, 175, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 180, 96, 56, 199, 255, 127, 33, 175, 8, 0, 160, 191, 96, 153, 158, 63, 190, 248, 148, 64, 167, 97, 76, 194, 255, 127, 114, 171, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 180, 96, 56, 199, 255, 127, 33, 175, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 167, 97, 76, 194, 255, 127, 114, 171, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 15, 116, 121, 213, 255, 127, 33, 175, 248, 164, 37, 191, 56, 34, 188, 63, 178, 7, 152, 64, 126, 116, 22, 207, 255, 127, 114, 171, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 126, 116, 22, 207, 255, 127, 114, 171, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 205, 116, 7, 201, 255, 127, 3, 168, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 49, 139, 7, 201, 255, 127, 3, 168, 140, 106, 95, 181, 0, 19, 131, 63, 4, 143, 188, 64, 128, 139, 22, 207, 255, 127, 114, 171, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 49, 139, 7, 201, 255, 127, 3, 168, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 128, 139, 22, 207, 255, 127, 114, 171, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 87, 158, 76, 194, 255, 127, 114, 171, 220, 164, 37, 63, 96, 234, 114, 63, 14, 70, 187, 64, 167, 157, 124, 189, 255, 127, 3, 168, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 87, 158, 76, 194, 255, 127, 114, 171, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 167, 157, 124, 189, 255, 127, 3, 168, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 224, 173, 87, 179, 255, 127, 3, 168, 249, 255, 159, 63, 128, 135, 58, 63, 153, 129, 183, 64, 193, 174, 38, 183, 255, 127, 114, 171, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 224, 173, 87, 179, 255, 127, 3, 168, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 193, 174, 38, 183, 255, 127, 114, 171, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 81, 190, 16, 169, 255, 127, 3, 168, 42, 70, 226, 63, 64, 169, 193, 62, 93, 131, 177, 64, 69, 191, 240, 171, 255, 127, 114, 171, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 185, 64, 240, 171, 255, 127, 114, 171, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 173, 65, 16, 169, 255, 127, 3, 168, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 61, 81, 38, 183, 255, 127, 114, 171, 54, 70, 226, 191, 64, 169, 193, 62, 93, 131, 177, 64, 30, 82, 87, 179, 255, 127, 3, 168, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 61, 81, 38, 183, 255, 127, 114, 171, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 30, 82, 87, 179, 255, 127, 3, 168, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 87, 98, 124, 189, 255, 127, 3, 168, 6, 0, 160, 191, 128, 135, 58, 63, 153, 129, 183, 64, 167, 97, 76, 194, 255, 127, 114, 171, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 87, 98, 124, 189, 255, 127, 3, 168, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 167, 97, 76, 194, 255, 127, 114, 171, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 126, 116, 22, 207, 255, 127, 114, 171, 247, 164, 37, 191, 96, 234, 114, 63, 14, 70, 187, 64, 205, 116, 7, 201, 255, 127, 3, 168, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 205, 116, 7, 201, 255, 127, 3, 168, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 0, 117, 45, 195, 255, 127, 190, 164, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 254, 138, 45, 195, 255, 127, 190, 164, 162, 162, 82, 181, 192, 103, 201, 62, 104, 58, 222, 64, 49, 139, 7, 201, 255, 127, 3, 168, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 254, 138, 45, 195, 255, 127, 190, 164, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 49, 139, 7, 201, 255, 127, 3, 168, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 167, 157, 124, 189, 255, 127, 3, 168, 221, 164, 37, 63, 0, 36, 165, 62, 180, 182, 220, 64, 54, 157, 183, 184, 255, 127, 190, 164, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 167, 157, 124, 189, 255, 127, 3, 168, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 54, 157, 183, 184, 255, 127, 190, 164, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 77, 173, 122, 175, 255, 127, 190, 164, 250, 255, 159, 63, 0, 70, 235, 61, 8, 70, 216, 64, 224, 173, 87, 179, 255, 127, 3, 168, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 30, 82, 87, 179, 255, 127, 3, 168, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 177, 82, 122, 175, 255, 127, 190, 164, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 200, 98, 183, 184, 255, 127, 190, 164, 6, 0, 160, 191, 0, 70, 235, 61, 8, 70, 216, 64, 87, 98, 124, 189, 255, 127, 3, 168, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 200, 98, 183, 184, 255, 127, 190, 164, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 87, 98, 124, 189, 255, 127, 3, 168, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 205, 116, 7, 201, 255, 127, 3, 168, 246, 164, 37, 191, 0, 36, 165, 62, 180, 182, 220, 64, 0, 117, 45, 195, 255, 127, 190, 164, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 192, 45, 67, 255, 244, 255, 127, 63, 219, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 192, 209, 188, 255, 244, 255, 127, 63, 219, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 192, 209, 188, 255, 244, 255, 127, 63, 219, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 192, 71, 199, 200, 226, 255, 127, 63, 219, 250, 255, 159, 63, 0, 0, 0, 0, 244, 58, 221, 192, 71, 199, 200, 226, 255, 127, 63, 219, 250, 255, 159, 63, 0, 0, 0, 0, 244, 58, 221, 192, 132, 208, 177, 210, 255, 127, 63, 219, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 192, 132, 208, 177, 210, 255, 127, 63, 219, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 192, 166, 204, 30, 210, 255, 127, 251, 215, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 192, 88, 51, 30, 210, 255, 127, 251, 215, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 192, 122, 47, 177, 210, 255, 127, 63, 219, 6, 0, 160, 191, 0, 0, 0, 0, 244, 58, 221, 192, 122, 47, 177, 210, 255, 127, 63, 219, 6, 0, 160, 191, 0, 0, 0, 0, 244, 58, 221, 192, 183, 56, 200, 226, 255, 127, 63, 219, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 183, 56, 200, 226, 255, 127, 63, 219, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 45, 67, 255, 244, 255, 127, 63, 219, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 166, 204, 30, 210, 255, 127, 251, 215, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 238, 214, 173, 193, 255, 127, 251, 215, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 192, 238, 214, 173, 193, 255, 127, 251, 215, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 192, 13, 212, 185, 192, 255, 127, 140, 212, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 241, 43, 185, 192, 255, 127, 139, 212, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 16, 41, 173, 193, 255, 127, 251, 215, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 192, 16, 41, 173, 193, 255, 127, 251, 215, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 192, 88, 51, 30, 210, 255, 127, 251, 215, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 192, 13, 212, 185, 192, 255, 127, 140, 212, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 192, 20, 225, 136, 173, 255, 127, 140, 212, 244, 219, 21, 64, 0, 0, 0, 0, 97, 140, 132, 192, 20, 225, 136, 173, 255, 127, 140, 212, 244, 219, 21, 64, 0, 0, 0, 0, 97, 140, 132, 192, 85, 223, 88, 172, 255, 127, 220, 208, 250, 219, 21, 192, 0, 0, 0, 0, 97, 140, 132, 192, 234, 30, 136, 173, 255, 127, 140, 212, 250, 219, 21, 192, 0, 0, 0, 0, 97, 140, 132, 192, 169, 32, 88, 172, 255, 127, 220, 208, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 192, 234, 30, 136, 173, 255, 127, 140, 212, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 192, 241, 43, 185, 192, 255, 127, 140, 212, 79, 140, 26, 64, 0, 0, 0, 0, 38, 137, 103, 192, 85, 223, 88, 172, 255, 127, 220, 208, 79, 140, 26, 64, 0, 0, 0, 0, 38, 137, 103, 192, 102, 242, 116, 146, 255, 127, 220, 208, 102, 53, 28, 64, 0, 0, 0, 0, 95, 36, 66, 192, 102, 242, 116, 146, 255, 127, 220, 208, 102, 53, 28, 64, 0, 0, 0, 0, 95, 36, 66, 192, 226, 241, 164, 145, 255, 127, 209, 204, 108, 53, 28, 192, 0, 0, 0, 0, 95, 36, 66, 192, 28, 14, 164, 145, 255, 127, 209, 204, 108, 53, 28, 192, 0, 0, 0, 0, 95, 36, 66, 192, 152, 13, 116, 146, 255, 127, 220, 208, 85, 140, 26, 192, 0, 0, 0, 0, 38, 137, 103, 192, 152, 13, 116, 146, 255, 127, 220, 208, 85, 140, 26, 192, 0, 0, 0, 0, 38, 137, 103, 192, 169, 32, 88, 172, 255, 127, 220, 208, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 191, 226, 241, 164, 145, 255, 127, 209, 204, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 191, 123, 241, 170, 144, 255, 127, 67, 200, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 191, 28, 14, 164, 145, 255, 127, 209, 204, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 191, 132, 14, 170, 144, 255, 127, 67, 200, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 191, 48, 241, 136, 143, 255, 127, 254, 194, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 191, 123, 241, 170, 144, 255, 127, 67, 200, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 191, 206, 14, 136, 143, 255, 127, 254, 194, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 191, 132, 14, 170, 144, 255, 127, 67, 200, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 63, 118, 240, 205, 142, 255, 127, 0, 189, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 63, 83, 239, 131, 142, 255, 127, 186, 183, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 63, 136, 15, 205, 142, 255, 127, 0, 189, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 63, 171, 16, 131, 142, 255, 127, 186, 183, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 63, 90, 238, 27, 142, 255, 127, 45, 179, 104, 89, 30, 64, 0, 0, 0, 0, 154, 155, 254, 63, 83, 239, 131, 142, 255, 127, 186, 183, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 63, 164, 17, 27, 142, 255, 127, 45, 179, 110, 89, 30, 192, 0, 0, 0, 0, 154, 155, 254, 63, 171, 16, 131, 142, 255, 127, 186, 183, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 137, 237, 151, 141, 255, 127, 33, 175, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 90, 238, 27, 142, 255, 127, 45, 179, 109, 53, 28, 192, 0, 0, 0, 0, 72, 36, 66, 64, 164, 17, 27, 142, 255, 127, 45, 179, 109, 53, 28, 192, 0, 0, 0, 0, 72, 36, 66, 64, 117, 18, 151, 141, 255, 127, 33, 175, 248, 219, 21, 64, 0, 0, 0, 0, 86, 140, 132, 64, 165, 211, 169, 160, 255, 127, 33, 175, 248, 219, 21, 64, 0, 0, 0, 0, 86, 140, 132, 64, 117, 210, 233, 158, 255, 127, 114, 171, 79, 140, 26, 64, 0, 0, 0, 0, 43, 137, 103, 64, 165, 211, 169, 160, 255, 127, 33, 175, 79, 140, 26, 64, 0, 0, 0, 0, 43, 137, 103, 64, 137, 237, 151, 141, 255, 127, 33, 175, 85, 140, 26, 192, 0, 0, 0, 0, 43, 137, 103, 64, 117, 18, 151, 141, 255, 127, 33, 175, 85, 140, 26, 192, 0, 0, 0, 0, 43, 137, 103, 64, 89, 44, 169, 160, 255, 127, 33, 175, 254, 219, 21, 192, 0, 0, 0, 0, 86, 140, 132, 64, 137, 45, 233, 158, 255, 127, 114, 171, 254, 219, 21, 192, 0, 0, 0, 0, 86, 140, 132, 64, 89, 44, 169, 160, 255, 127, 33, 175, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 64, 81, 190, 16, 169, 255, 127, 3, 168, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 64, 69, 191, 240, 171, 255, 127, 114, 171, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 64, 69, 191, 240, 171, 255, 127, 114, 171, 99, 144, 10, 64, 0, 0, 0, 0, 63, 102, 164, 64, 117, 210, 233, 158, 255, 127, 114, 171, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 64, 137, 45, 233, 158, 255, 127, 114, 171, 106, 144, 10, 192, 0, 0, 0, 0, 63, 102, 164, 64, 185, 64, 240, 171, 255, 127, 114, 171, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 64, 185, 64, 240, 171, 255, 127, 114, 171, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 64, 173, 65, 16, 169, 255, 127, 3, 168, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 64, 77, 173, 122, 175, 255, 127, 190, 164, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 64, 224, 173, 87, 179, 255, 127, 3, 168, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 64, 224, 173, 87, 179, 255, 127, 3, 168, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 64, 81, 190, 16, 169, 255, 127, 3, 168, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 64, 173, 65, 16, 169, 255, 127, 3, 168, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 64, 30, 82, 87, 179, 255, 127, 3, 168, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 64, 30, 82, 87, 179, 255, 127, 3, 168, 54, 12, 183, 191, 0, 0, 0, 0, 54, 209, 213, 64, 177, 82, 122, 175, 255, 127, 190, 164, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 64, 0, 117, 45, 195, 255, 127, 190, 164, 195, 169, 74, 181, 0, 0, 0, 0, 106, 51, 239, 64, 254, 138, 45, 195, 255, 127, 190, 164, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 254, 138, 45, 195, 255, 127, 190, 164, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 54, 157, 183, 184, 255, 127, 190, 164, 250, 255, 159, 63, 0, 0, 0, 0, 242, 58, 221, 64, 54, 157, 183, 184, 255, 127, 190, 164, 250, 255, 159, 63, 0, 0, 0, 0, 242, 58, 221, 64, 77, 173, 122, 175, 255, 127, 190, 164, 6, 0, 160, 191, 0, 0, 0, 0, 242, 58, 221, 64, 177, 82, 122, 175, 255, 127, 190, 164, 6, 0, 160, 191, 0, 0, 0, 0, 242, 58, 221, 64, 200, 98, 183, 184, 255, 127, 190, 164, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64, 200, 98, 183, 184, 255, 127, 190, 164, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64, 0, 117, 45, 195, 255, 127, 190, 164, 4, 0, 32, 192, 0, 0, 0, 0, 122, 172, 106, 181, 227, 82, 203, 196, 255, 127, 0, 189, 244, 219, 21, 64, 0, 0, 0, 0, 97, 140, 132, 192, 84, 184, 104, 203, 255, 127, 140, 212, 250, 219, 21, 192, 0, 0, 0, 0, 97, 140, 132, 192, 41, 84, 180, 219, 255, 127, 140, 212, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 62, 198, 161, 173, 255, 127, 33, 175, 41, 12, 183, 63, 0, 0, 0, 0, 54, 209, 213, 64, 130, 121, 111, 226, 255, 127, 190, 164, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 64, 225, 90, 224, 189, 255, 127, 3, 168, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 123, 194, 170, 195, 255, 127, 251, 215, 42, 70, 226, 63, 0, 0, 0, 0, 7, 181, 197, 192, 92, 104, 44, 253, 255, 127, 251, 215, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 108, 59, 227, 194, 255, 127, 139, 212, 103, 53, 28, 64, 0, 0, 0, 0, 72, 36, 66, 64, 187, 197, 81, 185, 255, 127, 33, 175, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64, 24, 85, 114, 199, 255, 127, 190, 164, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 64, 206, 156, 194, 210, 255, 127, 190, 164, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 200, 163, 196, 254, 255, 127, 63, 219, 0, 51, 6, 64, 0, 0, 0, 0, 36, 11, 171, 192, 131, 199, 23, 202, 255, 127, 251, 215, 6, 51, 6, 192, 0, 0, 0, 0, 36, 11, 171, 192, 99, 61, 196, 197, 255, 127, 139, 212, 159, 151, 31, 64, 0, 0, 0, 0, 36, 35, 124, 191, 191, 213, 78, 166, 255, 127, 254, 194, 166, 151, 31, 192, 0, 0, 0, 0, 36, 35, 124, 63, 189, 50, 141, 169, 255, 127, 0, 189, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 173, 129, 213, 229, 255, 127, 190, 164, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 75, 179, 124, 192, 255, 127, 190, 164, 246, 164, 37, 191, 0, 0, 0, 0, 92, 161, 234, 192, 92, 169, 55, 247, 255, 127, 63, 219, 54, 70, 226, 191, 0, 0, 0, 0, 7, 181, 197, 192, 101, 66, 222, 205, 255, 127, 251, 215, 254, 219, 21, 192, 0, 0, 0, 0, 86, 140, 132, 64, 63, 65, 47, 176, 255, 127, 114, 171, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 27, 144, 127, 210, 255, 127, 190, 164, 221, 164, 37, 63, 0, 0, 0, 0, 92, 161, 234, 64, 189, 186, 144, 191, 255, 127, 190, 164) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_11324") -[sub_resource type="SpatialMaterial" id=4] -albedo_texture = ExtResource( 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sgwkf"] +albedo_texture = ExtResource("1") -[node name="Mound" type="StaticBody"] +[node name="Mound" type="StaticBody3D"] -[node name="CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 3 ) +[node name="CollisionShape3d" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_3sfqa") -[node name="Mesh" type="MeshInstance" parent="."] -mesh = SubResource( 2 ) -material/0 = SubResource( 4 ) +[node name="Mesh" type="MeshInstance3D" parent="."] +gi_mode = 0 +mesh = SubResource("ArrayMesh_qya8c") +skeleton = NodePath("") +surface_material_override/0 = SubResource("StandardMaterial3D_sgwkf") diff --git a/assets/meshes/plate/plate.glb.import b/assets/meshes/plate/plate.glb.import index 5c34fd70..f003913a 100644 --- a/assets/meshes/plate/plate.glb.import +++ b/assets/meshes/plate/plate.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/plate.glb-5c0f61a8d372703912fa5be77129451d.scn" +uid="uid://cegpwqy2053ct" +path="res://.godot/imported/plate.glb-5c0f61a8d372703912fa5be77129451d.scn" [deps] source_file="res://assets/meshes/plate/plate.glb" -dest_files=[ "res://.import/plate.glb-5c0f61a8d372703912fa5be77129451d.scn" ] +dest_files=["res://.godot/imported/plate.glb-5c0f61a8d372703912fa5be77129451d.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/plate/surface_objects.tscn b/assets/meshes/plate/surface_objects.tscn index 32cf8f3e..68b38c37 100644 --- a/assets/meshes/plate/surface_objects.tscn +++ b/assets/meshes/plate/surface_objects.tscn @@ -1,186 +1,183 @@ -[gd_scene load_steps=21 format=2] - -[ext_resource path="res://assets/wahooney.itch.io/white_grid.png" type="Texture" id=1] -[ext_resource path="res://addons/godot-xr-tools/audio/surface_audio.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/meshes/plate/plate.glb" type="PackedScene" id=3] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=4] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=5] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=6] -[ext_resource path="res://addons/godot-xr-tools/audio/surface_audio_type.gd" type="Script" id=7] -[ext_resource path="res://assets/footsteps/grass_footstep.wav" type="AudioStream" id=8] -[ext_resource path="res://assets/footsteps/puddle_footstep.wav" type="AudioStream" id=9] -[ext_resource path="res://assets/footsteps/mud_footstep.wav" type="AudioStream" id=10] -[ext_resource path="res://assets/footsteps/snow_footstep.wav" type="AudioStream" id=11] - -[sub_resource type="ConcavePolygonShape" id=1] -data = PoolVector3Array( -1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1 ) - -[sub_resource type="Resource" id=6] -script = ExtResource( 7 ) +[gd_scene load_steps=22 format=3 uid="uid://54qovguk25i5"] + +[ext_resource type="Texture2D" uid="uid://cqgdloakbawp" path="res://assets/wahooney.itch.io/white_grid.png" id="1"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/audio/surface_audio.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://cegpwqy2053ct" path="res://assets/meshes/plate/plate.glb" id="3"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="4"] +[ext_resource type="AudioStream" uid="uid://dkladw5jiqfnb" path="res://assets/footsteps/puddle_footstep.wav" id="4_ql6qg"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="5"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="6"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/surface_audio_type.gd" id="7"] +[ext_resource type="AudioStream" uid="uid://bu3r7384vd488" path="res://assets/footsteps/mud_footstep.wav" id="7_f6aya"] +[ext_resource type="AudioStream" uid="uid://dl3u65cveimdq" path="res://assets/footsteps/grass_footstep.wav" id="9_4132b"] +[ext_resource type="AudioStream" uid="uid://c7670m64eawbp" path="res://assets/footsteps/snow_footstep.wav" id="11_u808p"] + +[sub_resource type="ConcavePolygonShape3D" id="1"] +data = PackedVector3Array(-1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1) + +[sub_resource type="Resource" id="Resource_rpp4f"] +script = ExtResource("7") name = "Puddle" -jump_sound = ExtResource( 9 ) -hit_sound = ExtResource( 9 ) -walk_sounds = [ ExtResource( 9 ), ExtResource( 9 ) ] +jump_sound = ExtResource("4_ql6qg") +hit_sound = ExtResource("4_ql6qg") +walk_sounds = Array[AudioStream]([ExtResource("4_ql6qg"), ExtResource("4_ql6qg")]) walk_pitch_minimum = 0.8 walk_pitch_maximum = 1.2 -[sub_resource type="ConcavePolygonShape" id=2] -data = PoolVector3Array( -1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1 ) +[sub_resource type="ConcavePolygonShape3D" id="2"] +data = PackedVector3Array(-1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1) -[sub_resource type="Resource" id=8] -script = ExtResource( 7 ) +[sub_resource type="Resource" id="Resource_rwibv"] +script = ExtResource("7") name = "Mud" -jump_sound = ExtResource( 10 ) -hit_sound = ExtResource( 10 ) -walk_sounds = [ ExtResource( 10 ), ExtResource( 10 ) ] +jump_sound = ExtResource("7_f6aya") +hit_sound = ExtResource("7_f6aya") +walk_sounds = Array[AudioStream]([ExtResource("7_f6aya"), ExtResource("7_f6aya")]) walk_pitch_minimum = 0.8 walk_pitch_maximum = 1.2 -[sub_resource type="ConcavePolygonShape" id=3] -data = PoolVector3Array( -1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1 ) +[sub_resource type="ConcavePolygonShape3D" id="3"] +data = PackedVector3Array(-1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1) -[sub_resource type="Resource" id=7] -script = ExtResource( 7 ) +[sub_resource type="Resource" id="Resource_53y85"] +script = ExtResource("7") name = "Grass" -hit_sound = ExtResource( 8 ) -walk_sounds = [ ExtResource( 8 ), ExtResource( 8 ) ] +hit_sound = ExtResource("9_4132b") +walk_sounds = Array[AudioStream]([ExtResource("9_4132b"), ExtResource("9_4132b")]) walk_pitch_minimum = 0.8 walk_pitch_maximum = 1.2 -[sub_resource type="SpatialMaterial" id=4] -albedo_texture = ExtResource( 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t8uhq"] +albedo_texture = ExtResource("1") -[sub_resource type="ConcavePolygonShape" id=5] -data = PoolVector3Array( -1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1 ) +[sub_resource type="ConcavePolygonShape3D" id="5"] +data = PackedVector3Array(-1, 0.0121, 1, 1, 0.0121, -1, 1, 0.0121, 1, -1, 0.0121, 1, -1, 0.0121, -1, 1, 0.0121, -1, 1, 0, 1, 1, 0.0121, -1, 1, 0, -1, 1, 0, 1, 1, 0.0121, 1, 1, 0.0121, -1, -1, 0, -1, -1, 0.0121, 1, -1, 0, 1, -1, 0, -1, -1, 0.0121, -1, -1, 0.0121, 1, 1, 0, -1, -1, 0.0121, -1, -1, 0, -1, 1, 0, -1, 1, 0.0121, -1, -1, 0.0121, -1, -1, 0, 1, 1, 0.0121, 1, 1, 0, 1, -1, 0, 1, -1, 0.0121, 1, 1, 0.0121, 1) -[sub_resource type="Resource" id=9] -script = ExtResource( 7 ) +[sub_resource type="Resource" id="Resource_58enk"] +script = ExtResource("7") name = "Snow" -hit_sound = ExtResource( 11 ) -walk_sounds = [ ExtResource( 11 ), ExtResource( 11 ) ] +hit_sound = ExtResource("11_u808p") +walk_sounds = Array[AudioStream]([ExtResource("11_u808p"), ExtResource("11_u808p")]) walk_pitch_minimum = 0.8 walk_pitch_maximum = 1.2 -[node name="surface_objects" type="Spatial"] -transform = Transform( 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qcyph"] +albedo_texture = ExtResource("1") -[node name="plate_puddle_s" parent="." instance=ExtResource( 3 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -7 ) +[node name="surface_objects" type="Node3D"] +transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0) + +[node name="plate_puddle_s" parent="." instance=ExtResource("3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -7) [node name="Plane" parent="plate_puddle_s" index="0"] -material/0 = ExtResource( 6 ) +material_override = ExtResource("6") -[node name="StaticBody" type="StaticBody" parent="plate_puddle_s/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_puddle_s/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_puddle_s/Plane/StaticBody"] -shape = SubResource( 1 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_puddle_s/Plane/StaticBody"] +shape = SubResource("1") -[node name="SurfaceAudio" parent="plate_puddle_s/Plane/StaticBody" instance=ExtResource( 2 )] -surface_audio_type = SubResource( 6 ) +[node name="SurfaceAudio" parent="plate_puddle_s/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_rpp4f") -[node name="plate_mud_s" parent="." instance=ExtResource( 3 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -5 ) +[node name="plate_mud_s" parent="." instance=ExtResource("3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -5) [node name="Plane" parent="plate_mud_s" index="0"] -material/0 = ExtResource( 4 ) +material_override = ExtResource("4") -[node name="StaticBody" type="StaticBody" parent="plate_mud_s/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_mud_s/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_mud_s/Plane/StaticBody"] -shape = SubResource( 2 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_mud_s/Plane/StaticBody"] +shape = SubResource("2") -[node name="SurfaceAudio" parent="plate_mud_s/Plane/StaticBody" instance=ExtResource( 2 )] -__meta__ = { -"_editor_description_": "" -} -surface_audio_type = SubResource( 8 ) +[node name="SurfaceAudio" parent="plate_mud_s/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_rwibv") -[node name="plate_grass_s" parent="." instance=ExtResource( 3 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -5 ) +[node name="plate_grass_s" parent="." instance=ExtResource("3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -5) [node name="Plane" parent="plate_grass_s" index="0"] -material/0 = ExtResource( 5 ) +material_override = ExtResource("5") -[node name="StaticBody" type="StaticBody" parent="plate_grass_s/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_grass_s/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_grass_s/Plane/StaticBody"] -shape = SubResource( 3 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_grass_s/Plane/StaticBody"] +shape = SubResource("3") -[node name="SurfaceAudio" parent="plate_grass_s/Plane/StaticBody" instance=ExtResource( 2 )] -surface_audio_type = SubResource( 7 ) +[node name="SurfaceAudio" parent="plate_grass_s/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_53y85") -[node name="plate_snow_s" parent="." instance=ExtResource( 3 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -7 ) +[node name="plate_snow_s" parent="." instance=ExtResource("3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -7) [node name="Plane" parent="plate_snow_s" index="0"] -material/0 = SubResource( 4 ) +material_override = SubResource("StandardMaterial3D_t8uhq") -[node name="StaticBody" type="StaticBody" parent="plate_snow_s/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_snow_s/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_snow_s/Plane/StaticBody"] -shape = SubResource( 5 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_snow_s/Plane/StaticBody"] +shape = SubResource("5") -[node name="SurfaceAudio" parent="plate_snow_s/Plane/StaticBody" instance=ExtResource( 2 )] -__meta__ = { -"_editor_description_": "" -} -surface_audio_type = SubResource( 9 ) +[node name="SurfaceAudio" parent="plate_snow_s/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_58enk") -[node name="plate_puddle" parent="." instance=ExtResource( 3 )] -transform = Transform( 4, 0, 0, 0, 1, 0, 0, 0, 4, -7, 0, -12 ) +[node name="plate_puddle" parent="." instance=ExtResource("3")] +transform = Transform3D(4, 0, 0, 0, 1, 0, 0, 0, 4, -7, 0, -12) [node name="Plane" parent="plate_puddle" index="0"] -material/0 = ExtResource( 6 ) +material_override = ExtResource("6") -[node name="StaticBody" type="StaticBody" parent="plate_puddle/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_puddle/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_puddle/Plane/StaticBody"] -shape = SubResource( 1 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_puddle/Plane/StaticBody"] +shape = SubResource("1") -[node name="SurfaceAudio" parent="plate_puddle/Plane/StaticBody" instance=ExtResource( 2 )] -surface_audio_type = SubResource( 6 ) +[node name="SurfaceAudio" parent="plate_puddle/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_rpp4f") -[node name="plate_mud" parent="." instance=ExtResource( 3 )] -transform = Transform( 4, 0, 0, 0, 1, 0, 0, 0, 4, 7, 0, 0 ) +[node name="plate_mud" parent="." instance=ExtResource("3")] +transform = Transform3D(4, 0, 0, 0, 1, 0, 0, 0, 4, 7, 0, 0) [node name="Plane" parent="plate_mud" index="0"] -material/0 = ExtResource( 4 ) +material_override = ExtResource("4") -[node name="StaticBody" type="StaticBody" parent="plate_mud/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_mud/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_mud/Plane/StaticBody"] -shape = SubResource( 2 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_mud/Plane/StaticBody"] +shape = SubResource("2") -[node name="SurfaceAudio" parent="plate_mud/Plane/StaticBody" instance=ExtResource( 2 )] -surface_audio_type = SubResource( 8 ) +[node name="SurfaceAudio" parent="plate_mud/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_rwibv") -[node name="plate_grass" parent="." instance=ExtResource( 3 )] -transform = Transform( 4, 0, 0, 0, 1, 0, 0, 0, 4, -7, 0, 1 ) +[node name="plate_grass" parent="." instance=ExtResource("3")] +transform = Transform3D(4, 0, 0, 0, 1, 0, 0, 0, 4, -7, 0, 1) [node name="Plane" parent="plate_grass" index="0"] -material/0 = ExtResource( 5 ) +material_override = ExtResource("5") -[node name="StaticBody" type="StaticBody" parent="plate_grass/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_grass/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_grass/Plane/StaticBody"] -shape = SubResource( 3 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_grass/Plane/StaticBody"] +shape = SubResource("3") -[node name="SurfaceAudio" parent="plate_grass/Plane/StaticBody" instance=ExtResource( 2 )] -surface_audio_type = SubResource( 7 ) +[node name="SurfaceAudio" parent="plate_grass/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_53y85") -[node name="plate_snow" parent="." instance=ExtResource( 3 )] -transform = Transform( 4, 0, 0, 0, 1, 0, 0, 0, 4, 7, 0, -12 ) +[node name="plate_snow" parent="." instance=ExtResource("3")] +transform = Transform3D(4, 0, 0, 0, 1, 0, 0, 0, 4, 7, 0, -12) [node name="Plane" parent="plate_snow" index="0"] -material/0 = SubResource( 4 ) +material_override = SubResource("StandardMaterial3D_qcyph") -[node name="StaticBody" type="StaticBody" parent="plate_snow/Plane" index="0"] +[node name="StaticBody" type="StaticBody3D" parent="plate_snow/Plane" index="0"] -[node name="CollisionShape" type="CollisionShape" parent="plate_snow/Plane/StaticBody"] -shape = SubResource( 5 ) +[node name="CollisionShape" type="CollisionShape3D" parent="plate_snow/Plane/StaticBody"] +shape = SubResource("5") -[node name="SurfaceAudio" parent="plate_snow/Plane/StaticBody" instance=ExtResource( 2 )] -surface_audio_type = SubResource( 9 ) +[node name="SurfaceAudio" parent="plate_snow/Plane/StaticBody" instance=ExtResource("2")] +surface_audio_type = SubResource("Resource_58enk") [editable path="plate_puddle_s"] [editable path="plate_mud_s"] diff --git a/assets/meshes/ramps/ramp_material.tres b/assets/meshes/ramps/ramp_material.tres index ce46c341..3329e504 100644 --- a/assets/meshes/ramps/ramp_material.tres +++ b/assets/meshes/ramps/ramp_material.tres @@ -1,6 +1,6 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid.png" type="Texture" id=1] +[ext_resource path="res://assets/wahooney.itch.io/brown_grid.png" type="Texture2D" id=1] [resource] albedo_texture = ExtResource( 1 ) diff --git a/assets/meshes/ramps/ramps.glb.import b/assets/meshes/ramps/ramps.glb.import index 89e515cd..a6b55c9c 100644 --- a/assets/meshes/ramps/ramps.glb.import +++ b/assets/meshes/ramps/ramps.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/ramps.glb-35d8d4114d191f444c0ffb44cafb1071.scn" +uid="uid://dircx2nhwvxbw" +path="res://.godot/imported/ramps.glb-35d8d4114d191f444c0ffb44cafb1071.scn" [deps] source_file="res://assets/meshes/ramps/ramps.glb" -dest_files=[ "res://.import/ramps.glb-35d8d4114d191f444c0ffb44cafb1071.scn" ] +dest_files=["res://.godot/imported/ramps.glb-35d8d4114d191f444c0ffb44cafb1071.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/ramps/ramps.tscn b/assets/meshes/ramps/ramps.tscn index 68289c45..fb9ae7ee 100644 --- a/assets/meshes/ramps/ramps.tscn +++ b/assets/meshes/ramps/ramps.tscn @@ -1,89 +1,107 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=16 format=3 uid="uid://bdc23valbh8gf"] -[ext_resource path="res://assets/meshes/ramps/ramp_material.tres" type="Material" id=1] +[ext_resource type="Material" path="res://assets/meshes/ramps/ramp_material.tres" id="1_cws0o"] -[sub_resource type="ConvexPolygonShape" id=13] -points = PoolVector3Array( 1, 0, 4.73205, -1, 0, 4.73205, 1, 0, -4.73205, 1, 1, 0.999586, -1, 1, 0.999586, -1, 0, -4.73205, 1, 1, -1.00051, -1, 1, -1.00051 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_wwvny"] +points = PackedVector3Array(1, 0, 4.73205, -1, 0, 4.73205, 1, 0, -4.73205, 1, 1, 0.999586, -1, 1, 0.999586, -1, 0, -4.73205, 1, 1, -1.00051, -1, 1, -1.00051) -[sub_resource type="ConvexPolygonShape" id=14] -points = PoolVector3Array( 2, 0, 2.73205, 1, 0, 2.73205, 2, 0, -2.73205, 2, 1, 0.999648, 1, 1, 0.999648, 1, 0, -2.73205, 2, 1, -1.00018, 1, 1, -1.00018 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_khir2"] +points = PackedVector3Array(2, 0, 2.73205, 1, 0, 2.73205, 2, 0, -2.73205, 2, 1, 0.999648, 1, 1, 0.999648, 1, 0, -2.73205, 2, 1, -1.00018, 1, 1, -1.00018) -[sub_resource type="ConvexPolygonShape" id=15] -points = PoolVector3Array( 3, 0, 2, 2, 0, 2, 3, 0, -2, 3, 1, 1, 2, 1, 1, 2, 0, -2, 3, 1, -1, 2, 1, -1 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_4av0f"] +points = PackedVector3Array(3, 0, 2, 2, 0, 2, 3, 0, -2, 3, 1, 1, 2, 1, 1, 2, 0, -2, 3, 1, -1, 2, 1, -1) -[sub_resource type="ConvexPolygonShape" id=16] -points = PoolVector3Array( 4, 0, 1.57704, 3, 0, 1.57704, 4, 0, -1.57735, 4, 1, 0.999894, 3, 1, 0.999894, 3, 0, -1.57735, 4, 1, -1.0002, 3, 1, -1.0002 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_6x42p"] +points = PackedVector3Array(4, 0, 1.57704, 3, 0, 1.57704, 4, 0, -1.57735, 4, 1, 0.999894, 3, 1, 0.999894, 3, 0, -1.57735, 4, 1, -1.0002, 3, 1, -1.0002) -[sub_resource type="ConvexPolygonShape" id=17] -points = PoolVector3Array( 5, 0, 1.26795, 4, 0, 1.26795, 5, 0, -1.26795, 5, 1, 0.999864, 4, 1, 0.999864, 4, 0, -1.26795, 5, 1, -1.00011, 4, 1, -1.00011 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_my4gr"] +points = PackedVector3Array(5, 0, 1.26795, 4, 0, 1.26795, 5, 0, -1.26795, 5, 1, 0.999864, 4, 1, 0.999864, 4, 0, -1.26795, 5, 1, -1.00011, 4, 1, -1.00011) -[sub_resource type="ConvexPolygonShape" id=18] -points = PoolVector3Array( 6, 1, 1, 6, 0, 1, 6, 1, -1, 5, 1, 1, 5, 0, 1, 6, 0, -1, 5, 1, -1, 5, 0, -1 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_n618o"] +points = PackedVector3Array(6, 1, 1, 6, 0, 1, 6, 1, -1, 5, 1, 1, 5, 0, 1, 6, 0, -1, 5, 1, -1, 5, 0, -1) -[sub_resource type="ConvexPolygonShape" id=19] -points = PoolVector3Array( -1, 0, 2.73205, -2, 0, 2.73205, -1, 0, -2.73205, -1, 1, 0.999648, -2, 1, 0.999648, -2, 0, -2.73205, -1, 1, -1.00018, -2, 1, -1.00018 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_n6xly"] +points = PackedVector3Array(-1, 0, 2.73205, -2, 0, 2.73205, -1, 0, -2.73205, -1, 1, 0.999648, -2, 1, 0.999648, -2, 0, -2.73205, -1, 1, -1.00018, -2, 1, -1.00018) -[sub_resource type="ConvexPolygonShape" id=20] -points = PoolVector3Array( -2, 0, 2, -3, 0, 2, -2, 0, -2, -2, 1, 1, -3, 1, 1, -3, 0, -2, -2, 1, -1, -3, 1, -1 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ilcnw"] +points = PackedVector3Array(-2, 0, 2, -3, 0, 2, -2, 0, -2, -2, 1, 1, -3, 1, 1, -3, 0, -2, -2, 1, -1, -3, 1, -1) -[sub_resource type="ConvexPolygonShape" id=21] -points = PoolVector3Array( -3, 0, 1.57704, -4, 0, 1.57704, -3, 0, -1.57735, -3, 1, 0.999894, -4, 1, 0.999894, -4, 0, -1.57735, -3, 1, -1.0002, -4, 1, -1.0002 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_lutba"] +points = PackedVector3Array(-3, 0, 1.57704, -4, 0, 1.57704, -3, 0, -1.57735, -3, 1, 0.999894, -4, 1, 0.999894, -4, 0, -1.57735, -3, 1, -1.0002, -4, 1, -1.0002) -[sub_resource type="ConvexPolygonShape" id=22] -points = PoolVector3Array( -4, 0, 1.26795, -5, 0, 1.26795, -4, 0, -1.26795, -4, 1, 0.999864, -5, 1, 0.999864, -5, 0, -1.26795, -4, 1, -1.00011, -5, 1, -1.00011 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_khl2d"] +points = PackedVector3Array(-4, 0, 1.26795, -5, 0, 1.26795, -4, 0, -1.26795, -4, 1, 0.999864, -5, 1, 0.999864, -5, 0, -1.26795, -4, 1, -1.00011, -5, 1, -1.00011) -[sub_resource type="ConvexPolygonShape" id=23] -points = PoolVector3Array( -5, 1, 1, -5, 0, 1, -5, 1, -1, -6, 1, 1, -6, 0, 1, -5, 0, -1, -6, 1, -1, -6, 0, -1 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_l6v62"] +points = PackedVector3Array(-5, 1, 1, -5, 0, 1, -5, 1, -1, -6, 1, 1, -6, 0, 1, -5, 0, -1, -6, 1, -1, -6, 0, -1) -[sub_resource type="ArrayMesh" id=12] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ncpkq"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_us6x5"] +_surfaces = [{ +"aabb": AABB(-6, 0, -4.73205, 12, 1, 9.4641), +"format": 4097, +"index_count": 270, +"index_data": PackedByteArray(45, 0, 44, 0, 43, 0, 45, 0, 46, 0, 44, 0, 10, 0, 7, 0, 11, 0, 10, 0, 6, 0, 7, 0, 7, 0, 6, 0, 17, 0, 17, 0, 22, 0, 7, 0, 17, 0, 14, 0, 22, 0, 22, 0, 14, 0, 21, 0, 21, 0, 29, 0, 22, 0, 21, 0, 19, 0, 29, 0, 29, 0, 19, 0, 28, 0, 28, 0, 25, 0, 29, 0, 28, 0, 24, 0, 25, 0, 34, 0, 25, 0, 24, 0, 34, 0, 40, 0, 25, 0, 34, 0, 32, 0, 40, 0, 39, 0, 40, 0, 32, 0, 40, 0, 36, 0, 37, 0, 40, 0, 39, 0, 36, 0, 3, 0, 37, 0, 36, 0, 3, 0, 66, 0, 37, 0, 3, 0, 0, 0, 66, 0, 65, 0, 66, 0, 0, 0, 66, 0, 62, 0, 63, 0, 66, 0, 65, 0, 62, 0, 63, 0, 56, 0, 54, 0, 63, 0, 59, 0, 56, 0, 62, 0, 59, 0, 63, 0, 54, 0, 56, 0, 53, 0, 12, 0, 11, 0, 13, 0, 12, 0, 10, 0, 11, 0, 48, 0, 51, 0, 52, 0, 55, 0, 57, 0, 58, 0, 60, 0, 64, 0, 61, 0, 1, 0, 2, 0, 67, 0, 4, 0, 38, 0, 5, 0, 41, 0, 33, 0, 42, 0, 26, 0, 27, 0, 35, 0, 30, 0, 20, 0, 31, 0, 15, 0, 16, 0, 23, 0, 8, 0, 9, 0, 18, 0, 8, 0, 13, 0, 9, 0, 8, 0, 12, 0, 13, 0, 16, 0, 18, 0, 9, 0, 16, 0, 15, 0, 18, 0, 23, 0, 31, 0, 20, 0, 23, 0, 16, 0, 31, 0, 26, 0, 31, 0, 27, 0, 26, 0, 30, 0, 31, 0, 35, 0, 42, 0, 33, 0, 35, 0, 27, 0, 42, 0, 41, 0, 5, 0, 38, 0, 41, 0, 42, 0, 5, 0, 1, 0, 5, 0, 2, 0, 1, 0, 4, 0, 5, 0, 61, 0, 67, 0, 2, 0, 61, 0, 64, 0, 67, 0, 57, 0, 61, 0, 58, 0, 57, 0, 60, 0, 61, 0, 51, 0, 58, 0, 52, 0, 51, 0, 55, 0, 58, 0, 48, 0, 46, 0, 45, 0, 48, 0, 52, 0, 46, 0, 9, 0, 31, 0, 16, 0, 27, 0, 5, 0, 42, 0, 13, 0, 31, 0, 9, 0, 27, 0, 2, 0, 5, 0, 11, 0, 31, 0, 13, 0, 27, 0, 61, 0, 2, 0, 11, 0, 27, 0, 31, 0, 29, 0, 7, 0, 22, 0, 7, 0, 27, 0, 11, 0, 61, 0, 52, 0, 58, 0, 7, 0, 61, 0, 27, 0, 40, 0, 29, 0, 25, 0, 29, 0, 61, 0, 7, 0, 52, 0, 44, 0, 46, 0, 29, 0, 52, 0, 61, 0, 66, 0, 40, 0, 37, 0, 40, 0, 52, 0, 29, 0, 52, 0, 50, 0, 44, 0, 54, 0, 66, 0, 63, 0, 52, 0, 54, 0, 50, 0, 66, 0, 52, 0, 40, 0, 52, 0, 66, 0, 54, 0, 53, 0, 50, 0, 54, 0, 53, 0, 49, 0, 50, 0, 43, 0, 50, 0, 47, 0, 43, 0, 44, 0, 50, 0, 49, 0, 47, 0, 50, 0), +"primitive": 3, +"vertex_count": 68, +"vertex_data": PackedByteArray(0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 64, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 192, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 64, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 63, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 191, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 63, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 191, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 63, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 191, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 63, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 191, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 64, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 192, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 64, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 192, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 64, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 192, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 63, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 191, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 63, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 191, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 63, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 191, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 63, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 191, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 192) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_gxstm"] resource_name = "ramps_Cube017" -surfaces/0 = { -"aabb": AABB( -6, 0, -4.73205, 12, 1, 9.4641 ), -"array_data": PoolByteArray( 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 64, 129, 0, 0, 63, 118, 63, 255, 55, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 64, 0, 80, 80, 127, 255, 187, 255, 193, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 192, 129, 0, 0, 63, 237, 186, 255, 55, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 192, 46, 127, 80, 1, 255, 63, 255, 193, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 63, 127, 193, 1, 0, 60, 255, 193, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 46, 127, 176, 1, 0, 60, 255, 193, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 63, 0, 60, 255, 193, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 64, 129, 0, 0, 63, 118, 63, 255, 55, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 64, 0, 80, 80, 126, 255, 187, 255, 192, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 192, 129, 0, 0, 63, 237, 186, 255, 55, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 192, 46, 127, 80, 1, 255, 63, 255, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 46, 127, 176, 1, 0, 60, 255, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 26, 127, 100, 1, 0, 60, 255, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 129, 63, 0, 60, 255, 192, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 126, 255, 183, 255, 55, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 126, 0, 0, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 26, 230, 126, 0, 0, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 129, 126, 0, 0, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 0, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 191, 127, 127, 0, 1, 255, 61, 0, 56, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 191, 127, 0, 127, 127, 255, 59, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 127, 0, 1, 0, 60, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 100, 127, 230, 1, 0, 60, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 129, 63, 0, 60, 0, 56, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 0, 127, 127, 255, 59, 0, 0, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 126, 0, 184, 255, 59, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 56, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 126, 0, 0, 0, 60, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 129, 126, 0, 0, 0, 60, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 0, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 191, 127, 127, 0, 1, 255, 61, 0, 60, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 191, 127, 0, 126, 127, 255, 59, 0, 56, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 127, 0, 1, 0, 60, 0, 60, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 127, 0, 60, 0, 60, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 0, 126, 127, 255, 59, 0, 0, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 63, 0, 26, 26, 127, 36, 184, 0, 0, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 63, 127, 0, 127, 127, 73, 176, 0, 56, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 191, 100, 127, 230, 1, 18, 62, 0, 0, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 191, 127, 0, 127, 127, 137, 60, 0, 56, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 100, 127, 230, 1, 0, 60, 0, 0, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 80, 127, 210, 1, 0, 60, 0, 0, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 63, 0, 60, 0, 0, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 0, 127, 127, 255, 59, 0, 0, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 63, 0, 26, 230, 126, 36, 184, 255, 55, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 63, 127, 0, 127, 127, 73, 176, 0, 56, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 191, 100, 127, 230, 1, 18, 62, 0, 56, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 191, 127, 0, 127, 127, 137, 60, 0, 56, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 63, 0, 46, 46, 126, 158, 184, 255, 183, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 63, 127, 0, 127, 127, 158, 180, 0, 56, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 191, 80, 127, 210, 1, 79, 62, 255, 183, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 191, 127, 0, 127, 127, 39, 61, 0, 56, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 63, 0, 46, 46, 127, 158, 184, 0, 0, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 63, 127, 0, 127, 127, 158, 180, 0, 56, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 26, 230, 126, 0, 0, 0, 0, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 46, 46, 127, 0, 0, 0, 0, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 63, 0, 0, 0, 0, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 0, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 191, 80, 127, 210, 1, 79, 62, 0, 0, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 191, 127, 0, 127, 127, 39, 61, 0, 56, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 0, 63, 63, 127, 168, 185, 255, 187, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 127, 0, 127, 127, 255, 183, 0, 56, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 63, 63, 127, 0, 0, 255, 187, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 80, 80, 127, 0, 0, 255, 187, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 129, 63, 0, 0, 255, 187, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 192, 63, 127, 193, 1, 212, 62, 255, 187, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 192, 127, 0, 127, 127, 255, 61, 0, 56, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 63, 127, 193, 1, 0, 60, 255, 187, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 46, 127, 176, 1, 0, 60, 255, 187, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 127, 0, 60, 255, 187, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 0, 127, 127, 255, 59, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 64, 0, 63, 63, 127, 168, 185, 255, 183, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 64, 127, 0, 127, 127, 255, 183, 0, 56, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 46, 46, 127, 0, 0, 255, 183, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 63, 63, 126, 0, 0, 255, 183, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 129, 126, 0, 0, 255, 183, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 192, 63, 127, 193, 1, 212, 62, 255, 183, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 192, 127, 0, 127, 127, 255, 61, 0, 56, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 80, 127, 210, 1, 0, 60, 255, 183, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 63, 127, 193, 1, 0, 60, 255, 183, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 129, 126, 0, 60, 255, 183, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 127, 0, 127, 127, 255, 59, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 64, 0, 80, 80, 127, 255, 187, 255, 189, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 64, 127, 0, 127, 127, 237, 186, 0, 56, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 192, 46, 127, 176, 1, 0, 64, 255, 189, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 192, 127, 0, 127, 127, 118, 63, 0, 56, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 64, 0, 80, 80, 127, 255, 187, 255, 187, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 64, 127, 0, 127, 127, 237, 186, 0, 56, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 192, 46, 127, 176, 1, 255, 63, 255, 187, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 192, 127, 0, 127, 127, 118, 63, 0, 56, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 64, 129, 0, 0, 63, 187, 65, 255, 55, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 64, 0, 100, 156, 126, 186, 191, 255, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 80, 80, 126, 0, 0, 255, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 100, 156, 126, 0, 0, 255, 192, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 63, 0, 0, 255, 192, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 192, 129, 0, 0, 63, 118, 191, 255, 55, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 192, 26, 127, 100, 1, 221, 65, 255, 192, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 64, 0, 100, 156, 126, 186, 191, 255, 189, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 64, 127, 0, 127, 127, 118, 191, 0, 56, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 80, 80, 127, 0, 0, 255, 189, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 100, 156, 126, 0, 0, 255, 189, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 126, 0, 0, 255, 189, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 127, 127, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 192, 26, 127, 100, 1, 221, 65, 255, 189, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 192, 127, 0, 127, 127, 187, 65, 0, 56, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 46, 127, 176, 1, 0, 60, 255, 189, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 26, 127, 100, 1, 0, 60, 255, 189, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 129, 63, 0, 60, 255, 189, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 127, 0, 127, 127, 255, 59, 0, 0, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 255, 55, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 127, 255, 183, 255, 196, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 63, 0, 60, 0, 0, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 127, 0, 0, 255, 196, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 126, 0, 0, 255, 196, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 255, 55, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 191, 127, 127, 0, 1, 0, 62, 255, 196, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 0, 0, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 127, 127, 0, 1, 0, 60, 255, 196, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 127, 0, 60, 255, 196, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 255, 55, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 127, 255, 183, 127, 196, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 255, 55, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 191, 127, 127, 0, 1, 0, 62, 127, 196, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 63, 129, 0, 0, 63, 137, 60, 255, 55, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 63, 0, 26, 26, 127, 36, 184, 127, 196, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 0, 0, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 127, 0, 0, 127, 196, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 26, 26, 126, 0, 0, 127, 196, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 126, 0, 0, 127, 196, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 191, 129, 0, 0, 63, 73, 176, 255, 55, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 191, 100, 127, 230, 1, 18, 62, 127, 196, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 0, 0, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 127, 127, 0, 1, 0, 60, 127, 196, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 100, 127, 230, 1, 0, 60, 127, 196, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 127, 0, 60, 127, 196, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 63, 129, 0, 0, 63, 137, 60, 255, 55, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 63, 0, 26, 26, 126, 36, 184, 255, 195, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 0, 0, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 26, 26, 126, 0, 0, 255, 195, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 46, 46, 126, 0, 0, 255, 195, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 126, 0, 0, 255, 195, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 191, 129, 0, 0, 63, 73, 176, 255, 55, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 191, 100, 127, 230, 1, 18, 62, 255, 195, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 63, 129, 0, 0, 63, 39, 61, 255, 55, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 63, 0, 46, 46, 126, 158, 184, 255, 195, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 191, 129, 0, 0, 63, 158, 180, 255, 55, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 191, 80, 127, 210, 1, 79, 62, 255, 195, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 0, 0, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 100, 127, 230, 1, 0, 60, 255, 195, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 80, 127, 210, 1, 0, 60, 255, 195, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 127, 63, 0, 60, 255, 195, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 63, 129, 0, 0, 63, 39, 61, 255, 55, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 63, 0, 46, 46, 127, 158, 184, 255, 194, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 191, 129, 0, 0, 63, 158, 180, 255, 55, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 191, 80, 127, 46, 1, 79, 62, 255, 194, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 129, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 80, 127, 210, 1, 0, 60, 255, 194, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 63, 127, 193, 1, 0, 60, 255, 194, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 129, 126, 0, 60, 255, 194, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 64, 129, 0, 0, 63, 255, 61, 255, 55, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 64, 0, 63, 193, 126, 168, 185, 255, 194, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 0, 0, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 46, 46, 126, 0, 0, 255, 194, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 63, 63, 127, 0, 0, 255, 194, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 63, 0, 0, 255, 194, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 192, 129, 0, 0, 63, 255, 183, 255, 55, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 192, 63, 127, 63, 1, 212, 62, 255, 194, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 64, 129, 0, 0, 63, 255, 61, 255, 55, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 64, 0, 63, 193, 126, 168, 185, 255, 193, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 63, 255, 59, 0, 0, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 63, 193, 126, 0, 0, 255, 193, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 80, 80, 126, 0, 0, 255, 193, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 127, 126, 0, 0, 255, 193, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 192, 129, 0, 0, 63, 255, 183, 255, 55, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 192, 63, 127, 193, 1, 212, 62, 255, 193 ), -"array_index_data": PoolByteArray( 119, 0, 116, 0, 114, 0, 119, 0, 121, 0, 116, 0, 28, 0, 18, 0, 30, 0, 28, 0, 16, 0, 18, 0, 21, 0, 17, 0, 47, 0, 46, 0, 56, 0, 19, 0, 46, 0, 38, 0, 56, 0, 59, 0, 39, 0, 55, 0, 54, 0, 76, 0, 57, 0, 54, 0, 50, 0, 76, 0, 79, 0, 51, 0, 75, 0, 74, 0, 64, 0, 77, 0, 74, 0, 62, 0, 64, 0, 91, 0, 67, 0, 63, 0, 90, 0, 104, 0, 65, 0, 90, 0, 86, 0, 104, 0, 103, 0, 107, 0, 87, 0, 105, 0, 95, 0, 98, 0, 105, 0, 102, 0, 95, 0, 8, 0, 96, 0, 94, 0, 9, 0, 176, 0, 97, 0, 9, 0, 1, 0, 176, 0, 172, 0, 174, 0, 0, 0, 175, 0, 165, 0, 168, 0, 175, 0, 173, 0, 165, 0, 167, 0, 149, 0, 144, 0, 167, 0, 157, 0, 149, 0, 164, 0, 156, 0, 166, 0, 142, 0, 148, 0, 140, 0, 34, 0, 32, 0, 37, 0, 34, 0, 29, 0, 32, 0, 126, 0, 134, 0, 136, 0, 146, 0, 150, 0, 152, 0, 158, 0, 170, 0, 160, 0, 2, 0, 4, 0, 178, 0, 10, 0, 100, 0, 12, 0, 109, 0, 89, 0, 113, 0, 69, 0, 73, 0, 93, 0, 81, 0, 53, 0, 85, 0, 41, 0, 45, 0, 61, 0, 23, 0, 27, 0, 49, 0, 22, 0, 35, 0, 24, 0, 22, 0, 33, 0, 35, 0, 42, 0, 48, 0, 25, 0, 42, 0, 40, 0, 48, 0, 60, 0, 82, 0, 52, 0, 60, 0, 43, 0, 82, 0, 68, 0, 83, 0, 70, 0, 68, 0, 80, 0, 83, 0, 92, 0, 110, 0, 88, 0, 92, 0, 71, 0, 110, 0, 108, 0, 14, 0, 101, 0, 108, 0, 111, 0, 14, 0, 3, 0, 13, 0, 6, 0, 3, 0, 11, 0, 13, 0, 162, 0, 179, 0, 5, 0, 162, 0, 171, 0, 179, 0, 151, 0, 161, 0, 154, 0, 151, 0, 159, 0, 161, 0, 135, 0, 153, 0, 138, 0, 135, 0, 147, 0, 153, 0, 127, 0, 122, 0, 120, 0, 127, 0, 137, 0, 122, 0, 26, 0, 84, 0, 44, 0, 72, 0, 15, 0, 112, 0, 36, 0, 84, 0, 26, 0, 72, 0, 7, 0, 15, 0, 31, 0, 84, 0, 36, 0, 72, 0, 163, 0, 7, 0, 31, 0, 72, 0, 84, 0, 78, 0, 20, 0, 58, 0, 20, 0, 72, 0, 31, 0, 163, 0, 139, 0, 155, 0, 20, 0, 163, 0, 72, 0, 106, 0, 78, 0, 66, 0, 78, 0, 163, 0, 20, 0, 139, 0, 118, 0, 123, 0, 78, 0, 139, 0, 163, 0, 177, 0, 106, 0, 99, 0, 106, 0, 139, 0, 78, 0, 139, 0, 133, 0, 118, 0, 145, 0, 177, 0, 169, 0, 139, 0, 145, 0, 133, 0, 177, 0, 139, 0, 106, 0, 139, 0, 177, 0, 145, 0, 141, 0, 132, 0, 143, 0, 141, 0, 129, 0, 132, 0, 115, 0, 131, 0, 125, 0, 115, 0, 117, 0, 131, 0, 128, 0, 124, 0, 130, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-6, 0, -4.73205, 12, 1, 9.4641), +"attribute_data": PackedByteArray(190, 217, 238, 63, 208, 255, 255, 62, 242, 255, 127, 191, 253, 255, 63, 192, 183, 179, 93, 191, 208, 255, 255, 62, 255, 255, 255, 63, 252, 255, 63, 192, 0, 128, 255, 180, 0, 0, 192, 180, 5, 0, 128, 63, 254, 255, 63, 192, 5, 0, 128, 63, 254, 255, 63, 192, 5, 0, 128, 63, 254, 255, 63, 192, 190, 217, 238, 63, 208, 255, 255, 62, 240, 255, 127, 191, 252, 255, 31, 192, 183, 179, 93, 191, 208, 255, 255, 62, 254, 255, 255, 63, 254, 255, 31, 192, 0, 128, 255, 180, 0, 0, 192, 180, 5, 0, 128, 63, 253, 255, 31, 192, 5, 0, 128, 63, 253, 255, 31, 192, 5, 0, 128, 63, 253, 255, 31, 192, 255, 255, 255, 190, 254, 255, 255, 62, 0, 0, 165, 52, 3, 0, 0, 63, 255, 255, 255, 50, 0, 0, 0, 63, 255, 255, 255, 50, 0, 0, 0, 63, 255, 255, 255, 50, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 128, 51, 255, 255, 191, 63, 2, 0, 0, 63, 204, 255, 127, 63, 3, 0, 0, 63, 0, 0, 128, 63, 1, 0, 0, 63, 0, 0, 128, 63, 1, 0, 0, 63, 0, 0, 128, 63, 1, 0, 0, 63, 204, 255, 127, 63, 0, 0, 128, 51, 0, 0, 0, 191, 255, 255, 127, 63, 0, 0, 165, 52, 3, 0, 0, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 40, 51, 0, 0, 0, 0, 255, 255, 191, 63, 0, 0, 128, 63, 204, 255, 127, 63, 3, 0, 0, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 204, 255, 127, 63, 0, 0, 128, 51, 236, 131, 4, 191, 0, 0, 128, 51, 139, 48, 9, 190, 3, 0, 0, 63, 248, 65, 194, 63, 0, 0, 192, 52, 1, 38, 145, 63, 3, 0, 0, 63, 1, 0, 128, 63, 0, 0, 64, 52, 1, 0, 128, 63, 0, 0, 64, 52, 1, 0, 128, 63, 0, 0, 64, 52, 205, 255, 127, 63, 0, 0, 128, 51, 237, 131, 4, 191, 252, 255, 255, 62, 139, 48, 9, 190, 3, 0, 0, 63, 248, 65, 194, 63, 4, 0, 0, 63, 1, 38, 145, 63, 3, 0, 0, 63, 51, 205, 19, 191, 248, 255, 255, 190, 14, 205, 147, 190, 3, 0, 0, 63, 157, 230, 201, 63, 236, 255, 255, 190, 47, 243, 164, 63, 3, 0, 0, 63, 52, 205, 19, 191, 0, 0, 128, 51, 14, 205, 147, 190, 3, 0, 0, 63, 252, 255, 15, 52, 0, 0, 128, 51, 252, 255, 15, 52, 0, 0, 128, 51, 252, 255, 15, 52, 0, 0, 128, 51, 0, 0, 165, 52, 0, 0, 128, 51, 157, 230, 201, 63, 0, 0, 224, 52, 47, 243, 164, 63, 3, 0, 0, 63, 234, 4, 53, 191, 250, 255, 127, 191, 204, 255, 255, 190, 3, 0, 0, 63, 249, 255, 183, 52, 250, 255, 127, 191, 249, 255, 183, 52, 250, 255, 127, 191, 249, 255, 183, 52, 250, 255, 127, 191, 0, 0, 165, 52, 0, 0, 128, 51, 123, 130, 218, 63, 244, 255, 127, 191, 218, 255, 191, 63, 3, 0, 0, 63, 3, 0, 128, 63, 252, 255, 127, 191, 3, 0, 128, 63, 252, 255, 127, 191, 3, 0, 128, 63, 252, 255, 127, 191, 204, 255, 127, 63, 0, 0, 128, 51, 235, 4, 53, 191, 248, 255, 255, 190, 204, 255, 255, 190, 3, 0, 0, 63, 247, 255, 127, 52, 252, 255, 255, 190, 247, 255, 127, 52, 252, 255, 255, 190, 247, 255, 127, 52, 252, 255, 255, 190, 0, 0, 165, 52, 0, 0, 128, 51, 121, 130, 218, 63, 240, 255, 255, 190, 218, 255, 191, 63, 3, 0, 0, 63, 2, 0, 128, 63, 244, 255, 255, 190, 2, 0, 128, 63, 244, 255, 255, 190, 2, 0, 128, 63, 244, 255, 255, 190, 204, 255, 127, 63, 0, 0, 128, 51, 244, 255, 127, 191, 252, 255, 191, 191, 160, 179, 93, 191, 3, 0, 0, 63, 1, 0, 0, 64, 248, 255, 191, 191, 188, 217, 238, 63, 3, 0, 0, 63, 243, 255, 127, 191, 248, 255, 127, 191, 160, 179, 93, 191, 3, 0, 0, 63, 255, 255, 255, 63, 236, 255, 127, 191, 188, 217, 238, 63, 3, 0, 0, 63, 214, 108, 55, 64, 208, 255, 255, 62, 224, 70, 247, 191, 255, 255, 31, 192, 208, 255, 127, 63, 0, 0, 192, 180, 249, 255, 19, 53, 254, 255, 31, 192, 249, 255, 19, 53, 254, 255, 31, 192, 249, 255, 19, 53, 254, 255, 31, 192, 196, 217, 238, 191, 208, 255, 255, 62, 118, 163, 59, 64, 253, 255, 31, 192, 225, 70, 247, 191, 254, 255, 191, 191, 187, 217, 238, 191, 3, 0, 0, 63, 246, 255, 239, 52, 252, 255, 191, 191, 246, 255, 239, 52, 252, 255, 191, 191, 246, 255, 239, 52, 252, 255, 191, 191, 0, 0, 165, 52, 0, 0, 128, 51, 118, 163, 59, 64, 250, 255, 191, 191, 209, 108, 55, 64, 3, 0, 0, 63, 4, 0, 128, 63, 250, 255, 191, 191, 4, 0, 128, 63, 250, 255, 191, 191, 4, 0, 128, 63, 250, 255, 191, 191, 204, 255, 127, 63, 0, 0, 128, 51, 208, 255, 127, 63, 208, 255, 255, 62, 231, 255, 255, 190, 254, 255, 159, 192, 0, 0, 128, 63, 0, 0, 192, 180, 241, 255, 39, 53, 254, 255, 159, 192, 241, 255, 39, 53, 254, 255, 159, 192, 0, 128, 255, 180, 208, 255, 255, 62, 7, 0, 192, 63, 254, 255, 159, 192, 0, 0, 0, 0, 0, 0, 192, 180, 5, 0, 128, 63, 254, 255, 159, 192, 5, 0, 128, 63, 254, 255, 159, 192, 208, 255, 127, 63, 208, 255, 255, 62, 232, 255, 255, 190, 254, 255, 143, 192, 0, 128, 255, 180, 208, 255, 255, 62, 6, 0, 192, 63, 254, 255, 143, 192, 253, 37, 145, 63, 208, 255, 255, 62, 230, 131, 4, 191, 254, 255, 143, 192, 208, 255, 127, 63, 0, 0, 192, 180, 243, 255, 31, 53, 254, 255, 143, 192, 243, 255, 31, 53, 254, 255, 143, 192, 243, 255, 31, 53, 254, 255, 143, 192, 214, 48, 9, 190, 208, 255, 255, 62, 253, 65, 194, 63, 254, 255, 143, 192, 0, 128, 255, 180, 0, 0, 0, 0, 5, 0, 128, 63, 255, 255, 143, 192, 5, 0, 128, 63, 255, 255, 143, 192, 5, 0, 128, 63, 255, 255, 143, 192, 253, 37, 145, 63, 208, 255, 255, 62, 230, 131, 4, 191, 252, 255, 127, 192, 208, 255, 127, 63, 0, 0, 192, 180, 244, 255, 31, 53, 254, 255, 127, 192, 244, 255, 31, 53, 254, 255, 127, 192, 244, 255, 31, 53, 254, 255, 127, 192, 214, 48, 9, 190, 208, 255, 255, 62, 253, 65, 194, 63, 252, 255, 127, 192, 47, 243, 164, 63, 208, 255, 255, 62, 42, 205, 19, 191, 252, 255, 127, 192, 53, 205, 147, 190, 208, 255, 255, 62, 161, 230, 201, 63, 252, 255, 127, 192, 0, 128, 255, 180, 0, 0, 192, 180, 5, 0, 128, 63, 254, 255, 127, 192, 5, 0, 128, 63, 254, 255, 127, 192, 5, 0, 128, 63, 254, 255, 127, 192, 47, 243, 164, 63, 208, 255, 255, 62, 41, 205, 19, 191, 254, 255, 95, 192, 53, 205, 147, 190, 208, 255, 255, 62, 161, 230, 201, 63, 252, 255, 95, 192, 0, 128, 255, 180, 0, 0, 192, 180, 5, 0, 128, 63, 252, 255, 95, 192, 5, 0, 128, 63, 252, 255, 95, 192, 5, 0, 128, 63, 252, 255, 95, 192, 221, 255, 191, 63, 208, 255, 255, 62, 227, 4, 53, 191, 254, 255, 95, 192, 208, 255, 127, 63, 0, 0, 192, 180, 247, 255, 27, 53, 254, 255, 95, 192, 247, 255, 27, 53, 254, 255, 95, 192, 247, 255, 27, 53, 254, 255, 95, 192, 231, 255, 255, 190, 208, 255, 255, 62, 123, 130, 218, 63, 252, 255, 95, 192, 221, 255, 191, 63, 208, 255, 255, 62, 227, 4, 53, 191, 254, 255, 63, 192, 208, 255, 127, 63, 0, 0, 192, 180, 248, 255, 23, 53, 253, 255, 63, 192, 248, 255, 23, 53, 253, 255, 63, 192, 248, 255, 23, 53, 253, 255, 63, 192, 231, 255, 255, 190, 208, 255, 255, 62, 122, 130, 218, 63, 253, 255, 63, 192), +"format": 4119, "index_count": 270, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 180 -} +"index_data": PackedByteArray(119, 0, 116, 0, 114, 0, 119, 0, 121, 0, 116, 0, 28, 0, 18, 0, 30, 0, 28, 0, 16, 0, 18, 0, 21, 0, 17, 0, 47, 0, 46, 0, 56, 0, 19, 0, 46, 0, 38, 0, 56, 0, 59, 0, 39, 0, 55, 0, 54, 0, 76, 0, 57, 0, 54, 0, 50, 0, 76, 0, 79, 0, 51, 0, 75, 0, 74, 0, 64, 0, 77, 0, 74, 0, 62, 0, 64, 0, 91, 0, 67, 0, 63, 0, 90, 0, 104, 0, 65, 0, 90, 0, 86, 0, 104, 0, 103, 0, 107, 0, 87, 0, 105, 0, 95, 0, 98, 0, 105, 0, 102, 0, 95, 0, 8, 0, 96, 0, 94, 0, 9, 0, 176, 0, 97, 0, 9, 0, 1, 0, 176, 0, 172, 0, 174, 0, 0, 0, 175, 0, 165, 0, 168, 0, 175, 0, 173, 0, 165, 0, 167, 0, 149, 0, 144, 0, 167, 0, 157, 0, 149, 0, 164, 0, 156, 0, 166, 0, 142, 0, 148, 0, 140, 0, 34, 0, 32, 0, 37, 0, 34, 0, 29, 0, 32, 0, 126, 0, 134, 0, 136, 0, 146, 0, 150, 0, 152, 0, 158, 0, 170, 0, 160, 0, 2, 0, 4, 0, 178, 0, 10, 0, 100, 0, 12, 0, 109, 0, 89, 0, 113, 0, 69, 0, 73, 0, 93, 0, 81, 0, 53, 0, 85, 0, 41, 0, 45, 0, 61, 0, 23, 0, 27, 0, 49, 0, 22, 0, 35, 0, 24, 0, 22, 0, 33, 0, 35, 0, 42, 0, 48, 0, 25, 0, 42, 0, 40, 0, 48, 0, 60, 0, 82, 0, 52, 0, 60, 0, 43, 0, 82, 0, 68, 0, 83, 0, 70, 0, 68, 0, 80, 0, 83, 0, 92, 0, 110, 0, 88, 0, 92, 0, 71, 0, 110, 0, 108, 0, 14, 0, 101, 0, 108, 0, 111, 0, 14, 0, 3, 0, 13, 0, 6, 0, 3, 0, 11, 0, 13, 0, 162, 0, 179, 0, 5, 0, 162, 0, 171, 0, 179, 0, 151, 0, 161, 0, 154, 0, 151, 0, 159, 0, 161, 0, 135, 0, 153, 0, 138, 0, 135, 0, 147, 0, 153, 0, 127, 0, 122, 0, 120, 0, 127, 0, 137, 0, 122, 0, 26, 0, 84, 0, 44, 0, 72, 0, 15, 0, 112, 0, 36, 0, 84, 0, 26, 0, 72, 0, 7, 0, 15, 0, 31, 0, 84, 0, 36, 0, 72, 0, 163, 0, 7, 0, 31, 0, 72, 0, 84, 0, 78, 0, 20, 0, 58, 0, 20, 0, 72, 0, 31, 0, 163, 0, 139, 0, 155, 0, 20, 0, 163, 0, 72, 0, 106, 0, 78, 0, 66, 0, 78, 0, 163, 0, 20, 0, 139, 0, 118, 0, 123, 0, 78, 0, 139, 0, 163, 0, 177, 0, 106, 0, 99, 0, 106, 0, 139, 0, 78, 0, 139, 0, 133, 0, 118, 0, 145, 0, 177, 0, 169, 0, 139, 0, 145, 0, 133, 0, 177, 0, 139, 0, 106, 0, 139, 0, 177, 0, 145, 0, 141, 0, 132, 0, 143, 0, 141, 0, 129, 0, 132, 0, 115, 0, 131, 0, 125, 0, 115, 0, 117, 0, 131, 0, 128, 0, 124, 0, 130, 0), +"material": SubResource("StandardMaterial3D_ncpkq"), +"primitive": 3, +"vertex_count": 180, +"vertex_data": PackedByteArray(0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 64, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 64, 255, 127, 37, 209, 37, 209, 255, 255, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 192, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 192, 0, 0, 0, 0, 232, 217, 46, 192, 217, 174, 255, 255, 37, 209, 255, 127, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 191, 255, 255, 255, 63, 255, 127, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 217, 174, 255, 255, 217, 46, 255, 127, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 64, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 64, 255, 127, 37, 209, 37, 209, 255, 255, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 192, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 0, 0, 232, 217, 46, 192, 217, 174, 255, 255, 37, 209, 255, 127, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 217, 174, 255, 255, 217, 46, 255, 127, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 12, 155, 255, 255, 242, 228, 255, 127, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 12, 155, 242, 100, 254, 255, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 0, 0, 254, 255, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 0, 0, 255, 255, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 192, 64, 0, 0, 0, 0, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 255, 0, 0, 192, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 63, 255, 127, 12, 155, 12, 155, 255, 255, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 128, 64, 0, 0, 0, 0, 48, 76, 162, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 63, 255, 127, 12, 155, 242, 100, 255, 255, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 160, 64, 0, 0, 0, 0, 48, 76, 162, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 63, 255, 127, 217, 174, 217, 174, 254, 255, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 64, 64, 0, 0, 0, 0, 155, 230, 201, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 63, 255, 127, 217, 174, 217, 174, 255, 255, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 12, 155, 242, 100, 255, 255, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 217, 174, 217, 174, 255, 255, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 128, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 128, 64, 0, 0, 0, 0, 155, 230, 201, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 255, 127, 255, 191, 255, 191, 255, 255, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 191, 255, 191, 255, 255, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 37, 209, 37, 209, 255, 255, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 192, 255, 191, 255, 255, 255, 63, 255, 127, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 192, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 191, 255, 255, 255, 63, 255, 127, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 217, 174, 255, 255, 217, 46, 255, 127, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 64, 255, 127, 255, 191, 255, 191, 255, 255, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 217, 174, 217, 174, 255, 255, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 191, 255, 191, 255, 255, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 0, 0, 254, 255, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 192, 255, 191, 255, 255, 255, 63, 255, 127, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 192, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 191, 255, 255, 255, 63, 255, 127, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 0, 0, 254, 255, 0, 0, 64, 64, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 64, 255, 127, 37, 209, 37, 209, 255, 255, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 64, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 192, 217, 174, 255, 255, 217, 46, 255, 127, 0, 0, 128, 63, 0, 0, 0, 0, 232, 217, 46, 192, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 64, 255, 127, 37, 209, 37, 209, 255, 255, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 64, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 192, 217, 174, 255, 255, 217, 46, 255, 127, 0, 0, 0, 64, 0, 0, 0, 0, 232, 217, 46, 192, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 64, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 64, 255, 127, 242, 228, 12, 27, 255, 255, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 37, 209, 37, 209, 254, 255, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 242, 228, 12, 27, 255, 255, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 192, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 0, 0, 244, 108, 151, 192, 12, 155, 255, 255, 242, 228, 255, 127, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 64, 255, 127, 242, 228, 12, 27, 255, 255, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 64, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 37, 209, 37, 209, 255, 255, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 242, 228, 12, 27, 255, 255, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 254, 255, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 192, 12, 155, 255, 255, 242, 228, 255, 127, 0, 0, 128, 63, 0, 0, 0, 0, 244, 108, 151, 192, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 217, 174, 255, 255, 217, 46, 255, 127, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 12, 155, 255, 255, 242, 228, 255, 127, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 254, 255, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 192, 192, 0, 0, 0, 0, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 192, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 255, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 63, 255, 127, 12, 155, 12, 155, 255, 255, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 12, 155, 12, 155, 254, 255, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 254, 255, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 160, 192, 0, 0, 0, 0, 48, 76, 162, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 255, 255, 255, 255, 127, 255, 127, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 160, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 255, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 63, 255, 127, 12, 155, 12, 155, 254, 255, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 12, 155, 12, 155, 254, 255, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 217, 174, 217, 174, 254, 255, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 255, 255, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 192, 0, 0, 0, 0, 48, 76, 162, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 63, 255, 127, 217, 174, 217, 174, 254, 255, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 192, 0, 0, 0, 0, 155, 230, 201, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 242, 228, 255, 255, 242, 100, 255, 127, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 128, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 63, 255, 127, 217, 174, 217, 174, 255, 255, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 64, 192, 0, 0, 0, 0, 155, 230, 201, 191, 37, 209, 255, 255, 217, 174, 255, 127, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 37, 209, 255, 255, 37, 81, 255, 127, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 191, 255, 255, 255, 63, 255, 127, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 191, 255, 127, 255, 255, 0, 0, 254, 255, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 64, 255, 127, 255, 191, 255, 63, 255, 255, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 217, 174, 217, 174, 254, 255, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 191, 255, 191, 255, 255, 0, 0, 64, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 64, 192, 0, 0, 0, 0, 0, 0, 0, 192, 255, 191, 255, 255, 255, 191, 255, 127, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 64, 255, 127, 255, 191, 255, 63, 254, 255, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 191, 255, 63, 255, 255, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 37, 209, 37, 209, 254, 255, 0, 0, 0, 192, 0, 0, 128, 63, 0, 0, 128, 63, 255, 127, 255, 255, 255, 255, 254, 255, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 192, 255, 191, 255, 255, 255, 63, 255, 127) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_us6x5") -[node name="Ramps" type="StaticBody"] +[node name="Ramps" type="StaticBody3D"] -[node name="MidRamp15CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 13 ) +[node name="MidRamp15CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_wwvny") -[node name="RightRamp30CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 14 ) +[node name="RightRamp30CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_khir2") -[node name="RightRamp45CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 15 ) +[node name="RightRamp45CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_4av0f") -[node name="RightRamp60CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 16 ) +[node name="RightRamp60CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_6x42p") -[node name="RightRamp75CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 17 ) +[node name="RightRamp75CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_my4gr") -[node name="RightRamp90CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 18 ) +[node name="RightRamp90CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_n618o") -[node name="LeftRamp30CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 19 ) +[node name="LeftRamp30CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_n6xly") -[node name="LeftRamp45CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 20 ) +[node name="LeftRamp45CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_ilcnw") -[node name="LeftRamp60CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 21 ) +[node name="LeftRamp60CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_lutba") -[node name="LeftRamp75CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 22 ) +[node name="LeftRamp75CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_khl2d") -[node name="LeftRamp90CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 23 ) +[node name="LeftRamp90CollisionShape" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_l6v62") -[node name="Mesh" type="MeshInstance" parent="."] -mesh = SubResource( 12 ) -material/0 = ExtResource( 1 ) +[node name="Mesh" type="MeshInstance3D" parent="."] +gi_mode = 0 +mesh = SubResource("ArrayMesh_gxstm") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("1_cws0o") diff --git a/assets/meshes/table/table.tscn b/assets/meshes/table/table.tscn index 3f4a3570..03cba253 100644 --- a/assets/meshes/table/table.tscn +++ b/assets/meshes/table/table.tscn @@ -1,63 +1,63 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=6 format=3 uid="uid://cbcbffvk7xth4"] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=1] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="1"] -[sub_resource type="CubeMesh" id=1] -size = Vector3( 0.05, 0.8, 0.05 ) +[sub_resource type="BoxMesh" id="1"] +size = Vector3(0.05, 0.8, 0.05) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 1.6, 0.05, 0.8 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(1.6, 0.05, 0.8) -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.025, 0.4, 0.025 ) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(0.05, 0.8, 0.05) -[sub_resource type="BoxShape" id=4] +[sub_resource type="BoxShape3D" id="4"] margin = 0.01 -extents = Vector3( 0.8, 0.025, 0.4 ) - -[node name="Table" type="StaticBody"] - -[node name="LegMesh1" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, 0.3 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 1 ) - -[node name="LegMesh2" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, -0.3 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 1 ) - -[node name="LegMesh3" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, 0.3 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 1 ) - -[node name="LegMesh4" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, -0.3 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 1 ) - -[node name="TopMesh" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 1 ) - -[node name="LegShape1" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, 0.3 ) -shape = SubResource( 3 ) - -[node name="LegShape2" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, -0.3 ) -shape = SubResource( 3 ) - -[node name="LegShape3" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, 0.3 ) -shape = SubResource( 3 ) - -[node name="LegShape4" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, -0.3 ) -shape = SubResource( 3 ) - -[node name="TopShape" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0 ) -shape = SubResource( 4 ) +size = Vector3(1.6, 0.05, 0.8) + +[node name="Table" type="StaticBody3D"] + +[node name="LegMesh1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, 0.3) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("1") + +[node name="LegMesh2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, -0.3) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("1") + +[node name="LegMesh3" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, 0.3) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("1") + +[node name="LegMesh4" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, -0.3) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("1") + +[node name="TopMesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("1") + +[node name="LegShape1" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, 0.3) +shape = SubResource("3") + +[node name="LegShape2" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.4, -0.3) +shape = SubResource("3") + +[node name="LegShape3" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, 0.3) +shape = SubResource("3") + +[node name="LegShape4" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.4, -0.3) +shape = SubResource("3") + +[node name="TopShape" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) +shape = SubResource("4") diff --git a/assets/meshes/teacup/saucer.glb.import b/assets/meshes/teacup/saucer.glb.import index 1df1db0c..32d2568e 100644 --- a/assets/meshes/teacup/saucer.glb.import +++ b/assets/meshes/teacup/saucer.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/saucer.glb-ac2a169fb17e78298ad1397a20695d0e.scn" +uid="uid://wjmkacwv8f52" +path="res://.godot/imported/saucer.glb-ac2a169fb17e78298ad1397a20695d0e.scn" [deps] source_file="res://assets/meshes/teacup/saucer.glb" -dest_files=[ "res://.import/saucer.glb-ac2a169fb17e78298ad1397a20695d0e.scn" ] +dest_files=["res://.godot/imported/saucer.glb-ac2a169fb17e78298ad1397a20695d0e.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/teacup/stand.glb.import b/assets/meshes/teacup/stand.glb.import index 00712a93..93cbccd2 100644 --- a/assets/meshes/teacup/stand.glb.import +++ b/assets/meshes/teacup/stand.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/stand.glb-b6e576a7c92b629a037d8e3fe1d32aaa.scn" +uid="uid://m3qtqvgasyyb" +path="res://.godot/imported/stand.glb-b6e576a7c92b629a037d8e3fe1d32aaa.scn" [deps] source_file="res://assets/meshes/teacup/stand.glb" -dest_files=[ "res://.import/stand.glb-b6e576a7c92b629a037d8e3fe1d32aaa.scn" ] +dest_files=["res://.godot/imported/stand.glb-b6e576a7c92b629a037d8e3fe1d32aaa.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/teacup/teacup.glb.import b/assets/meshes/teacup/teacup.glb.import index d48f4d15..a1455acf 100644 --- a/assets/meshes/teacup/teacup.glb.import +++ b/assets/meshes/teacup/teacup.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/teacup.glb-c133371895dfa59f67d0f1700cc4ca0f.scn" +uid="uid://btkch3a8qylwm" +path="res://.godot/imported/teacup.glb-c133371895dfa59f67d0f1700cc4ca0f.scn" [deps] source_file="res://assets/meshes/teacup/teacup.glb" -dest_files=[ "res://.import/teacup.glb-c133371895dfa59f67d0f1700cc4ca0f.scn" ] +dest_files=["res://.godot/imported/teacup.glb-c133371895dfa59f67d0f1700cc4ca0f.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/teleport/Body.material b/assets/meshes/teleport/Body.material deleted file mode 100644 index 9385024f..00000000 Binary files a/assets/meshes/teleport/Body.material and /dev/null differ diff --git a/assets/meshes/teleport/Title.material b/assets/meshes/teleport/Title.material deleted file mode 100644 index d59867a8..00000000 Binary files a/assets/meshes/teleport/Title.material and /dev/null differ diff --git a/assets/meshes/teleport/teleport.gd b/assets/meshes/teleport/teleport.gd index b17b7227..4db63206 100644 --- a/assets/meshes/teleport/teleport.gd +++ b/assets/meshes/teleport/teleport.gd @@ -1,23 +1,23 @@ -tool +@tool class_name Teleport -extends Spatial +extends Node3D ## Scene base for the current scene -export var scene_base: NodePath +@export var scene_base: NodePath ## Scene to teleport to, or none for main menu -export var scene: PackedScene +@export var scene: PackedScene ## Title texture -export var title: Texture setget _set_title +@export var title: Texture2D: set = _set_title ## Can Teleporter be used -export var active := true +@export var active := true # Scene base to trigger loading -onready var _scene_base: XRToolsSceneBase = get_node(scene_base) +@onready var _scene_base: XRToolsSceneBase = get_node(scene_base) func _ready(): @@ -25,7 +25,7 @@ func _ready(): # Called when the player enters the teleport area -func _on_TeleportArea_body_entered(body: Spatial): +func _on_TeleportArea_body_entered(body: Node3D): # Skip if scene base is not known if not _scene_base: return @@ -47,7 +47,7 @@ func _on_TeleportArea_body_entered(body: Spatial): func set_collision_disabled(value): if !Engine.is_editor_hint(): for child in get_node("TeleportBody").get_children(): - if child is CollisionShape: + if child is CollisionShape3D: child.disabled = value func _set_title(value): @@ -58,4 +58,4 @@ func _set_title(value): func _update_title(): if title: var material: ShaderMaterial = $TeleportBody/Top.get_active_material(1) - material.set_shader_param("Title", title) + material.set_shader_parameter("Title", title) diff --git a/assets/meshes/teleport/teleport.glb.import b/assets/meshes/teleport/teleport.glb.import index 5591d6a3..3c39aa52 100644 --- a/assets/meshes/teleport/teleport.glb.import +++ b/assets/meshes/teleport/teleport.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/teleport.glb-112a12b81cc29759a2447576b0d3f192.scn" +uid="uid://vhtqagtfb4m4" +path="res://.godot/imported/teleport.glb-112a12b81cc29759a2447576b0d3f192.scn" [deps] source_file="res://assets/meshes/teleport/teleport.glb" -dest_files=[ "res://.import/teleport.glb-112a12b81cc29759a2447576b0d3f192.scn" ] +dest_files=["res://.godot/imported/teleport.glb-112a12b81cc29759a2447576b0d3f192.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/teleport/teleport.tscn b/assets/meshes/teleport/teleport.tscn index cafc9a93..4616c561 100644 --- a/assets/meshes/teleport/teleport.tscn +++ b/assets/meshes/teleport/teleport.tscn @@ -1,107 +1,175 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=18 format=3 uid="uid://3a6wjr3a13vd"] -[ext_resource path="res://assets/meshes/teleport/teleport.gd" type="Script" id=1] -[ext_resource path="res://assets/meshes/teleport/teleport_area_shader.tres" type="Material" id=2] -[ext_resource path="res://assets/meshes/teleport/teleport_body_material.tres" type="Material" id=3] -[ext_resource path="res://assets/meshes/teleport/teleport_title_material.tres" type="Material" id=4] +[ext_resource type="Script" path="res://assets/meshes/teleport/teleport.gd" id="1_mkuv0"] +[ext_resource type="Material" path="res://assets/meshes/teleport/teleport_body_material.tres" id="2_0kehv"] +[ext_resource type="Material" uid="uid://c26e12f2whdrj" path="res://assets/meshes/teleport/teleport_title_material.tres" id="3_sl3q4"] +[ext_resource type="Material" uid="uid://d4nr1joloeff8" path="res://assets/meshes/teleport/teleport_area_shader.tres" id="4_2bbe5"] -[sub_resource type="ArrayMesh" id=1] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xbwut"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_wuhjn"] +_surfaces = [{ +"aabb": AABB(-1.05, 0, -1.05, 2.1, 0.1, 2.1), +"format": 4097, +"index_count": 282, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 35, 0, 33, 0, 32, 0, 34, 0, 35, 0, 34, 0, 37, 0, 35, 0, 34, 0, 36, 0, 37, 0, 36, 0, 39, 0, 37, 0, 36, 0, 38, 0, 39, 0, 38, 0, 41, 0, 39, 0, 38, 0, 40, 0, 41, 0, 40, 0, 43, 0, 41, 0, 40, 0, 42, 0, 43, 0, 42, 0, 45, 0, 43, 0, 42, 0, 44, 0, 45, 0, 44, 0, 47, 0, 45, 0, 44, 0, 46, 0, 47, 0, 46, 0, 49, 0, 47, 0, 46, 0, 48, 0, 49, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 50, 0, 53, 0, 51, 0, 50, 0, 52, 0, 53, 0, 52, 0, 55, 0, 53, 0, 52, 0, 54, 0, 55, 0, 54, 0, 57, 0, 55, 0, 54, 0, 56, 0, 57, 0, 56, 0, 59, 0, 57, 0, 56, 0, 58, 0, 59, 0, 58, 0, 61, 0, 59, 0, 58, 0, 60, 0, 61, 0, 5, 0, 1, 0, 3, 0, 1, 0, 61, 0, 63, 0, 61, 0, 57, 0, 59, 0, 57, 0, 53, 0, 55, 0, 53, 0, 49, 0, 51, 0, 49, 0, 45, 0, 47, 0, 45, 0, 41, 0, 43, 0, 41, 0, 37, 0, 39, 0, 37, 0, 33, 0, 35, 0, 33, 0, 29, 0, 31, 0, 29, 0, 25, 0, 27, 0, 25, 0, 21, 0, 23, 0, 21, 0, 17, 0, 19, 0, 17, 0, 13, 0, 15, 0, 13, 0, 9, 0, 11, 0, 9, 0, 5, 0, 7, 0, 5, 0, 61, 0, 1, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 5, 0, 9, 0, 5, 0, 53, 0, 61, 0, 53, 0, 37, 0, 45, 0, 37, 0, 21, 0, 29, 0, 21, 0, 5, 0, 13, 0, 5, 0, 37, 0, 53, 0, 37, 0, 5, 0, 21, 0, 60, 0, 63, 0, 61, 0, 60, 0, 62, 0, 63, 0, 62, 0, 1, 0, 63, 0, 62, 0, 0, 0, 1, 0), +"lods": [0.612783, PackedByteArray(0, 0, 2, 0, 23, 0, 2, 0, 4, 0, 23, 0, 62, 0, 0, 0, 23, 0, 4, 0, 6, 0, 23, 0, 60, 0, 62, 0, 23, 0, 6, 0, 8, 0, 23, 0, 58, 0, 60, 0, 23, 0, 8, 0, 10, 0, 23, 0, 10, 0, 12, 0, 23, 0, 12, 0, 14, 0, 23, 0, 14, 0, 16, 0, 23, 0, 16, 0, 18, 0, 23, 0, 18, 0, 20, 0, 23, 0, 20, 0, 22, 0, 23, 0, 22, 0, 24, 0, 23, 0, 24, 0, 26, 0, 23, 0, 26, 0, 28, 0, 23, 0, 28, 0, 30, 0, 23, 0, 30, 0, 33, 0, 23, 0, 30, 0, 32, 0, 33, 0, 56, 0, 58, 0, 23, 0, 56, 0, 23, 0, 47, 0, 54, 0, 56, 0, 47, 0, 52, 0, 54, 0, 47, 0, 50, 0, 52, 0, 47, 0, 48, 0, 50, 0, 47, 0, 46, 0, 48, 0, 47, 0, 44, 0, 46, 0, 47, 0, 42, 0, 44, 0, 47, 0, 40, 0, 42, 0, 47, 0, 38, 0, 40, 0, 47, 0, 36, 0, 38, 0, 47, 0, 34, 0, 36, 0, 47, 0, 32, 0, 34, 0, 47, 0, 32, 0, 47, 0, 33, 0, 47, 0, 23, 0, 33, 0)], +"primitive": 3, +"vertex_count": 64, +"vertex_data": PackedByteArray(240, 255, 63, 176, 0, 0, 0, 0, 102, 102, 134, 191, 0, 0, 0, 0, 205, 204, 204, 61, 102, 102, 102, 191, 216, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 191, 149, 203, 51, 62, 205, 204, 204, 61, 17, 249, 97, 191, 10, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 191, 45, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 191, 88, 86, 21, 63, 0, 0, 0, 0, 192, 127, 95, 191, 222, 0, 0, 63, 205, 204, 204, 61, 18, 146, 63, 191, 255, 17, 62, 63, 0, 0, 0, 0, 255, 17, 62, 191, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 191, 192, 127, 95, 63, 0, 0, 0, 0, 88, 86, 21, 191, 18, 146, 63, 63, 205, 204, 204, 61, 222, 0, 0, 191, 188, 86, 120, 63, 0, 0, 0, 0, 9, 187, 205, 190, 161, 220, 84, 63, 205, 204, 204, 61, 44, 87, 176, 190, 74, 209, 131, 63, 0, 0, 0, 0, 218, 194, 81, 190, 17, 249, 97, 63, 205, 204, 204, 61, 150, 203, 51, 190, 102, 102, 134, 63, 0, 0, 0, 0, 61, 32, 65, 51, 102, 102, 102, 63, 205, 204, 204, 61, 16, 247, 40, 51, 74, 209, 131, 63, 0, 0, 0, 0, 216, 194, 81, 62, 17, 249, 97, 63, 205, 204, 204, 61, 149, 203, 51, 62, 189, 86, 120, 63, 0, 0, 0, 0, 8, 187, 205, 62, 162, 220, 84, 63, 205, 204, 204, 61, 43, 87, 176, 62, 193, 127, 95, 63, 0, 0, 0, 0, 87, 86, 21, 63, 19, 146, 63, 63, 205, 204, 204, 61, 221, 0, 0, 63, 255, 17, 62, 63, 0, 0, 0, 0, 255, 17, 62, 63, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 63, 87, 86, 21, 63, 0, 0, 0, 0, 193, 127, 95, 63, 221, 0, 0, 63, 205, 204, 204, 61, 19, 146, 63, 63, 11, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 63, 46, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 63, 215, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 63, 148, 203, 51, 62, 205, 204, 204, 61, 18, 249, 97, 63, 60, 160, 198, 179, 0, 0, 0, 0, 102, 102, 134, 63, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 211, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 63, 144, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 63, 9, 187, 205, 190, 0, 0, 0, 0, 188, 86, 120, 63, 44, 87, 176, 190, 205, 204, 204, 61, 161, 220, 84, 63, 89, 86, 21, 191, 0, 0, 0, 0, 191, 127, 95, 63, 222, 0, 0, 191, 205, 204, 204, 61, 17, 146, 63, 63, 254, 17, 62, 191, 0, 0, 0, 0, 0, 18, 62, 63, 218, 234, 34, 191, 205, 204, 204, 61, 219, 234, 34, 63, 189, 127, 95, 191, 0, 0, 0, 0, 91, 86, 21, 63, 16, 146, 63, 191, 205, 204, 204, 61, 224, 0, 0, 63, 188, 86, 120, 191, 0, 0, 0, 0, 14, 187, 205, 62, 161, 220, 84, 191, 205, 204, 204, 61, 49, 87, 176, 62, 74, 209, 131, 191, 0, 0, 0, 0, 220, 194, 81, 62, 17, 249, 97, 191, 205, 204, 204, 61, 152, 203, 51, 62, 102, 102, 134, 191, 0, 0, 0, 0, 124, 28, 103, 178, 102, 102, 102, 191, 205, 204, 204, 61, 143, 97, 56, 178, 74, 209, 131, 191, 0, 0, 0, 0, 222, 194, 81, 190, 17, 249, 97, 191, 205, 204, 204, 61, 154, 203, 51, 190, 187, 86, 120, 191, 0, 0, 0, 0, 15, 187, 205, 190, 160, 220, 84, 191, 205, 204, 204, 61, 50, 87, 176, 190, 194, 127, 95, 191, 0, 0, 0, 0, 85, 86, 21, 191, 20, 146, 63, 191, 205, 204, 204, 61, 219, 0, 0, 191, 1, 18, 62, 191, 0, 0, 0, 0, 254, 17, 62, 191, 220, 234, 34, 191, 205, 204, 204, 61, 218, 234, 34, 191, 89, 86, 21, 191, 0, 0, 0, 0, 192, 127, 95, 191, 222, 0, 0, 191, 205, 204, 204, 61, 18, 146, 63, 191, 9, 187, 205, 190, 0, 0, 0, 0, 189, 86, 120, 191, 44, 87, 176, 190, 205, 204, 204, 61, 162, 220, 84, 191, 210, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 191, 143, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 191) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_6x10k"] resource_name = "teleport_Cone" -surfaces/0 = { -"aabb": AABB( -1.05, 0, -1.05, 2.1, 0.1, 2.1 ), -"array_data": PoolByteArray( 240, 255, 63, 176, 0, 0, 0, 0, 102, 102, 134, 191, 50, 127, 129, 63, 0, 56, 144, 56, 0, 0, 0, 0, 205, 204, 204, 61, 102, 102, 102, 191, 0, 127, 212, 63, 122, 46, 180, 57, 0, 0, 0, 0, 205, 204, 204, 61, 102, 102, 102, 191, 50, 127, 129, 63, 0, 56, 222, 54, 216, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 191, 55, 117, 129, 52, 150, 54, 144, 56, 149, 203, 51, 62, 205, 204, 204, 61, 17, 249, 97, 191, 0, 127, 212, 63, 78, 44, 12, 57, 149, 203, 51, 62, 205, 204, 204, 61, 17, 249, 97, 191, 55, 117, 129, 52, 150, 54, 222, 54, 10, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 191, 59, 109, 129, 44, 44, 53, 144, 56, 45, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 191, 0, 127, 212, 63, 102, 42, 90, 56, 45, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 191, 59, 109, 129, 44, 44, 53, 222, 54, 88, 86, 21, 63, 0, 0, 0, 0, 192, 127, 95, 191, 61, 102, 129, 88, 132, 51, 144, 56, 222, 0, 0, 63, 205, 204, 204, 61, 18, 146, 63, 191, 0, 127, 212, 63, 102, 42, 74, 55, 222, 0, 0, 63, 205, 204, 204, 61, 18, 146, 63, 191, 61, 102, 129, 88, 132, 51, 222, 54, 255, 17, 62, 63, 0, 0, 0, 0, 255, 17, 62, 191, 61, 96, 130, 95, 176, 48, 144, 56, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 191, 0, 127, 212, 63, 78, 44, 230, 53, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 191, 61, 96, 129, 95, 176, 48, 222, 54, 192, 127, 95, 63, 0, 0, 0, 0, 88, 86, 21, 191, 61, 90, 130, 25, 115, 43, 144, 56, 18, 146, 63, 63, 205, 204, 204, 61, 222, 0, 0, 191, 61, 90, 129, 25, 115, 43, 222, 54, 18, 146, 63, 63, 205, 204, 204, 61, 222, 0, 0, 191, 0, 127, 212, 63, 122, 46, 150, 52, 188, 86, 120, 63, 0, 0, 0, 0, 9, 187, 205, 190, 59, 85, 130, 108, 183, 167, 144, 56, 161, 220, 84, 63, 205, 204, 204, 61, 44, 87, 176, 190, 59, 85, 130, 108, 183, 167, 222, 54, 161, 220, 84, 63, 205, 204, 204, 61, 44, 87, 176, 190, 0, 127, 212, 63, 208, 48, 210, 50, 74, 209, 131, 63, 0, 0, 0, 0, 218, 194, 81, 190, 55, 80, 129, 116, 149, 175, 144, 56, 17, 249, 97, 63, 205, 204, 204, 61, 150, 203, 51, 190, 55, 80, 129, 116, 149, 175, 222, 54, 17, 249, 97, 63, 205, 204, 204, 61, 150, 203, 51, 190, 0, 127, 212, 63, 210, 50, 208, 48, 102, 102, 134, 63, 0, 0, 0, 0, 61, 32, 65, 51, 50, 76, 127, 1, 158, 178, 144, 56, 102, 102, 102, 63, 205, 204, 204, 61, 16, 247, 40, 51, 50, 76, 127, 1, 158, 178, 222, 54, 102, 102, 102, 63, 205, 204, 204, 61, 16, 247, 40, 51, 0, 127, 212, 63, 150, 52, 122, 46, 74, 209, 131, 63, 0, 0, 0, 0, 216, 194, 81, 62, 46, 71, 127, 10, 185, 180, 144, 56, 17, 249, 97, 63, 205, 204, 204, 61, 149, 203, 51, 62, 46, 71, 127, 10, 185, 180, 222, 54, 17, 249, 97, 63, 205, 204, 204, 61, 149, 203, 51, 62, 0, 127, 212, 63, 230, 53, 78, 44, 189, 86, 120, 63, 0, 0, 0, 0, 8, 187, 205, 62, 41, 67, 126, 18, 35, 182, 144, 56, 162, 220, 84, 63, 205, 204, 204, 61, 43, 87, 176, 62, 41, 67, 126, 18, 35, 182, 222, 54, 162, 220, 84, 63, 205, 204, 204, 61, 43, 87, 176, 62, 0, 127, 212, 63, 74, 55, 102, 42, 193, 127, 95, 63, 0, 0, 0, 0, 87, 86, 21, 63, 36, 65, 126, 101, 141, 183, 144, 56, 19, 146, 63, 63, 205, 204, 204, 61, 221, 0, 0, 63, 36, 65, 127, 25, 141, 183, 222, 54, 19, 146, 63, 63, 205, 204, 204, 61, 221, 0, 0, 63, 0, 127, 212, 63, 90, 56, 102, 42, 255, 17, 62, 63, 0, 0, 0, 0, 255, 17, 62, 63, 30, 65, 127, 31, 123, 184, 144, 56, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 63, 30, 65, 126, 95, 123, 184, 222, 54, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 63, 0, 127, 212, 63, 12, 57, 78, 44, 87, 86, 21, 63, 0, 0, 0, 0, 193, 127, 95, 63, 24, 65, 126, 38, 48, 185, 144, 56, 221, 0, 0, 63, 205, 204, 204, 61, 19, 146, 63, 63, 24, 65, 127, 38, 48, 185, 222, 54, 221, 0, 0, 63, 205, 204, 204, 61, 19, 146, 63, 63, 0, 127, 212, 63, 180, 57, 122, 46, 11, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 63, 17, 67, 127, 82, 229, 185, 144, 56, 46, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 63, 17, 67, 126, 82, 229, 185, 222, 54, 46, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 63, 0, 127, 212, 63, 75, 58, 208, 48, 215, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 63, 9, 71, 126, 52, 154, 186, 144, 56, 148, 203, 51, 62, 205, 204, 204, 61, 18, 249, 97, 63, 9, 71, 127, 52, 154, 186, 222, 54, 148, 203, 51, 62, 205, 204, 204, 61, 18, 249, 97, 63, 0, 127, 212, 63, 203, 58, 210, 50, 60, 160, 198, 179, 0, 0, 0, 0, 102, 102, 134, 63, 0, 76, 121, 69, 79, 187, 144, 56, 60, 160, 198, 179, 0, 0, 0, 0, 102, 102, 134, 63, 0, 76, 114, 60, 167, 63, 144, 56, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 0, 76, 121, 69, 79, 187, 222, 54, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 0, 127, 212, 63, 48, 59, 150, 52, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 0, 76, 114, 60, 167, 63, 222, 54, 211, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 63, 247, 71, 105, 63, 77, 63, 144, 56, 144, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 63, 0, 127, 212, 63, 118, 59, 230, 53, 144, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 63, 247, 71, 105, 63, 77, 63, 222, 54, 9, 187, 205, 190, 0, 0, 0, 0, 188, 86, 120, 63, 239, 67, 89, 63, 242, 62, 144, 56, 44, 87, 176, 190, 205, 204, 204, 61, 161, 220, 84, 63, 0, 127, 212, 63, 153, 59, 74, 55, 44, 87, 176, 190, 205, 204, 204, 61, 161, 220, 84, 63, 239, 67, 89, 63, 242, 62, 222, 54, 89, 86, 21, 191, 0, 0, 0, 0, 191, 127, 95, 63, 232, 65, 76, 63, 152, 62, 144, 56, 222, 0, 0, 191, 205, 204, 204, 61, 17, 146, 63, 63, 0, 127, 212, 63, 153, 59, 90, 56, 222, 0, 0, 191, 205, 204, 204, 61, 17, 146, 63, 63, 232, 65, 76, 63, 152, 62, 222, 54, 254, 17, 62, 191, 0, 0, 0, 0, 0, 18, 62, 63, 226, 65, 63, 63, 61, 62, 144, 56, 218, 234, 34, 191, 205, 204, 204, 61, 219, 234, 34, 63, 0, 127, 212, 63, 118, 59, 12, 57, 218, 234, 34, 191, 205, 204, 204, 61, 219, 234, 34, 63, 226, 65, 63, 63, 61, 62, 222, 54, 189, 127, 95, 191, 0, 0, 0, 0, 91, 86, 21, 63, 220, 65, 50, 63, 227, 61, 144, 56, 16, 146, 63, 191, 205, 204, 204, 61, 224, 0, 0, 63, 0, 127, 212, 63, 48, 59, 180, 57, 16, 146, 63, 191, 205, 204, 204, 61, 224, 0, 0, 63, 220, 65, 50, 63, 227, 61, 222, 54, 188, 86, 120, 191, 0, 0, 0, 0, 14, 187, 205, 62, 215, 67, 37, 63, 136, 61, 144, 56, 161, 220, 84, 191, 205, 204, 204, 61, 49, 87, 176, 62, 0, 127, 212, 63, 203, 58, 75, 58, 161, 220, 84, 191, 205, 204, 204, 61, 49, 87, 176, 62, 215, 67, 37, 63, 136, 61, 222, 54, 74, 209, 131, 191, 0, 0, 0, 0, 220, 194, 81, 62, 210, 71, 21, 63, 46, 61, 144, 56, 17, 249, 97, 191, 205, 204, 204, 61, 152, 203, 51, 62, 0, 127, 212, 63, 75, 58, 203, 58, 17, 249, 97, 191, 205, 204, 204, 61, 152, 203, 51, 62, 210, 71, 21, 63, 46, 61, 222, 54, 102, 102, 134, 191, 0, 0, 0, 0, 124, 28, 103, 178, 206, 76, 0, 63, 211, 60, 144, 56, 102, 102, 102, 191, 205, 204, 204, 61, 143, 97, 56, 178, 0, 127, 212, 63, 180, 57, 48, 59, 102, 102, 102, 191, 205, 204, 204, 61, 143, 97, 56, 178, 206, 76, 0, 63, 211, 60, 222, 54, 74, 209, 131, 191, 0, 0, 0, 0, 222, 194, 81, 190, 201, 80, 235, 63, 121, 60, 144, 56, 17, 249, 97, 191, 205, 204, 204, 61, 154, 203, 51, 190, 0, 127, 212, 63, 12, 57, 118, 59, 17, 249, 97, 191, 205, 204, 204, 61, 154, 203, 51, 190, 201, 80, 235, 63, 121, 60, 222, 54, 187, 86, 120, 191, 0, 0, 0, 0, 15, 187, 205, 190, 197, 85, 219, 63, 30, 60, 144, 56, 160, 220, 84, 191, 205, 204, 204, 61, 50, 87, 176, 190, 0, 127, 212, 63, 90, 56, 153, 59, 160, 220, 84, 191, 205, 204, 204, 61, 50, 87, 176, 190, 197, 85, 219, 63, 30, 60, 222, 54, 194, 127, 95, 191, 0, 0, 0, 0, 85, 86, 21, 191, 195, 90, 206, 63, 136, 59, 144, 56, 20, 146, 63, 191, 205, 204, 204, 61, 219, 0, 0, 191, 0, 127, 212, 63, 74, 55, 153, 59, 20, 146, 63, 191, 205, 204, 204, 61, 219, 0, 0, 191, 195, 90, 206, 63, 136, 59, 222, 54, 1, 18, 62, 191, 0, 0, 0, 0, 254, 17, 62, 191, 195, 96, 193, 63, 211, 58, 144, 56, 220, 234, 34, 191, 205, 204, 204, 61, 218, 234, 34, 191, 0, 127, 212, 63, 230, 53, 118, 59, 220, 234, 34, 191, 205, 204, 204, 61, 218, 234, 34, 191, 195, 96, 193, 63, 211, 58, 222, 54, 89, 86, 21, 191, 0, 0, 0, 0, 192, 127, 95, 191, 195, 102, 180, 63, 30, 58, 144, 56, 222, 0, 0, 191, 205, 204, 204, 61, 18, 146, 63, 191, 0, 127, 212, 63, 150, 52, 48, 59, 222, 0, 0, 191, 205, 204, 204, 61, 18, 146, 63, 191, 195, 102, 180, 63, 30, 58, 222, 54, 9, 187, 205, 190, 0, 0, 0, 0, 189, 86, 120, 191, 197, 109, 167, 63, 105, 57, 144, 56, 44, 87, 176, 190, 205, 204, 204, 61, 162, 220, 84, 191, 0, 127, 212, 63, 210, 50, 203, 58, 44, 87, 176, 190, 205, 204, 204, 61, 162, 220, 84, 191, 197, 109, 167, 63, 105, 57, 222, 54, 210, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 191, 201, 117, 151, 63, 180, 56, 144, 56, 143, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 191, 0, 127, 212, 63, 208, 48, 75, 58, 143, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 191, 201, 117, 151, 63, 180, 56, 222, 54 ), -"array_index_data": PoolByteArray( 0, 0, 5, 0, 2, 0, 0, 0, 3, 0, 5, 0, 3, 0, 8, 0, 5, 0, 3, 0, 6, 0, 8, 0, 6, 0, 11, 0, 8, 0, 6, 0, 9, 0, 11, 0, 9, 0, 14, 0, 11, 0, 9, 0, 12, 0, 14, 0, 12, 0, 16, 0, 14, 0, 12, 0, 15, 0, 16, 0, 15, 0, 19, 0, 16, 0, 15, 0, 18, 0, 19, 0, 18, 0, 22, 0, 19, 0, 18, 0, 21, 0, 22, 0, 21, 0, 25, 0, 22, 0, 21, 0, 24, 0, 25, 0, 24, 0, 28, 0, 25, 0, 24, 0, 27, 0, 28, 0, 27, 0, 31, 0, 28, 0, 27, 0, 30, 0, 31, 0, 30, 0, 34, 0, 31, 0, 30, 0, 33, 0, 34, 0, 33, 0, 37, 0, 34, 0, 33, 0, 36, 0, 37, 0, 36, 0, 40, 0, 37, 0, 36, 0, 39, 0, 40, 0, 39, 0, 43, 0, 40, 0, 39, 0, 42, 0, 43, 0, 42, 0, 46, 0, 43, 0, 42, 0, 45, 0, 46, 0, 45, 0, 50, 0, 46, 0, 45, 0, 48, 0, 50, 0, 49, 0, 55, 0, 52, 0, 49, 0, 53, 0, 55, 0, 53, 0, 58, 0, 55, 0, 53, 0, 56, 0, 58, 0, 56, 0, 61, 0, 58, 0, 56, 0, 59, 0, 61, 0, 59, 0, 64, 0, 61, 0, 59, 0, 62, 0, 64, 0, 62, 0, 67, 0, 64, 0, 62, 0, 65, 0, 67, 0, 65, 0, 70, 0, 67, 0, 65, 0, 68, 0, 70, 0, 68, 0, 73, 0, 70, 0, 68, 0, 71, 0, 73, 0, 71, 0, 76, 0, 73, 0, 71, 0, 74, 0, 76, 0, 74, 0, 79, 0, 76, 0, 74, 0, 77, 0, 79, 0, 77, 0, 82, 0, 79, 0, 77, 0, 80, 0, 82, 0, 80, 0, 85, 0, 82, 0, 80, 0, 83, 0, 85, 0, 83, 0, 88, 0, 85, 0, 83, 0, 86, 0, 88, 0, 86, 0, 91, 0, 88, 0, 86, 0, 89, 0, 91, 0, 89, 0, 94, 0, 91, 0, 89, 0, 92, 0, 94, 0, 7, 0, 1, 0, 4, 0, 1, 0, 93, 0, 96, 0, 93, 0, 87, 0, 90, 0, 87, 0, 81, 0, 84, 0, 81, 0, 75, 0, 78, 0, 75, 0, 69, 0, 72, 0, 69, 0, 63, 0, 66, 0, 63, 0, 57, 0, 60, 0, 57, 0, 51, 0, 54, 0, 51, 0, 44, 0, 47, 0, 44, 0, 38, 0, 41, 0, 38, 0, 32, 0, 35, 0, 32, 0, 26, 0, 29, 0, 26, 0, 20, 0, 23, 0, 20, 0, 13, 0, 17, 0, 13, 0, 7, 0, 10, 0, 7, 0, 93, 0, 1, 0, 93, 0, 81, 0, 87, 0, 81, 0, 69, 0, 75, 0, 69, 0, 57, 0, 63, 0, 57, 0, 44, 0, 51, 0, 44, 0, 32, 0, 38, 0, 32, 0, 20, 0, 26, 0, 20, 0, 7, 0, 13, 0, 7, 0, 81, 0, 93, 0, 81, 0, 57, 0, 69, 0, 57, 0, 32, 0, 44, 0, 32, 0, 7, 0, 20, 0, 7, 0, 57, 0, 81, 0, 57, 0, 7, 0, 32, 0, 92, 0, 97, 0, 94, 0, 92, 0, 95, 0, 97, 0, 95, 0, 2, 0, 97, 0, 95, 0, 0, 0, 2, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-1.05, 0, -1.05, 2.1, 0.1, 2.1), +"attribute_data": PackedByteArray(0, 0, 0, 63, 119, 24, 18, 63, 232, 73, 207, 61, 83, 145, 54, 63, 0, 0, 0, 63, 12, 207, 219, 62, 213, 194, 210, 62, 119, 24, 18, 63, 252, 208, 137, 61, 60, 154, 33, 63, 213, 194, 210, 62, 12, 207, 219, 62, 170, 133, 165, 62, 119, 24, 18, 63, 216, 204, 76, 61, 156, 88, 11, 63, 170, 133, 165, 62, 12, 207, 219, 62, 0, 145, 112, 62, 119, 24, 18, 63, 208, 204, 76, 61, 196, 78, 233, 62, 0, 145, 112, 62, 12, 207, 219, 62, 170, 22, 22, 62, 119, 24, 18, 63, 28, 209, 137, 61, 108, 203, 188, 62, 170, 22, 22, 62, 12, 207, 219, 62, 80, 113, 110, 61, 119, 24, 18, 63, 80, 113, 110, 61, 12, 207, 219, 62, 16, 74, 207, 61, 68, 221, 146, 62, 0, 240, 246, 188, 119, 24, 18, 63, 0, 240, 246, 188, 12, 207, 219, 62, 208, 18, 26, 62, 192, 65, 90, 62, 176, 176, 242, 189, 119, 24, 18, 63, 176, 176, 242, 189, 12, 207, 219, 62, 182, 65, 90, 62, 216, 18, 26, 62, 172, 210, 83, 190, 119, 24, 18, 63, 172, 210, 83, 190, 12, 207, 219, 62, 94, 221, 146, 62, 224, 73, 207, 61, 128, 38, 151, 190, 119, 24, 18, 63, 128, 38, 151, 190, 12, 207, 219, 62, 126, 203, 188, 62, 8, 209, 137, 61, 172, 99, 196, 190, 119, 24, 18, 63, 172, 99, 196, 190, 12, 207, 219, 62, 194, 78, 233, 62, 224, 204, 76, 61, 212, 160, 241, 190, 119, 24, 18, 63, 212, 160, 241, 190, 12, 207, 219, 62, 155, 88, 11, 63, 208, 204, 76, 61, 0, 111, 15, 191, 119, 24, 18, 63, 0, 111, 15, 191, 12, 207, 219, 62, 67, 154, 33, 63, 24, 209, 137, 61, 150, 13, 38, 191, 119, 24, 18, 63, 150, 13, 38, 191, 12, 207, 219, 62, 65, 145, 54, 63, 176, 73, 207, 61, 42, 172, 60, 191, 119, 24, 18, 63, 42, 172, 60, 191, 12, 207, 219, 62, 140, 111, 73, 63, 208, 18, 26, 62, 192, 74, 83, 191, 119, 24, 18, 63, 192, 74, 83, 191, 12, 207, 219, 62, 68, 123, 89, 63, 176, 65, 90, 62, 86, 233, 105, 191, 119, 24, 18, 63, 171, 244, 244, 63, 119, 24, 18, 63, 86, 233, 105, 191, 12, 207, 219, 62, 194, 22, 102, 63, 98, 221, 146, 62, 171, 244, 244, 63, 12, 207, 219, 62, 96, 165, 233, 63, 119, 24, 18, 63, 216, 197, 110, 63, 98, 203, 188, 62, 96, 165, 233, 63, 12, 207, 219, 62, 22, 86, 222, 63, 119, 24, 18, 63, 49, 51, 115, 63, 202, 78, 233, 62, 22, 86, 222, 63, 12, 207, 219, 62, 203, 6, 211, 63, 119, 24, 18, 63, 49, 51, 115, 63, 171, 88, 11, 63, 203, 6, 211, 63, 12, 207, 219, 62, 128, 183, 199, 63, 119, 24, 18, 63, 221, 197, 110, 63, 72, 154, 33, 63, 128, 183, 199, 63, 12, 207, 219, 62, 54, 104, 188, 63, 119, 24, 18, 63, 194, 22, 102, 63, 82, 145, 54, 63, 54, 104, 188, 63, 12, 207, 219, 62, 235, 24, 177, 63, 119, 24, 18, 63, 77, 123, 89, 63, 142, 111, 73, 63, 235, 24, 177, 63, 12, 207, 219, 62, 160, 201, 165, 63, 119, 24, 18, 63, 134, 111, 73, 63, 82, 123, 89, 63, 160, 201, 165, 63, 12, 207, 219, 62, 86, 122, 154, 63, 119, 24, 18, 63, 68, 145, 54, 63, 202, 22, 102, 63, 86, 122, 154, 63, 12, 207, 219, 62, 11, 43, 143, 63, 119, 24, 18, 63, 51, 154, 33, 63, 228, 197, 110, 63, 11, 43, 143, 63, 12, 207, 219, 62, 190, 219, 131, 63, 119, 24, 18, 63, 155, 88, 11, 63, 50, 51, 115, 63, 190, 219, 131, 63, 12, 207, 219, 62, 235, 24, 113, 63, 119, 24, 18, 63, 186, 78, 233, 62, 51, 51, 115, 63, 235, 24, 113, 63, 12, 207, 219, 62, 86, 122, 90, 63, 119, 24, 18, 63, 100, 203, 188, 62, 221, 197, 110, 63, 86, 122, 90, 63, 12, 207, 219, 62, 192, 219, 67, 63, 119, 24, 18, 63, 86, 221, 146, 62, 194, 22, 102, 63, 192, 219, 67, 63, 12, 207, 219, 62, 43, 61, 45, 63, 119, 24, 18, 63, 196, 65, 90, 62, 78, 123, 89, 63, 43, 61, 45, 63, 12, 207, 219, 62, 150, 158, 22, 63, 119, 24, 18, 63, 180, 18, 26, 62, 136, 111, 73, 63, 150, 158, 22, 63, 12, 207, 219, 62, 0, 0, 0, 63, 119, 24, 18, 63, 213, 194, 210, 62, 119, 24, 18, 63, 170, 133, 165, 62, 119, 24, 18, 63, 212, 160, 241, 190, 12, 207, 219, 62, 171, 244, 244, 63, 119, 24, 18, 63, 171, 244, 244, 63, 12, 207, 219, 62, 96, 165, 233, 63, 119, 24, 18, 63, 86, 122, 90, 63, 119, 24, 18, 63, 192, 219, 67, 63, 119, 24, 18, 63, 43, 61, 45, 63, 119, 24, 18, 63, 150, 158, 22, 63, 119, 24, 18, 63), +"format": 4119, "index_count": 282, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 98 -} - -[sub_resource type="ConvexPolygonShape" id=7] -points = PoolVector3Array( 0, 0, -1.05, 0, 0.1, -0.900147, 0.175548, 0.1, -0.88288, 0.204738, 0, -1.02986, -0.204943, 0, -1.02986, -0.175754, 0.1, -0.88288, 0.344313, 0.1, -0.831695, 0.401664, 0, -0.970243, -0.40187, 0, -0.970243, -0.344518, 0.1, -0.831695, 0.499922, 0.1, -0.748444, 0.583174, 0, -0.873218, -0.583379, 0, -0.873218, -0.500127, 0.1, -0.748444, 0.636208, 0.1, -0.636413, 0.742277, 0, -0.742482, -0.742482, 0, -0.742482, -0.636413, 0.1, -0.636413, 0.748238, 0.1, -0.500127, 0.873013, 0, -0.583379, -0.873218, 0, -0.583379, -0.748444, 0.1, -0.500127, 0.83149, 0.1, -0.344518, 0.970037, 0, -0.40187, -0.970243, 0, -0.40187, -0.831695, 0.1, -0.344518, 0.882674, 0.1, -0.175754, 1.02965, 0, -0.204943, -1.02986, 0, -0.204943, -0.88288, 0.1, -0.175754, 0.899941, 0.1, 0, 1.05, 0, 0, -1.05, 0, 0, -0.900147, 0.1, 0, 0.882674, 0.1, 0.175548, 1.02965, 0, 0.204738, -1.02986, 0, 0.204738, -0.88288, 0.1, 0.175548, 0.970037, 0, 0.401664, 0.83149, 0.1, 0.344313, -0.970243, 0, 0.401664, -0.831695, 0.1, 0.344313, 0.873013, 0, 0.583174, 0.748238, 0.1, 0.499922, -0.873218, 0, 0.583174, -0.748444, 0.1, 0.499922, 0.742277, 0, 0.742277, 0.636208, 0.1, 0.636208, -0.742482, 0, 0.742277, -0.636413, 0.1, 0.636208, 0.583174, 0, 0.873013, 0.499922, 0.1, 0.748238, -0.583379, 0, 0.873013, -0.500127, 0.1, 0.748238, 0.344313, 0.1, 0.83149, 0.401664, 0, 0.970037, -0.40187, 0, 0.970037, -0.344518, 0.1, 0.83149, 0.175548, 0.1, 0.882674, 0.204738, 0, 1.02965, -0.204943, 0, 1.02965, -0.175754, 0.1, 0.882674, -0.000205517, 0.1, 0.899941, -0.000205517, 0, 1.05 ) - -[sub_resource type="ArrayMesh" id=2] +"index_data": PackedByteArray(0, 0, 5, 0, 2, 0, 0, 0, 3, 0, 5, 0, 3, 0, 8, 0, 5, 0, 3, 0, 6, 0, 8, 0, 6, 0, 11, 0, 8, 0, 6, 0, 9, 0, 11, 0, 9, 0, 14, 0, 11, 0, 9, 0, 12, 0, 14, 0, 12, 0, 16, 0, 14, 0, 12, 0, 15, 0, 16, 0, 15, 0, 19, 0, 16, 0, 15, 0, 18, 0, 19, 0, 18, 0, 22, 0, 19, 0, 18, 0, 21, 0, 22, 0, 21, 0, 25, 0, 22, 0, 21, 0, 24, 0, 25, 0, 24, 0, 28, 0, 25, 0, 24, 0, 27, 0, 28, 0, 27, 0, 31, 0, 28, 0, 27, 0, 30, 0, 31, 0, 30, 0, 34, 0, 31, 0, 30, 0, 33, 0, 34, 0, 33, 0, 37, 0, 34, 0, 33, 0, 36, 0, 37, 0, 36, 0, 40, 0, 37, 0, 36, 0, 39, 0, 40, 0, 39, 0, 43, 0, 40, 0, 39, 0, 42, 0, 43, 0, 42, 0, 46, 0, 43, 0, 42, 0, 45, 0, 46, 0, 45, 0, 50, 0, 46, 0, 45, 0, 48, 0, 50, 0, 49, 0, 55, 0, 52, 0, 49, 0, 53, 0, 55, 0, 53, 0, 58, 0, 55, 0, 53, 0, 56, 0, 58, 0, 56, 0, 61, 0, 58, 0, 56, 0, 59, 0, 61, 0, 59, 0, 64, 0, 61, 0, 59, 0, 62, 0, 64, 0, 62, 0, 67, 0, 64, 0, 62, 0, 65, 0, 67, 0, 65, 0, 70, 0, 67, 0, 65, 0, 68, 0, 70, 0, 68, 0, 73, 0, 70, 0, 68, 0, 71, 0, 73, 0, 71, 0, 76, 0, 73, 0, 71, 0, 74, 0, 76, 0, 74, 0, 79, 0, 76, 0, 74, 0, 77, 0, 79, 0, 77, 0, 82, 0, 79, 0, 77, 0, 80, 0, 82, 0, 80, 0, 85, 0, 82, 0, 80, 0, 83, 0, 85, 0, 83, 0, 88, 0, 85, 0, 83, 0, 86, 0, 88, 0, 86, 0, 91, 0, 88, 0, 86, 0, 89, 0, 91, 0, 89, 0, 94, 0, 91, 0, 89, 0, 92, 0, 94, 0, 7, 0, 1, 0, 4, 0, 1, 0, 93, 0, 96, 0, 93, 0, 87, 0, 90, 0, 87, 0, 81, 0, 84, 0, 81, 0, 75, 0, 78, 0, 75, 0, 69, 0, 72, 0, 69, 0, 63, 0, 66, 0, 63, 0, 57, 0, 60, 0, 57, 0, 51, 0, 54, 0, 51, 0, 44, 0, 47, 0, 44, 0, 38, 0, 41, 0, 38, 0, 32, 0, 35, 0, 32, 0, 26, 0, 29, 0, 26, 0, 20, 0, 23, 0, 20, 0, 13, 0, 17, 0, 13, 0, 7, 0, 10, 0, 7, 0, 93, 0, 1, 0, 93, 0, 81, 0, 87, 0, 81, 0, 69, 0, 75, 0, 69, 0, 57, 0, 63, 0, 57, 0, 44, 0, 51, 0, 44, 0, 32, 0, 38, 0, 32, 0, 20, 0, 26, 0, 20, 0, 7, 0, 13, 0, 7, 0, 81, 0, 93, 0, 81, 0, 57, 0, 69, 0, 57, 0, 32, 0, 44, 0, 32, 0, 7, 0, 20, 0, 7, 0, 57, 0, 81, 0, 57, 0, 7, 0, 32, 0, 92, 0, 97, 0, 94, 0, 92, 0, 95, 0, 97, 0, 95, 0, 2, 0, 97, 0, 95, 0, 0, 0, 2, 0), +"lods": [0.612783, PackedByteArray(98, 0, 99, 0, 101, 0, 99, 0, 100, 0, 101, 0, 108, 0, 98, 0, 101, 0, 100, 0, 9, 0, 101, 0, 107, 0, 108, 0, 101, 0, 9, 0, 12, 0, 101, 0, 106, 0, 107, 0, 101, 0, 12, 0, 15, 0, 101, 0, 15, 0, 18, 0, 101, 0, 18, 0, 21, 0, 101, 0, 21, 0, 24, 0, 101, 0, 24, 0, 27, 0, 101, 0, 27, 0, 30, 0, 101, 0, 30, 0, 33, 0, 101, 0, 33, 0, 36, 0, 101, 0, 36, 0, 39, 0, 101, 0, 39, 0, 42, 0, 101, 0, 42, 0, 45, 0, 101, 0, 45, 0, 50, 0, 101, 0, 45, 0, 48, 0, 50, 0, 105, 0, 106, 0, 101, 0, 105, 0, 101, 0, 73, 0, 83, 0, 105, 0, 73, 0, 80, 0, 83, 0, 73, 0, 77, 0, 80, 0, 73, 0, 74, 0, 77, 0, 73, 0, 71, 0, 74, 0, 73, 0, 68, 0, 71, 0, 73, 0, 65, 0, 68, 0, 73, 0, 62, 0, 65, 0, 73, 0, 59, 0, 62, 0, 73, 0, 56, 0, 59, 0, 73, 0, 104, 0, 56, 0, 73, 0, 102, 0, 104, 0, 73, 0, 102, 0, 73, 0, 103, 0, 72, 0, 35, 0, 51, 0)], +"material": SubResource("StandardMaterial3D_xbwut"), +"primitive": 3, +"vertex_count": 109, +"vertex_data": PackedByteArray(240, 255, 63, 176, 0, 0, 0, 0, 102, 102, 134, 191, 50, 179, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 205, 204, 204, 61, 102, 102, 102, 191, 255, 127, 255, 255, 105, 83, 255, 191, 0, 0, 0, 0, 205, 204, 204, 61, 102, 102, 102, 191, 50, 179, 255, 255, 0, 0, 255, 191, 216, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 191, 62, 184, 170, 246, 0, 0, 97, 181, 149, 203, 51, 62, 205, 204, 204, 61, 17, 249, 97, 191, 255, 127, 255, 255, 106, 83, 255, 191, 149, 203, 51, 62, 205, 204, 204, 61, 17, 249, 97, 191, 62, 184, 170, 246, 0, 0, 97, 181, 10, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 191, 150, 187, 139, 238, 0, 0, 64, 173, 45, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 191, 255, 127, 255, 255, 105, 83, 255, 191, 45, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 191, 150, 187, 139, 238, 0, 0, 64, 173, 88, 86, 21, 63, 0, 0, 0, 0, 192, 127, 95, 191, 126, 189, 93, 231, 0, 0, 161, 217, 222, 0, 0, 63, 205, 204, 204, 61, 18, 146, 63, 191, 255, 127, 255, 255, 104, 83, 255, 191, 222, 0, 0, 63, 205, 204, 204, 61, 18, 146, 63, 191, 126, 189, 93, 231, 0, 0, 161, 217, 255, 17, 62, 63, 0, 0, 0, 0, 255, 17, 62, 191, 28, 190, 240, 224, 0, 0, 255, 223, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 191, 255, 127, 255, 255, 105, 83, 255, 191, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 191, 28, 190, 240, 224, 0, 0, 255, 223, 192, 127, 95, 63, 0, 0, 0, 0, 88, 86, 21, 191, 126, 189, 33, 219, 0, 0, 161, 153, 18, 146, 63, 63, 205, 204, 204, 61, 222, 0, 0, 191, 126, 189, 33, 219, 0, 0, 161, 153, 18, 146, 63, 63, 205, 204, 204, 61, 222, 0, 0, 191, 255, 127, 255, 255, 106, 83, 255, 191, 188, 86, 120, 63, 0, 0, 0, 0, 9, 187, 205, 190, 150, 187, 220, 213, 0, 0, 64, 237, 161, 220, 84, 63, 205, 204, 204, 61, 44, 87, 176, 190, 150, 187, 220, 213, 0, 0, 64, 237, 161, 220, 84, 63, 205, 204, 204, 61, 44, 87, 176, 190, 255, 127, 255, 255, 105, 83, 255, 191, 74, 209, 131, 63, 0, 0, 0, 0, 218, 194, 81, 190, 62, 184, 20, 209, 0, 0, 96, 245, 17, 249, 97, 63, 205, 204, 204, 61, 150, 203, 51, 190, 62, 184, 20, 209, 0, 0, 96, 245, 17, 249, 97, 63, 205, 204, 204, 61, 150, 203, 51, 190, 255, 127, 255, 255, 105, 83, 255, 191, 102, 102, 134, 63, 0, 0, 0, 0, 61, 32, 65, 51, 50, 179, 203, 204, 255, 255, 0, 128, 102, 102, 102, 63, 205, 204, 204, 61, 16, 247, 40, 51, 50, 179, 203, 204, 255, 255, 0, 128, 102, 102, 102, 63, 205, 204, 204, 61, 16, 247, 40, 51, 255, 127, 255, 255, 105, 83, 255, 191, 74, 209, 131, 63, 0, 0, 0, 0, 216, 194, 81, 62, 233, 174, 191, 199, 255, 255, 157, 138, 17, 249, 97, 63, 205, 204, 204, 61, 149, 203, 51, 62, 233, 174, 191, 199, 255, 255, 157, 138, 17, 249, 97, 63, 205, 204, 204, 61, 149, 203, 51, 62, 255, 127, 255, 255, 105, 83, 255, 191, 189, 86, 120, 63, 0, 0, 0, 0, 8, 187, 205, 62, 34, 170, 104, 196, 255, 255, 190, 146, 162, 220, 84, 63, 205, 204, 204, 61, 43, 87, 176, 62, 34, 170, 104, 196, 255, 255, 190, 146, 162, 220, 84, 63, 205, 204, 204, 61, 43, 87, 176, 62, 255, 127, 255, 255, 105, 83, 255, 191, 193, 127, 95, 63, 0, 0, 0, 0, 87, 86, 21, 63, 220, 164, 128, 194, 255, 255, 92, 230, 19, 146, 63, 63, 205, 204, 204, 61, 221, 0, 0, 63, 220, 164, 128, 194, 255, 255, 161, 153, 19, 146, 63, 63, 205, 204, 204, 61, 221, 0, 0, 63, 255, 127, 255, 255, 105, 83, 255, 191, 255, 17, 62, 63, 0, 0, 0, 0, 255, 17, 62, 63, 14, 159, 225, 193, 255, 255, 255, 159, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 63, 14, 159, 225, 193, 255, 255, 255, 223, 218, 234, 34, 63, 205, 204, 204, 61, 218, 234, 34, 63, 255, 127, 255, 255, 105, 83, 255, 191, 87, 86, 21, 63, 0, 0, 0, 0, 193, 127, 95, 63, 161, 152, 128, 194, 255, 255, 92, 166, 221, 0, 0, 63, 205, 204, 204, 61, 19, 146, 63, 63, 161, 152, 128, 194, 255, 255, 92, 166, 221, 0, 0, 63, 205, 204, 204, 61, 19, 146, 63, 63, 255, 127, 255, 255, 105, 83, 255, 191, 11, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 63, 115, 145, 104, 196, 255, 255, 189, 210, 46, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 63, 115, 145, 104, 196, 255, 255, 189, 210, 46, 87, 176, 62, 205, 204, 204, 61, 161, 220, 84, 63, 255, 127, 255, 255, 105, 83, 255, 191, 215, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 63, 84, 137, 191, 199, 255, 255, 97, 181, 148, 203, 51, 62, 205, 204, 204, 61, 18, 249, 97, 63, 84, 137, 191, 199, 255, 255, 97, 181, 148, 203, 51, 62, 205, 204, 204, 61, 18, 249, 97, 63, 255, 127, 255, 255, 104, 83, 255, 191, 60, 160, 198, 179, 0, 0, 0, 0, 102, 102, 134, 63, 255, 127, 203, 204, 197, 250, 135, 198, 60, 160, 198, 179, 0, 0, 0, 0, 102, 102, 134, 63, 255, 127, 203, 204, 239, 242, 98, 189, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 255, 127, 203, 204, 197, 250, 135, 198, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 255, 127, 255, 255, 105, 83, 255, 191, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 255, 127, 203, 204, 239, 242, 98, 189, 211, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 63, 170, 118, 191, 199, 194, 234, 255, 191, 144, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 63, 255, 127, 255, 255, 103, 83, 255, 191, 144, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 63, 170, 118, 191, 199, 194, 234, 255, 191, 9, 187, 205, 190, 0, 0, 0, 0, 188, 86, 120, 63, 139, 110, 104, 196, 129, 218, 255, 191, 44, 87, 176, 190, 205, 204, 204, 61, 161, 220, 84, 63, 255, 127, 255, 255, 105, 83, 255, 191, 44, 87, 176, 190, 205, 204, 204, 61, 161, 220, 84, 63, 139, 110, 104, 196, 129, 218, 255, 191, 89, 86, 21, 191, 0, 0, 0, 0, 191, 127, 95, 63, 93, 103, 128, 194, 186, 204, 255, 191, 222, 0, 0, 191, 205, 204, 204, 61, 17, 146, 63, 63, 255, 127, 255, 255, 106, 83, 255, 191, 222, 0, 0, 191, 205, 204, 204, 61, 17, 146, 63, 63, 93, 103, 128, 194, 186, 204, 255, 191, 254, 17, 62, 191, 0, 0, 0, 0, 0, 18, 62, 63, 240, 96, 225, 193, 255, 191, 255, 191, 218, 234, 34, 191, 205, 204, 204, 61, 219, 234, 34, 63, 255, 127, 255, 255, 105, 83, 255, 191, 218, 234, 34, 191, 205, 204, 204, 61, 219, 234, 34, 63, 240, 96, 225, 193, 255, 191, 255, 191, 189, 127, 95, 191, 0, 0, 0, 0, 91, 86, 21, 63, 34, 91, 128, 194, 68, 179, 255, 191, 16, 146, 63, 191, 205, 204, 204, 61, 224, 0, 0, 63, 255, 127, 255, 255, 105, 83, 255, 191, 16, 146, 63, 191, 205, 204, 204, 61, 224, 0, 0, 63, 34, 91, 128, 194, 68, 179, 255, 191, 188, 86, 120, 191, 0, 0, 0, 0, 14, 187, 205, 62, 220, 85, 104, 196, 124, 165, 255, 191, 161, 220, 84, 191, 205, 204, 204, 61, 49, 87, 176, 62, 255, 127, 255, 255, 105, 83, 255, 191, 161, 220, 84, 191, 205, 204, 204, 61, 49, 87, 176, 62, 220, 85, 104, 196, 124, 165, 255, 191, 74, 209, 131, 191, 0, 0, 0, 0, 220, 194, 81, 62, 21, 81, 191, 199, 59, 149, 255, 191, 17, 249, 97, 191, 205, 204, 204, 61, 152, 203, 51, 62, 255, 127, 255, 255, 105, 83, 255, 191, 17, 249, 97, 191, 205, 204, 204, 61, 152, 203, 51, 62, 21, 81, 191, 199, 59, 149, 255, 191, 102, 102, 134, 191, 0, 0, 0, 0, 124, 28, 103, 178, 204, 76, 203, 204, 255, 127, 255, 191, 102, 102, 102, 191, 205, 204, 204, 61, 143, 97, 56, 178, 255, 127, 255, 255, 105, 83, 255, 191, 102, 102, 102, 191, 205, 204, 204, 61, 143, 97, 56, 178, 204, 76, 204, 204, 255, 127, 255, 191, 74, 209, 131, 191, 0, 0, 0, 0, 222, 194, 81, 190, 192, 71, 20, 209, 195, 106, 255, 191, 17, 249, 97, 191, 205, 204, 204, 61, 154, 203, 51, 190, 255, 127, 255, 255, 105, 83, 255, 191, 17, 249, 97, 191, 205, 204, 204, 61, 154, 203, 51, 190, 192, 71, 20, 209, 195, 106, 255, 191, 187, 86, 120, 191, 0, 0, 0, 0, 15, 187, 205, 190, 104, 68, 220, 213, 130, 90, 255, 191, 160, 220, 84, 191, 205, 204, 204, 61, 50, 87, 176, 190, 255, 127, 255, 255, 105, 83, 255, 191, 160, 220, 84, 191, 205, 204, 204, 61, 50, 87, 176, 190, 104, 68, 220, 213, 130, 90, 255, 191, 194, 127, 95, 191, 0, 0, 0, 0, 85, 86, 21, 191, 128, 66, 33, 219, 186, 76, 255, 191, 20, 146, 63, 191, 205, 204, 204, 61, 219, 0, 0, 191, 255, 127, 255, 255, 105, 83, 255, 191, 20, 146, 63, 191, 205, 204, 204, 61, 219, 0, 0, 191, 128, 66, 33, 219, 186, 76, 255, 191, 1, 18, 62, 191, 0, 0, 0, 0, 254, 17, 62, 191, 226, 65, 240, 224, 255, 63, 255, 191, 220, 234, 34, 191, 205, 204, 204, 61, 218, 234, 34, 191, 255, 127, 255, 255, 105, 83, 255, 191, 220, 234, 34, 191, 205, 204, 204, 61, 218, 234, 34, 191, 226, 65, 240, 224, 255, 63, 255, 191, 89, 86, 21, 191, 0, 0, 0, 0, 192, 127, 95, 191, 128, 66, 93, 231, 68, 51, 255, 191, 222, 0, 0, 191, 205, 204, 204, 61, 18, 146, 63, 191, 255, 127, 255, 255, 105, 83, 255, 191, 222, 0, 0, 191, 205, 204, 204, 61, 18, 146, 63, 191, 128, 66, 93, 231, 68, 51, 255, 191, 9, 187, 205, 190, 0, 0, 0, 0, 189, 86, 120, 191, 104, 68, 139, 238, 125, 37, 255, 191, 44, 87, 176, 190, 205, 204, 204, 61, 162, 220, 84, 191, 255, 127, 255, 255, 105, 83, 255, 191, 44, 87, 176, 190, 205, 204, 204, 61, 162, 220, 84, 191, 104, 68, 139, 238, 125, 37, 255, 191, 210, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 191, 192, 71, 170, 246, 60, 21, 255, 191, 143, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 191, 255, 127, 255, 255, 105, 83, 255, 191, 143, 203, 51, 190, 205, 204, 204, 61, 18, 249, 97, 191, 192, 71, 170, 246, 60, 21, 255, 191, 240, 255, 63, 176, 0, 0, 0, 0, 102, 102, 134, 191, 113, 149, 9, 255, 0, 0, 255, 191, 216, 194, 81, 62, 0, 0, 0, 0, 74, 209, 131, 191, 217, 154, 151, 250, 0, 0, 97, 181, 10, 187, 205, 62, 0, 0, 0, 0, 188, 86, 120, 191, 178, 151, 228, 247, 0, 0, 64, 173, 19, 146, 63, 63, 205, 204, 204, 61, 221, 0, 0, 63, 54, 149, 148, 223, 255, 255, 161, 153, 60, 160, 198, 179, 0, 0, 0, 0, 102, 102, 134, 63, 218, 124, 152, 233, 239, 242, 98, 189, 16, 247, 168, 179, 205, 204, 204, 61, 102, 102, 102, 63, 171, 125, 122, 238, 239, 242, 98, 189, 211, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 63, 235, 118, 72, 224, 194, 234, 255, 191, 1, 18, 62, 191, 0, 0, 0, 0, 254, 17, 62, 191, 134, 96, 124, 237, 255, 63, 255, 191, 89, 86, 21, 191, 0, 0, 0, 0, 192, 127, 95, 191, 31, 118, 244, 251, 68, 51, 255, 191, 9, 187, 205, 190, 0, 0, 0, 0, 189, 86, 120, 191, 131, 117, 53, 253, 125, 37, 255, 191, 210, 194, 81, 190, 0, 0, 0, 0, 74, 209, 131, 191, 221, 112, 69, 254, 60, 21, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_wuhjn") + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_4fsqc"] +points = PackedVector3Array(0, 0, -1.05, 0, 0.1, -0.900147, 0.175548, 0.1, -0.88288, 0.204738, 0, -1.02986, -0.204943, 0, -1.02986, -0.175754, 0.1, -0.88288, 0.344313, 0.1, -0.831695, 0.401664, 0, -0.970243, -0.40187, 0, -0.970243, -0.344518, 0.1, -0.831695, 0.499922, 0.1, -0.748444, 0.583174, 0, -0.873218, -0.583379, 0, -0.873218, -0.500127, 0.1, -0.748444, 0.636208, 0.1, -0.636413, 0.742277, 0, -0.742482, -0.742482, 0, -0.742482, -0.636413, 0.1, -0.636413, 0.748238, 0.1, -0.500127, 0.873013, 0, -0.583379, -0.873218, 0, -0.583379, -0.748444, 0.1, -0.500127, 0.83149, 0.1, -0.344518, 0.970037, 0, -0.40187, -0.970243, 0, -0.40187, -0.831695, 0.1, -0.344518, 0.882674, 0.1, -0.175754, 1.02965, 0, -0.204943, -1.02986, 0, -0.204943, -0.88288, 0.1, -0.175754, 0.899941, 0.1, 0, 1.05, 0, 0, -1.05, 0, 0, -0.900147, 0.1, 0, 0.882674, 0.1, 0.175548, 1.02965, 0, 0.204738, -1.02986, 0, 0.204738, -0.88288, 0.1, 0.175548, 0.970037, 0, 0.401664, 0.83149, 0.1, 0.344313, -0.970243, 0, 0.401664, -0.831695, 0.1, 0.344313, 0.873013, 0, 0.583174, 0.748238, 0.1, 0.499922, -0.873218, 0, 0.583174, -0.748444, 0.1, 0.499922, 0.742277, 0, 0.742277, 0.636208, 0.1, 0.636208, -0.742482, 0, 0.742277, -0.636413, 0.1, 0.636208, 0.583174, 0, 0.873013, 0.499922, 0.1, 0.748238, -0.583379, 0, 0.873013, -0.500127, 0.1, 0.748238, 0.344313, 0.1, 0.83149, 0.401664, 0, 0.970037, -0.40187, 0, 0.970037, -0.344518, 0.1, 0.83149, 0.175548, 0.1, 0.882674, 0.204738, 0, 1.02965, -0.204943, 0, 1.02965, -0.175754, 0.1, 0.882674, -0.000205517, 0, 1.05, -0.000205517, 0.1, 0.899941) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xtwro"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2ke00"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_kdkqu"] +_surfaces = [{ +"aabb": AABB(-1, 2.9, -1, 2, 0.7, 2.00001), +"format": 4097, +"index_count": 948, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 35, 0, 33, 0, 32, 0, 34, 0, 35, 0, 34, 0, 37, 0, 35, 0, 34, 0, 36, 0, 37, 0, 36, 0, 39, 0, 37, 0, 36, 0, 38, 0, 39, 0, 38, 0, 41, 0, 39, 0, 38, 0, 40, 0, 41, 0, 40, 0, 43, 0, 41, 0, 40, 0, 42, 0, 43, 0, 42, 0, 45, 0, 43, 0, 42, 0, 44, 0, 45, 0, 44, 0, 47, 0, 45, 0, 44, 0, 46, 0, 47, 0, 46, 0, 49, 0, 47, 0, 46, 0, 48, 0, 49, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 50, 0, 53, 0, 51, 0, 50, 0, 52, 0, 53, 0, 52, 0, 55, 0, 53, 0, 52, 0, 54, 0, 55, 0, 54, 0, 57, 0, 55, 0, 54, 0, 56, 0, 57, 0, 56, 0, 59, 0, 57, 0, 56, 0, 58, 0, 59, 0, 58, 0, 61, 0, 59, 0, 58, 0, 60, 0, 61, 0, 5, 0, 1, 0, 3, 0, 1, 0, 61, 0, 63, 0, 61, 0, 57, 0, 59, 0, 57, 0, 53, 0, 55, 0, 53, 0, 49, 0, 51, 0, 49, 0, 45, 0, 47, 0, 45, 0, 41, 0, 43, 0, 41, 0, 37, 0, 39, 0, 37, 0, 33, 0, 35, 0, 33, 0, 29, 0, 31, 0, 29, 0, 25, 0, 27, 0, 25, 0, 21, 0, 23, 0, 21, 0, 17, 0, 19, 0, 17, 0, 13, 0, 15, 0, 13, 0, 9, 0, 11, 0, 9, 0, 5, 0, 7, 0, 5, 0, 61, 0, 1, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 5, 0, 9, 0, 5, 0, 53, 0, 61, 0, 53, 0, 37, 0, 45, 0, 37, 0, 21, 0, 29, 0, 21, 0, 5, 0, 13, 0, 5, 0, 37, 0, 53, 0, 37, 0, 5, 0, 21, 0, 60, 0, 63, 0, 61, 0, 60, 0, 62, 0, 63, 0, 62, 0, 1, 0, 63, 0, 62, 0, 0, 0, 1, 0, 50, 0, 90, 0, 52, 0, 50, 0, 89, 0, 90, 0, 6, 0, 68, 0, 8, 0, 6, 0, 67, 0, 68, 0, 24, 0, 77, 0, 26, 0, 24, 0, 76, 0, 77, 0, 42, 0, 86, 0, 44, 0, 42, 0, 85, 0, 86, 0, 60, 0, 95, 0, 62, 0, 60, 0, 94, 0, 95, 0, 16, 0, 73, 0, 18, 0, 16, 0, 72, 0, 73, 0, 34, 0, 82, 0, 36, 0, 34, 0, 81, 0, 82, 0, 52, 0, 91, 0, 54, 0, 52, 0, 90, 0, 91, 0, 8, 0, 69, 0, 10, 0, 8, 0, 68, 0, 69, 0, 26, 0, 78, 0, 28, 0, 26, 0, 77, 0, 78, 0, 44, 0, 87, 0, 46, 0, 44, 0, 86, 0, 87, 0, 0, 0, 65, 0, 2, 0, 0, 0, 64, 0, 65, 0, 62, 0, 64, 0, 0, 0, 62, 0, 95, 0, 64, 0, 18, 0, 74, 0, 20, 0, 18, 0, 73, 0, 74, 0, 36, 0, 83, 0, 38, 0, 36, 0, 82, 0, 83, 0, 54, 0, 92, 0, 56, 0, 54, 0, 91, 0, 92, 0, 10, 0, 70, 0, 12, 0, 10, 0, 69, 0, 70, 0, 28, 0, 79, 0, 30, 0, 28, 0, 78, 0, 79, 0, 46, 0, 88, 0, 48, 0, 46, 0, 87, 0, 88, 0, 2, 0, 66, 0, 4, 0, 2, 0, 65, 0, 66, 0, 20, 0, 75, 0, 22, 0, 20, 0, 74, 0, 75, 0, 38, 0, 84, 0, 40, 0, 38, 0, 83, 0, 84, 0, 56, 0, 93, 0, 58, 0, 56, 0, 92, 0, 93, 0, 12, 0, 71, 0, 14, 0, 12, 0, 70, 0, 71, 0, 30, 0, 80, 0, 32, 0, 30, 0, 79, 0, 80, 0, 48, 0, 89, 0, 50, 0, 48, 0, 88, 0, 89, 0, 4, 0, 67, 0, 6, 0, 4, 0, 66, 0, 67, 0, 22, 0, 76, 0, 24, 0, 22, 0, 75, 0, 76, 0, 40, 0, 85, 0, 42, 0, 40, 0, 84, 0, 85, 0, 58, 0, 94, 0, 60, 0, 58, 0, 93, 0, 94, 0, 14, 0, 72, 0, 16, 0, 14, 0, 71, 0, 72, 0, 32, 0, 81, 0, 34, 0, 32, 0, 80, 0, 81, 0, 111, 0, 139, 0, 112, 0, 111, 0, 138, 0, 139, 0, 98, 0, 129, 0, 99, 0, 98, 0, 167, 0, 129, 0, 125, 0, 173, 0, 126, 0, 125, 0, 148, 0, 173, 0, 112, 0, 140, 0, 113, 0, 112, 0, 139, 0, 140, 0, 99, 0, 130, 0, 100, 0, 99, 0, 129, 0, 130, 0, 126, 0, 149, 0, 127, 0, 126, 0, 173, 0, 149, 0, 113, 0, 141, 0, 114, 0, 113, 0, 140, 0, 141, 0, 100, 0, 131, 0, 101, 0, 100, 0, 130, 0, 131, 0, 127, 0, 170, 0, 96, 0, 127, 0, 149, 0, 170, 0, 114, 0, 142, 0, 115, 0, 114, 0, 141, 0, 142, 0, 101, 0, 162, 0, 102, 0, 101, 0, 131, 0, 162, 0, 115, 0, 187, 0, 116, 0, 115, 0, 142, 0, 187, 0, 102, 0, 132, 0, 103, 0, 102, 0, 162, 0, 132, 0, 116, 0, 143, 0, 117, 0, 116, 0, 187, 0, 143, 0, 103, 0, 159, 0, 104, 0, 103, 0, 132, 0, 159, 0, 117, 0, 184, 0, 118, 0, 117, 0, 143, 0, 184, 0, 104, 0, 133, 0, 105, 0, 104, 0, 159, 0, 133, 0, 118, 0, 144, 0, 119, 0, 118, 0, 184, 0, 144, 0, 105, 0, 156, 0, 106, 0, 105, 0, 133, 0, 156, 0, 119, 0, 181, 0, 120, 0, 119, 0, 144, 0, 181, 0, 106, 0, 134, 0, 107, 0, 106, 0, 156, 0, 134, 0, 120, 0, 145, 0, 121, 0, 120, 0, 181, 0, 145, 0, 107, 0, 135, 0, 108, 0, 107, 0, 134, 0, 135, 0, 121, 0, 178, 0, 122, 0, 121, 0, 145, 0, 178, 0, 108, 0, 136, 0, 109, 0, 108, 0, 135, 0, 136, 0, 122, 0, 146, 0, 123, 0, 122, 0, 178, 0, 146, 0, 109, 0, 137, 0, 110, 0, 109, 0, 136, 0, 137, 0, 96, 0, 128, 0, 97, 0, 96, 0, 170, 0, 128, 0, 123, 0, 147, 0, 124, 0, 123, 0, 146, 0, 147, 0, 110, 0, 138, 0, 111, 0, 110, 0, 137, 0, 138, 0, 97, 0, 167, 0, 98, 0, 97, 0, 128, 0, 167, 0, 124, 0, 148, 0, 125, 0, 124, 0, 147, 0, 148, 0, 139, 0, 151, 0, 150, 0, 139, 0, 138, 0, 151, 0, 138, 0, 152, 0, 151, 0, 138, 0, 137, 0, 152, 0, 137, 0, 153, 0, 152, 0, 137, 0, 136, 0, 153, 0, 136, 0, 154, 0, 153, 0, 136, 0, 135, 0, 154, 0, 135, 0, 155, 0, 154, 0, 135, 0, 134, 0, 155, 0, 134, 0, 157, 0, 155, 0, 134, 0, 156, 0, 157, 0, 156, 0, 158, 0, 157, 0, 156, 0, 133, 0, 158, 0, 133, 0, 160, 0, 158, 0, 133, 0, 159, 0, 160, 0, 159, 0, 161, 0, 160, 0, 159, 0, 132, 0, 161, 0, 132, 0, 163, 0, 161, 0, 132, 0, 162, 0, 163, 0, 162, 0, 164, 0, 163, 0, 162, 0, 131, 0, 164, 0, 131, 0, 165, 0, 164, 0, 131, 0, 130, 0, 165, 0, 130, 0, 166, 0, 165, 0, 130, 0, 129, 0, 166, 0, 129, 0, 168, 0, 166, 0, 129, 0, 167, 0, 168, 0, 167, 0, 169, 0, 168, 0, 167, 0, 128, 0, 169, 0, 128, 0, 171, 0, 169, 0, 128, 0, 170, 0, 171, 0, 170, 0, 172, 0, 171, 0, 170, 0, 149, 0, 172, 0, 149, 0, 174, 0, 172, 0, 149, 0, 173, 0, 174, 0, 173, 0, 175, 0, 174, 0, 173, 0, 148, 0, 175, 0, 148, 0, 176, 0, 175, 0, 148, 0, 147, 0, 176, 0, 147, 0, 177, 0, 176, 0, 147, 0, 146, 0, 177, 0, 146, 0, 179, 0, 177, 0, 146, 0, 178, 0, 179, 0, 178, 0, 180, 0, 179, 0, 178, 0, 145, 0, 180, 0, 145, 0, 182, 0, 180, 0, 145, 0, 181, 0, 182, 0, 181, 0, 183, 0, 182, 0, 181, 0, 144, 0, 183, 0, 144, 0, 185, 0, 183, 0, 144, 0, 184, 0, 185, 0, 184, 0, 186, 0, 185, 0, 184, 0, 143, 0, 186, 0, 143, 0, 188, 0, 186, 0, 143, 0, 187, 0, 188, 0, 187, 0, 189, 0, 188, 0, 187, 0, 142, 0, 189, 0, 142, 0, 190, 0, 189, 0, 142, 0, 141, 0, 190, 0, 152, 0, 150, 0, 151, 0, 150, 0, 190, 0, 191, 0, 190, 0, 188, 0, 189, 0, 188, 0, 185, 0, 186, 0, 185, 0, 182, 0, 183, 0, 182, 0, 179, 0, 180, 0, 179, 0, 176, 0, 177, 0, 176, 0, 174, 0, 175, 0, 174, 0, 171, 0, 172, 0, 171, 0, 168, 0, 169, 0, 168, 0, 165, 0, 166, 0, 165, 0, 163, 0, 164, 0, 163, 0, 160, 0, 161, 0, 160, 0, 157, 0, 158, 0, 157, 0, 154, 0, 155, 0, 154, 0, 152, 0, 153, 0, 152, 0, 190, 0, 150, 0, 190, 0, 185, 0, 188, 0, 185, 0, 179, 0, 182, 0, 179, 0, 174, 0, 176, 0, 174, 0, 168, 0, 171, 0, 168, 0, 163, 0, 165, 0, 163, 0, 157, 0, 160, 0, 157, 0, 152, 0, 154, 0, 152, 0, 185, 0, 190, 0, 185, 0, 174, 0, 179, 0, 174, 0, 163, 0, 168, 0, 163, 0, 152, 0, 157, 0, 152, 0, 174, 0, 185, 0, 174, 0, 152, 0, 163, 0, 141, 0, 191, 0, 190, 0, 141, 0, 140, 0, 191, 0, 140, 0, 150, 0, 191, 0, 140, 0, 139, 0, 150, 0), +"lods": [0.123754, PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 65, 0, 3, 0, 0, 0, 64, 0, 65, 0, 65, 0, 5, 0, 3, 0, 65, 0, 66, 0, 67, 0, 65, 0, 67, 0, 68, 0, 65, 0, 68, 0, 5, 0, 68, 0, 9, 0, 5, 0, 68, 0, 13, 0, 9, 0, 68, 0, 17, 0, 13, 0, 68, 0, 69, 0, 70, 0, 68, 0, 70, 0, 71, 0, 68, 0, 71, 0, 72, 0, 68, 0, 72, 0, 73, 0, 68, 0, 73, 0, 17, 0, 73, 0, 21, 0, 17, 0, 73, 0, 25, 0, 21, 0, 73, 0, 74, 0, 75, 0, 73, 0, 75, 0, 76, 0, 73, 0, 76, 0, 25, 0, 25, 0, 76, 0, 77, 0, 25, 0, 77, 0, 78, 0, 25, 0, 78, 0, 80, 0, 80, 0, 78, 0, 79, 0, 25, 0, 80, 0, 29, 0, 80, 0, 33, 0, 29, 0, 80, 0, 35, 0, 33, 0, 80, 0, 81, 0, 35, 0, 81, 0, 37, 0, 35, 0, 81, 0, 83, 0, 37, 0, 81, 0, 82, 0, 83, 0, 83, 0, 41, 0, 37, 0, 83, 0, 85, 0, 41, 0, 83, 0, 84, 0, 85, 0, 85, 0, 86, 0, 41, 0, 86, 0, 45, 0, 41, 0, 86, 0, 49, 0, 45, 0, 86, 0, 87, 0, 88, 0, 86, 0, 88, 0, 89, 0, 86, 0, 89, 0, 90, 0, 86, 0, 90, 0, 49, 0, 90, 0, 53, 0, 49, 0, 90, 0, 57, 0, 53, 0, 90, 0, 91, 0, 92, 0, 90, 0, 92, 0, 93, 0, 90, 0, 93, 0, 94, 0, 90, 0, 94, 0, 57, 0, 94, 0, 61, 0, 57, 0, 94, 0, 63, 0, 61, 0, 94, 0, 0, 0, 63, 0, 0, 0, 1, 0, 63, 0, 94, 0, 95, 0, 0, 0, 0, 0, 95, 0, 64, 0, 5, 0, 1, 0, 3, 0, 1, 0, 61, 0, 63, 0, 5, 0, 61, 0, 1, 0, 61, 0, 53, 0, 57, 0, 5, 0, 53, 0, 61, 0, 53, 0, 45, 0, 49, 0, 53, 0, 37, 0, 45, 0, 5, 0, 37, 0, 53, 0, 45, 0, 37, 0, 41, 0, 37, 0, 33, 0, 35, 0, 37, 0, 29, 0, 33, 0, 37, 0, 21, 0, 29, 0, 37, 0, 5, 0, 21, 0, 29, 0, 21, 0, 25, 0, 21, 0, 5, 0, 13, 0, 13, 0, 5, 0, 9, 0, 21, 0, 13, 0, 17, 0, 112, 0, 111, 0, 113, 0, 109, 0, 111, 0, 110, 0, 108, 0, 111, 0, 109, 0, 107, 0, 111, 0, 108, 0, 107, 0, 104, 0, 111, 0, 106, 0, 104, 0, 107, 0, 105, 0, 104, 0, 106, 0, 102, 0, 104, 0, 103, 0, 101, 0, 104, 0, 102, 0, 101, 0, 99, 0, 104, 0, 100, 0, 99, 0, 101, 0, 104, 0, 160, 0, 157, 0, 104, 0, 163, 0, 160, 0, 104, 0, 157, 0, 154, 0, 99, 0, 165, 0, 163, 0, 99, 0, 168, 0, 165, 0, 104, 0, 99, 0, 163, 0, 111, 0, 104, 0, 154, 0, 99, 0, 170, 0, 168, 0, 170, 0, 171, 0, 168, 0, 97, 0, 170, 0, 99, 0, 97, 0, 99, 0, 98, 0, 96, 0, 170, 0, 97, 0, 111, 0, 154, 0, 152, 0, 111, 0, 152, 0, 151, 0, 111, 0, 151, 0, 150, 0, 111, 0, 150, 0, 191, 0, 113, 0, 111, 0, 191, 0, 113, 0, 191, 0, 190, 0, 113, 0, 190, 0, 189, 0, 118, 0, 113, 0, 189, 0, 118, 0, 189, 0, 188, 0, 118, 0, 188, 0, 186, 0, 118, 0, 186, 0, 185, 0, 118, 0, 185, 0, 183, 0, 114, 0, 113, 0, 115, 0, 115, 0, 113, 0, 118, 0, 115, 0, 118, 0, 116, 0, 116, 0, 118, 0, 117, 0, 122, 0, 118, 0, 183, 0, 119, 0, 118, 0, 122, 0, 122, 0, 183, 0, 182, 0, 119, 0, 122, 0, 120, 0, 120, 0, 122, 0, 121, 0, 122, 0, 182, 0, 180, 0, 122, 0, 180, 0, 179, 0, 122, 0, 179, 0, 177, 0, 123, 0, 122, 0, 177, 0, 123, 0, 177, 0, 176, 0, 125, 0, 123, 0, 176, 0, 124, 0, 123, 0, 125, 0, 125, 0, 176, 0, 175, 0, 125, 0, 175, 0, 174, 0, 127, 0, 125, 0, 174, 0, 126, 0, 125, 0, 127, 0, 127, 0, 174, 0, 172, 0, 170, 0, 127, 0, 172, 0, 127, 0, 170, 0, 96, 0, 170, 0, 172, 0, 171, 0, 152, 0, 150, 0, 151, 0, 150, 0, 190, 0, 191, 0, 152, 0, 190, 0, 150, 0, 190, 0, 188, 0, 189, 0, 190, 0, 185, 0, 188, 0, 152, 0, 185, 0, 190, 0, 188, 0, 185, 0, 186, 0, 157, 0, 152, 0, 154, 0, 163, 0, 152, 0, 157, 0, 163, 0, 157, 0, 160, 0, 152, 0, 174, 0, 185, 0, 174, 0, 152, 0, 163, 0, 168, 0, 163, 0, 165, 0, 174, 0, 163, 0, 168, 0, 174, 0, 168, 0, 171, 0, 174, 0, 171, 0, 172, 0, 185, 0, 182, 0, 183, 0, 185, 0, 179, 0, 182, 0, 185, 0, 174, 0, 179, 0, 182, 0, 179, 0, 180, 0, 179, 0, 174, 0, 176, 0, 176, 0, 174, 0, 175, 0, 179, 0, 176, 0, 177, 0), 0.154965, PackedByteArray(0, 0, 5, 0, 1, 0, 0, 0, 65, 0, 5, 0, 0, 0, 64, 0, 65, 0, 65, 0, 69, 0, 5, 0, 65, 0, 67, 0, 69, 0, 65, 0, 66, 0, 67, 0, 69, 0, 21, 0, 5, 0, 69, 0, 70, 0, 71, 0, 69, 0, 71, 0, 21, 0, 21, 0, 71, 0, 72, 0, 78, 0, 37, 0, 21, 0, 21, 0, 72, 0, 74, 0, 74, 0, 78, 0, 21, 0, 74, 0, 76, 0, 78, 0, 74, 0, 75, 0, 76, 0, 78, 0, 79, 0, 80, 0, 78, 0, 80, 0, 37, 0, 37, 0, 80, 0, 81, 0, 81, 0, 82, 0, 37, 0, 82, 0, 45, 0, 37, 0, 82, 0, 85, 0, 45, 0, 82, 0, 84, 0, 85, 0, 85, 0, 53, 0, 45, 0, 85, 0, 91, 0, 53, 0, 85, 0, 87, 0, 88, 0, 85, 0, 88, 0, 89, 0, 85, 0, 89, 0, 91, 0, 91, 0, 61, 0, 53, 0, 91, 0, 93, 0, 61, 0, 91, 0, 92, 0, 93, 0, 93, 0, 0, 0, 61, 0, 0, 0, 1, 0, 61, 0, 0, 0, 93, 0, 64, 0, 5, 0, 61, 0, 1, 0, 5, 0, 53, 0, 61, 0, 5, 0, 37, 0, 53, 0, 53, 0, 37, 0, 45, 0, 37, 0, 5, 0, 21, 0, 127, 0, 170, 0, 96, 0, 170, 0, 127, 0, 174, 0, 170, 0, 174, 0, 171, 0, 127, 0, 126, 0, 174, 0, 126, 0, 179, 0, 174, 0, 126, 0, 123, 0, 179, 0, 124, 0, 123, 0, 126, 0, 123, 0, 121, 0, 179, 0, 121, 0, 185, 0, 179, 0, 119, 0, 121, 0, 120, 0, 119, 0, 117, 0, 121, 0, 121, 0, 117, 0, 185, 0, 117, 0, 114, 0, 185, 0, 115, 0, 114, 0, 117, 0, 115, 0, 117, 0, 116, 0, 114, 0, 112, 0, 150, 0, 110, 0, 150, 0, 112, 0, 114, 0, 150, 0, 185, 0, 110, 0, 107, 0, 150, 0, 109, 0, 107, 0, 110, 0, 107, 0, 104, 0, 150, 0, 106, 0, 104, 0, 107, 0, 150, 0, 104, 0, 163, 0, 100, 0, 168, 0, 163, 0, 100, 0, 170, 0, 168, 0, 170, 0, 171, 0, 168, 0, 96, 0, 170, 0, 97, 0, 97, 0, 170, 0, 100, 0, 97, 0, 100, 0, 98, 0, 101, 0, 100, 0, 102, 0, 102, 0, 100, 0, 163, 0, 104, 0, 102, 0, 163, 0, 174, 0, 168, 0, 171, 0, 174, 0, 163, 0, 168, 0, 174, 0, 150, 0, 163, 0, 150, 0, 174, 0, 185, 0, 185, 0, 174, 0, 179, 0), 0.466953, PackedByteArray(0, 0, 5, 0, 1, 0, 0, 0, 66, 0, 5, 0, 0, 0, 64, 0, 66, 0, 66, 0, 70, 0, 5, 0, 5, 0, 70, 0, 72, 0, 72, 0, 80, 0, 5, 0, 80, 0, 37, 0, 5, 0, 80, 0, 84, 0, 45, 0, 84, 0, 89, 0, 93, 0, 93, 0, 61, 0, 45, 0, 0, 0, 1, 0, 61, 0, 93, 0, 0, 0, 61, 0, 0, 0, 93, 0, 64, 0, 80, 0, 45, 0, 37, 0, 84, 0, 93, 0, 45, 0, 5, 0, 61, 0, 1, 0, 5, 0, 45, 0, 61, 0, 5, 0, 37, 0, 45, 0, 127, 0, 170, 0, 96, 0, 127, 0, 124, 0, 179, 0, 124, 0, 120, 0, 179, 0, 120, 0, 185, 0, 179, 0, 120, 0, 116, 0, 185, 0, 116, 0, 114, 0, 185, 0, 114, 0, 150, 0, 185, 0, 170, 0, 179, 0, 171, 0, 170, 0, 127, 0, 179, 0, 110, 0, 106, 0, 150, 0, 150, 0, 106, 0, 163, 0, 114, 0, 110, 0, 150, 0, 170, 0, 171, 0, 163, 0, 101, 0, 170, 0, 163, 0, 98, 0, 170, 0, 101, 0, 96, 0, 170, 0, 98, 0, 106, 0, 101, 0, 163, 0, 179, 0, 163, 0, 171, 0, 179, 0, 150, 0, 163, 0, 150, 0, 179, 0, 185, 0), 0.972276, PackedByteArray(0, 0, 5, 0, 1, 0, 0, 0, 66, 0, 5, 0, 0, 0, 64, 0, 66, 0, 5, 0, 66, 0, 84, 0, 84, 0, 89, 0, 45, 0, 5, 0, 45, 0, 1, 0, 89, 0, 0, 0, 45, 0, 0, 0, 1, 0, 45, 0, 5, 0, 84, 0, 45, 0, 0, 0, 89, 0, 64, 0, 120, 0, 170, 0, 96, 0, 96, 0, 170, 0, 110, 0, 110, 0, 170, 0, 150, 0, 170, 0, 171, 0, 150, 0, 120, 0, 150, 0, 179, 0, 170, 0, 179, 0, 171, 0, 170, 0, 120, 0, 179, 0, 179, 0, 150, 0, 171, 0, 120, 0, 110, 0, 150, 0)], +"primitive": 3, +"vertex_count": 192, +"vertex_data": PackedByteArray(0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 194, 197, 71, 62, 1, 0, 64, 64, 190, 20, 123, 63, 149, 203, 51, 62, 154, 153, 57, 64, 17, 249, 97, 63, 22, 239, 195, 62, 1, 0, 64, 64, 94, 131, 108, 63, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 218, 57, 14, 63, 1, 0, 64, 64, 49, 219, 84, 63, 222, 0, 0, 63, 154, 153, 57, 64, 18, 146, 63, 63, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 63, 218, 234, 34, 63, 154, 153, 57, 64, 218, 234, 34, 63, 49, 219, 84, 63, 0, 0, 64, 64, 218, 57, 14, 63, 18, 146, 63, 63, 154, 153, 57, 64, 222, 0, 0, 63, 94, 131, 108, 63, 0, 0, 64, 64, 21, 239, 195, 62, 161, 220, 84, 63, 154, 153, 57, 64, 45, 87, 176, 62, 190, 20, 123, 63, 0, 0, 64, 64, 196, 197, 71, 62, 17, 249, 97, 63, 154, 153, 57, 64, 151, 203, 51, 62, 0, 0, 128, 63, 0, 0, 64, 64, 46, 189, 59, 179, 102, 102, 102, 63, 154, 153, 57, 64, 204, 57, 208, 178, 190, 20, 123, 63, 0, 0, 64, 64, 194, 197, 71, 190, 17, 249, 97, 63, 153, 153, 57, 64, 148, 203, 51, 190, 95, 131, 108, 63, 0, 0, 64, 64, 20, 239, 195, 190, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 50, 219, 84, 63, 0, 0, 64, 64, 217, 57, 14, 191, 19, 146, 63, 63, 153, 153, 57, 64, 221, 0, 0, 191, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 191, 218, 234, 34, 63, 153, 153, 57, 64, 218, 234, 34, 191, 217, 57, 14, 63, 255, 255, 63, 64, 50, 219, 84, 191, 221, 0, 0, 63, 153, 153, 57, 64, 19, 146, 63, 191, 23, 239, 195, 62, 255, 255, 63, 64, 94, 131, 108, 191, 46, 87, 176, 62, 153, 153, 57, 64, 161, 220, 84, 191, 193, 197, 71, 62, 255, 255, 63, 64, 191, 20, 123, 191, 148, 203, 51, 62, 153, 153, 57, 64, 18, 249, 97, 191, 46, 189, 187, 179, 255, 255, 63, 64, 0, 0, 128, 191, 16, 247, 168, 179, 153, 153, 57, 64, 102, 102, 102, 191, 189, 197, 71, 190, 255, 255, 63, 64, 191, 20, 123, 191, 144, 203, 51, 190, 153, 153, 57, 64, 18, 249, 97, 191, 21, 239, 195, 190, 255, 255, 63, 64, 94, 131, 108, 191, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 219, 57, 14, 191, 255, 255, 63, 64, 48, 219, 84, 191, 222, 0, 0, 191, 153, 153, 57, 64, 17, 146, 63, 191, 242, 4, 53, 191, 0, 0, 64, 64, 244, 4, 53, 191, 218, 234, 34, 191, 153, 153, 57, 64, 219, 234, 34, 191, 47, 219, 84, 191, 0, 0, 64, 64, 221, 57, 14, 191, 16, 146, 63, 191, 153, 153, 57, 64, 224, 0, 0, 191, 94, 131, 108, 191, 0, 0, 64, 64, 26, 239, 195, 190, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 190, 20, 123, 191, 0, 0, 64, 64, 198, 197, 71, 190, 17, 249, 97, 191, 153, 153, 57, 64, 151, 203, 51, 190, 0, 0, 128, 191, 0, 0, 64, 64, 46, 222, 76, 50, 102, 102, 102, 191, 154, 153, 57, 64, 28, 229, 221, 50, 190, 20, 123, 191, 0, 0, 64, 64, 200, 197, 71, 62, 17, 249, 97, 191, 154, 153, 57, 64, 155, 203, 51, 62, 93, 131, 108, 191, 0, 0, 64, 64, 27, 239, 195, 62, 160, 220, 84, 191, 154, 153, 57, 64, 51, 87, 176, 62, 51, 219, 84, 191, 0, 0, 64, 64, 215, 57, 14, 63, 20, 146, 63, 191, 154, 153, 57, 64, 219, 0, 0, 63, 245, 4, 53, 191, 0, 0, 64, 64, 242, 4, 53, 63, 220, 234, 34, 191, 154, 153, 57, 64, 218, 234, 34, 63, 219, 57, 14, 191, 1, 0, 64, 64, 49, 219, 84, 63, 222, 0, 0, 191, 154, 153, 57, 64, 18, 146, 63, 63, 21, 239, 195, 190, 1, 0, 64, 64, 95, 131, 108, 63, 44, 87, 176, 190, 154, 153, 57, 64, 162, 220, 84, 63, 188, 197, 71, 190, 1, 0, 64, 64, 191, 20, 123, 63, 143, 203, 51, 190, 154, 153, 57, 64, 18, 249, 97, 63, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 192, 197, 71, 190, 103, 102, 70, 64, 190, 20, 123, 63, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 187, 197, 71, 62, 0, 0, 96, 64, 188, 20, 123, 63, 217, 57, 14, 63, 0, 0, 96, 64, 47, 219, 84, 63, 242, 4, 53, 63, 255, 255, 95, 64, 241, 4, 53, 63, 48, 219, 84, 63, 255, 255, 95, 64, 216, 57, 14, 63, 189, 20, 123, 63, 255, 255, 95, 64, 187, 197, 71, 62, 189, 20, 123, 63, 255, 255, 95, 64, 203, 197, 71, 190, 49, 219, 84, 63, 255, 255, 95, 64, 219, 57, 14, 191, 242, 4, 53, 63, 255, 255, 95, 64, 245, 4, 53, 191, 216, 57, 14, 63, 254, 255, 95, 64, 52, 219, 84, 191, 19, 239, 195, 62, 254, 255, 95, 64, 96, 131, 108, 191, 186, 197, 71, 62, 254, 255, 95, 64, 193, 20, 123, 191, 74, 105, 69, 180, 254, 255, 95, 64, 0, 0, 128, 191, 196, 197, 71, 190, 254, 255, 95, 64, 193, 20, 123, 191, 25, 239, 195, 190, 254, 255, 95, 64, 96, 131, 108, 191, 220, 57, 14, 191, 254, 255, 95, 64, 50, 219, 84, 191, 48, 219, 84, 191, 255, 255, 95, 64, 223, 57, 14, 191, 191, 20, 123, 191, 255, 255, 95, 64, 207, 197, 71, 190, 191, 20, 123, 191, 255, 255, 95, 64, 191, 197, 71, 62, 52, 219, 84, 191, 255, 255, 95, 64, 213, 57, 14, 63, 246, 4, 53, 191, 255, 255, 95, 64, 240, 4, 53, 63, 220, 57, 14, 191, 0, 0, 96, 64, 47, 219, 84, 63, 195, 197, 71, 190, 0, 0, 96, 64, 189, 20, 123, 63, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 149, 203, 51, 62, 102, 102, 102, 64, 17, 249, 97, 191, 45, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 191, 222, 0, 0, 63, 102, 102, 102, 64, 18, 146, 63, 191, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 191, 18, 146, 63, 63, 102, 102, 102, 64, 222, 0, 0, 191, 94, 131, 108, 63, 0, 0, 96, 64, 21, 239, 195, 190, 161, 220, 84, 63, 102, 102, 102, 64, 44, 87, 176, 190, 17, 249, 97, 63, 102, 102, 102, 64, 150, 203, 51, 190, 0, 0, 128, 63, 0, 0, 96, 64, 46, 189, 59, 51, 102, 102, 102, 63, 102, 102, 102, 64, 16, 247, 40, 51, 17, 249, 97, 63, 102, 102, 102, 64, 149, 203, 51, 62, 95, 131, 108, 63, 0, 0, 96, 64, 20, 239, 195, 62, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 19, 146, 63, 63, 102, 102, 102, 64, 221, 0, 0, 63, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 63, 221, 0, 0, 63, 102, 102, 102, 64, 19, 146, 63, 63, 23, 239, 195, 62, 0, 0, 96, 64, 94, 131, 108, 63, 46, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 63, 148, 203, 51, 62, 102, 102, 102, 64, 18, 249, 97, 63, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 144, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 63, 21, 239, 195, 190, 0, 0, 96, 64, 94, 131, 108, 63, 44, 87, 176, 190, 102, 102, 102, 64, 161, 220, 84, 63, 222, 0, 0, 191, 102, 102, 102, 64, 17, 146, 63, 63, 218, 234, 34, 191, 102, 102, 102, 64, 219, 234, 34, 63, 16, 146, 63, 191, 102, 102, 102, 64, 224, 0, 0, 63, 94, 131, 108, 191, 0, 0, 96, 64, 26, 239, 195, 62, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 17, 249, 97, 191, 102, 102, 102, 64, 152, 203, 51, 62, 0, 0, 128, 191, 0, 0, 96, 64, 46, 222, 76, 178, 102, 102, 102, 191, 102, 102, 102, 64, 143, 97, 56, 178, 17, 249, 97, 191, 102, 102, 102, 64, 154, 203, 51, 190, 93, 131, 108, 191, 0, 0, 96, 64, 27, 239, 195, 190, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 20, 146, 63, 191, 102, 102, 102, 64, 219, 0, 0, 191, 245, 4, 53, 191, 0, 0, 96, 64, 242, 4, 53, 191, 220, 234, 34, 191, 102, 102, 102, 64, 218, 234, 34, 191, 222, 0, 0, 191, 102, 102, 102, 64, 18, 146, 63, 191, 44, 87, 176, 190, 102, 102, 102, 64, 162, 220, 84, 191, 143, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 191) +}, { +"aabb": AABB(-1, 3.1, -1, 2, 0.3, 2.00001), +"format": 4097, +"index_count": 192, +"index_data": PackedByteArray(12, 0, 45, 0, 13, 0, 12, 0, 44, 0, 45, 0, 26, 0, 59, 0, 27, 0, 26, 0, 58, 0, 59, 0, 13, 0, 46, 0, 14, 0, 13, 0, 45, 0, 46, 0, 0, 0, 33, 0, 1, 0, 0, 0, 32, 0, 33, 0, 27, 0, 60, 0, 28, 0, 27, 0, 59, 0, 60, 0, 14, 0, 47, 0, 15, 0, 14, 0, 46, 0, 47, 0, 1, 0, 34, 0, 2, 0, 1, 0, 33, 0, 34, 0, 28, 0, 61, 0, 29, 0, 28, 0, 60, 0, 61, 0, 15, 0, 48, 0, 16, 0, 15, 0, 47, 0, 48, 0, 2, 0, 35, 0, 3, 0, 2, 0, 34, 0, 35, 0, 29, 0, 62, 0, 30, 0, 29, 0, 61, 0, 62, 0, 16, 0, 49, 0, 17, 0, 16, 0, 48, 0, 49, 0, 3, 0, 36, 0, 4, 0, 3, 0, 35, 0, 36, 0, 30, 0, 63, 0, 31, 0, 30, 0, 62, 0, 63, 0, 17, 0, 50, 0, 18, 0, 17, 0, 49, 0, 50, 0, 4, 0, 37, 0, 5, 0, 4, 0, 36, 0, 37, 0, 31, 0, 32, 0, 0, 0, 31, 0, 63, 0, 32, 0, 18, 0, 51, 0, 19, 0, 18, 0, 50, 0, 51, 0, 5, 0, 38, 0, 6, 0, 5, 0, 37, 0, 38, 0, 19, 0, 52, 0, 20, 0, 19, 0, 51, 0, 52, 0, 6, 0, 39, 0, 7, 0, 6, 0, 38, 0, 39, 0, 20, 0, 53, 0, 21, 0, 20, 0, 52, 0, 53, 0, 7, 0, 40, 0, 8, 0, 7, 0, 39, 0, 40, 0, 21, 0, 54, 0, 22, 0, 21, 0, 53, 0, 54, 0, 8, 0, 41, 0, 9, 0, 8, 0, 40, 0, 41, 0, 22, 0, 55, 0, 23, 0, 22, 0, 54, 0, 55, 0, 9, 0, 42, 0, 10, 0, 9, 0, 41, 0, 42, 0, 23, 0, 56, 0, 24, 0, 23, 0, 55, 0, 56, 0, 10, 0, 43, 0, 11, 0, 10, 0, 42, 0, 43, 0, 24, 0, 57, 0, 25, 0, 24, 0, 56, 0, 57, 0, 11, 0, 44, 0, 12, 0, 11, 0, 43, 0, 44, 0, 25, 0, 58, 0, 26, 0, 25, 0, 57, 0, 58, 0), +"lods": [0.0279969, PackedByteArray(0, 0, 35, 0, 2, 0, 0, 0, 32, 0, 35, 0, 2, 0, 35, 0, 37, 0, 2, 0, 37, 0, 6, 0, 6, 0, 37, 0, 39, 0, 6, 0, 39, 0, 8, 0, 8, 0, 39, 0, 41, 0, 8, 0, 41, 0, 10, 0, 10, 0, 41, 0, 43, 0, 10, 0, 43, 0, 11, 0, 11, 0, 43, 0, 46, 0, 11, 0, 46, 0, 13, 0, 13, 0, 46, 0, 48, 0, 13, 0, 48, 0, 17, 0, 17, 0, 48, 0, 50, 0, 17, 0, 50, 0, 19, 0, 19, 0, 50, 0, 52, 0, 19, 0, 52, 0, 21, 0, 21, 0, 52, 0, 54, 0, 21, 0, 54, 0, 23, 0, 23, 0, 54, 0, 56, 0, 23, 0, 56, 0, 25, 0, 25, 0, 56, 0, 60, 0, 25, 0, 60, 0, 27, 0, 27, 0, 60, 0, 62, 0, 27, 0, 62, 0, 31, 0, 31, 0, 62, 0, 32, 0, 31, 0, 32, 0, 0, 0), 0.105563, PackedByteArray(0, 0, 35, 0, 6, 0, 0, 0, 32, 0, 35, 0, 6, 0, 35, 0, 43, 0, 6, 0, 43, 0, 10, 0, 10, 0, 43, 0, 46, 0, 10, 0, 46, 0, 17, 0, 17, 0, 46, 0, 54, 0, 17, 0, 54, 0, 21, 0, 21, 0, 54, 0, 56, 0, 21, 0, 56, 0, 25, 0, 25, 0, 56, 0, 60, 0, 25, 0, 60, 0, 27, 0, 27, 0, 60, 0, 32, 0, 27, 0, 32, 0, 0, 0), 0.486893, PackedByteArray(0, 0, 35, 0, 6, 0, 0, 0, 32, 0, 35, 0, 6, 0, 35, 0, 46, 0, 6, 0, 46, 0, 27, 0, 27, 0, 46, 0, 60, 0, 27, 0, 60, 0, 32, 0, 27, 0, 32, 0, 0, 0)], +"primitive": 3, +"vertex_count": 64, +"vertex_data": PackedByteArray(63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 192, 197, 71, 190, 103, 102, 70, 64, 190, 20, 123, 63, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_20bhj"] resource_name = "teleport_Cone001" -surfaces/0 = { -"aabb": AABB( -1, 2.9, -1, 2, 0.7, 2.00001 ), -"array_data": PoolByteArray( 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 0, 0, 126, 63, 0, 0, 0, 56, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 0, 0, 126, 63, 0, 60, 0, 56, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 0, 193, 121, 57, 0, 0, 0, 56, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 0, 193, 115, 66, 0, 60, 0, 56, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 0, 130, 129, 28, 5, 54, 207, 56, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 0, 193, 121, 57, 0, 0, 102, 56, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 0, 193, 115, 66, 0, 60, 102, 56, 194, 197, 71, 62, 1, 0, 64, 64, 190, 20, 123, 63, 11, 198, 126, 74, 0, 40, 0, 56, 194, 197, 71, 62, 1, 0, 64, 64, 190, 20, 123, 63, 21, 0, 127, 52, 0, 40, 0, 56, 149, 203, 51, 62, 154, 153, 57, 64, 17, 249, 97, 63, 0, 130, 129, 28, 190, 53, 154, 56, 149, 203, 51, 62, 154, 153, 57, 64, 17, 249, 97, 63, 11, 198, 126, 74, 0, 40, 102, 56, 22, 239, 195, 62, 1, 0, 64, 64, 94, 131, 108, 63, 21, 201, 126, 82, 0, 44, 0, 56, 22, 239, 195, 62, 1, 0, 64, 64, 94, 131, 108, 63, 37, 0, 127, 44, 0, 44, 0, 56, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 0, 130, 129, 28, 141, 53, 95, 56, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 21, 201, 126, 82, 0, 44, 102, 56, 218, 57, 14, 63, 1, 0, 64, 64, 49, 219, 84, 63, 29, 203, 126, 38, 0, 46, 0, 56, 218, 57, 14, 63, 1, 0, 64, 64, 49, 219, 84, 63, 50, 0, 127, 38, 0, 46, 0, 56, 222, 0, 0, 63, 154, 153, 57, 64, 18, 146, 63, 63, 0, 130, 129, 28, 116, 53, 32, 56, 222, 0, 0, 63, 154, 153, 57, 64, 18, 146, 63, 63, 29, 203, 126, 38, 0, 46, 102, 56, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 63, 37, 204, 126, 31, 0, 48, 0, 56, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 63, 63, 0, 127, 31, 0, 48, 0, 56, 218, 234, 34, 63, 154, 153, 57, 64, 218, 234, 34, 63, 0, 130, 129, 28, 116, 53, 191, 55, 218, 234, 34, 63, 154, 153, 57, 64, 218, 234, 34, 63, 37, 204, 126, 31, 0, 48, 102, 56, 49, 219, 84, 63, 0, 0, 64, 64, 218, 57, 14, 63, 44, 203, 126, 25, 0, 49, 0, 56, 49, 219, 84, 63, 0, 0, 64, 64, 218, 57, 14, 63, 76, 0, 127, 25, 0, 49, 0, 56, 18, 146, 63, 63, 154, 153, 57, 64, 222, 0, 0, 63, 0, 130, 129, 28, 141, 53, 65, 55, 18, 146, 63, 63, 154, 153, 57, 64, 222, 0, 0, 63, 44, 203, 126, 25, 0, 49, 102, 56, 94, 131, 108, 63, 0, 0, 64, 64, 21, 239, 195, 62, 50, 201, 126, 18, 0, 50, 0, 56, 94, 131, 108, 63, 0, 0, 64, 64, 21, 239, 195, 62, 89, 0, 127, 18, 0, 50, 0, 56, 161, 220, 84, 63, 154, 153, 57, 64, 45, 87, 176, 62, 0, 130, 129, 28, 190, 53, 203, 54, 161, 220, 84, 63, 154, 153, 57, 64, 45, 87, 176, 62, 50, 201, 126, 18, 0, 50, 102, 56, 190, 20, 123, 63, 0, 0, 64, 64, 196, 197, 71, 62, 57, 198, 127, 10, 0, 51, 0, 56, 190, 20, 123, 63, 0, 0, 64, 64, 196, 197, 71, 62, 105, 0, 127, 10, 0, 51, 0, 56, 17, 249, 97, 63, 154, 153, 57, 64, 151, 203, 51, 62, 0, 130, 129, 28, 5, 54, 96, 54, 17, 249, 97, 63, 154, 153, 57, 64, 151, 203, 51, 62, 57, 198, 127, 116, 0, 51, 102, 56, 0, 0, 128, 63, 0, 0, 64, 64, 46, 189, 59, 179, 63, 193, 126, 126, 0, 52, 0, 56, 0, 0, 128, 63, 0, 0, 64, 64, 46, 189, 59, 179, 126, 0, 127, 127, 0, 52, 0, 56, 102, 102, 102, 63, 154, 153, 57, 64, 204, 57, 208, 178, 0, 130, 129, 28, 96, 54, 5, 54, 102, 102, 102, 63, 154, 153, 57, 64, 204, 57, 208, 178, 63, 193, 126, 126, 0, 52, 102, 56, 190, 20, 123, 63, 0, 0, 64, 64, 194, 197, 71, 190, 68, 187, 129, 116, 128, 52, 0, 56, 190, 20, 123, 63, 0, 0, 64, 64, 194, 197, 71, 190, 126, 21, 129, 116, 128, 52, 0, 56, 17, 249, 97, 63, 153, 153, 57, 64, 148, 203, 51, 190, 0, 130, 129, 28, 203, 54, 190, 53, 17, 249, 97, 63, 153, 153, 57, 64, 148, 203, 51, 190, 68, 187, 130, 116, 128, 52, 102, 56, 95, 131, 108, 63, 0, 0, 64, 64, 20, 239, 195, 190, 71, 180, 130, 108, 0, 53, 0, 56, 95, 131, 108, 63, 0, 0, 64, 64, 20, 239, 195, 190, 126, 37, 129, 108, 0, 53, 0, 56, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 0, 130, 129, 28, 65, 55, 141, 53, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 71, 180, 130, 108, 0, 53, 102, 56, 50, 219, 84, 63, 0, 0, 64, 64, 217, 57, 14, 191, 73, 174, 130, 25, 128, 53, 0, 56, 50, 219, 84, 63, 0, 0, 64, 64, 217, 57, 14, 191, 126, 50, 129, 101, 128, 53, 0, 56, 19, 146, 63, 63, 153, 153, 57, 64, 221, 0, 0, 191, 0, 130, 129, 28, 191, 55, 116, 53, 19, 146, 63, 63, 153, 153, 57, 64, 221, 0, 0, 191, 73, 174, 130, 25, 128, 53, 102, 56, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 191, 74, 167, 130, 95, 0, 54, 0, 56, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 191, 126, 193, 129, 95, 0, 54, 0, 56, 218, 234, 34, 63, 153, 153, 57, 64, 218, 234, 34, 191, 0, 130, 129, 28, 32, 56, 116, 53, 218, 234, 34, 63, 153, 153, 57, 64, 218, 234, 34, 191, 74, 167, 129, 31, 0, 54, 102, 56, 217, 57, 14, 63, 255, 255, 63, 64, 50, 219, 84, 191, 73, 159, 130, 38, 128, 54, 0, 56, 217, 57, 14, 63, 255, 255, 63, 64, 50, 219, 84, 191, 126, 180, 129, 38, 128, 54, 0, 56, 221, 0, 0, 63, 153, 153, 57, 64, 19, 146, 63, 191, 0, 130, 129, 28, 95, 56, 141, 53, 221, 0, 0, 63, 153, 153, 57, 64, 19, 146, 63, 191, 73, 159, 130, 38, 128, 54, 102, 56, 23, 239, 195, 62, 255, 255, 63, 64, 94, 131, 108, 191, 71, 151, 130, 44, 0, 55, 0, 56, 23, 239, 195, 62, 255, 255, 63, 64, 94, 131, 108, 191, 126, 167, 129, 44, 0, 55, 0, 56, 46, 87, 176, 62, 153, 153, 57, 64, 161, 220, 84, 191, 0, 130, 129, 28, 154, 56, 190, 53, 46, 87, 176, 62, 153, 153, 57, 64, 161, 220, 84, 191, 71, 151, 130, 44, 0, 55, 102, 56, 193, 197, 71, 62, 255, 255, 63, 64, 191, 20, 123, 191, 68, 141, 130, 52, 128, 55, 0, 56, 193, 197, 71, 62, 255, 255, 63, 64, 191, 20, 123, 191, 126, 151, 129, 52, 128, 55, 0, 56, 148, 203, 51, 62, 153, 153, 57, 64, 18, 249, 97, 191, 0, 130, 129, 28, 207, 56, 5, 54, 148, 203, 51, 62, 153, 153, 57, 64, 18, 249, 97, 191, 68, 141, 130, 52, 128, 55, 102, 56, 46, 189, 187, 179, 255, 255, 63, 64, 0, 0, 128, 191, 193, 130, 129, 63, 0, 56, 0, 56, 46, 189, 187, 179, 255, 255, 63, 64, 0, 0, 128, 191, 129, 129, 129, 63, 0, 56, 0, 56, 16, 247, 168, 179, 153, 153, 57, 64, 102, 102, 102, 191, 0, 130, 129, 28, 253, 56, 96, 54, 16, 247, 168, 179, 153, 153, 57, 64, 102, 102, 102, 191, 193, 129, 129, 63, 0, 56, 102, 56, 189, 197, 71, 190, 255, 255, 63, 64, 191, 20, 123, 191, 130, 151, 151, 63, 64, 56, 0, 56, 189, 197, 71, 190, 255, 255, 63, 64, 191, 20, 123, 191, 188, 141, 151, 63, 64, 56, 0, 56, 144, 203, 51, 190, 153, 153, 57, 64, 18, 249, 97, 191, 188, 141, 151, 63, 64, 56, 102, 56, 144, 203, 51, 190, 153, 153, 57, 64, 18, 249, 97, 191, 0, 130, 129, 28, 32, 57, 203, 54, 21, 239, 195, 190, 255, 255, 63, 64, 94, 131, 108, 191, 130, 167, 167, 63, 128, 56, 0, 56, 21, 239, 195, 190, 255, 255, 63, 64, 94, 131, 108, 191, 185, 151, 167, 63, 128, 56, 0, 56, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 185, 151, 167, 63, 128, 56, 102, 56, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 0, 130, 129, 28, 57, 57, 65, 55, 219, 57, 14, 191, 255, 255, 63, 64, 48, 219, 84, 191, 130, 180, 180, 63, 192, 56, 0, 56, 219, 57, 14, 191, 255, 255, 63, 64, 48, 219, 84, 191, 183, 159, 180, 63, 192, 56, 0, 56, 222, 0, 0, 191, 153, 153, 57, 64, 17, 146, 63, 191, 183, 159, 180, 63, 192, 56, 102, 56, 222, 0, 0, 191, 153, 153, 57, 64, 17, 146, 63, 191, 0, 130, 129, 28, 69, 57, 191, 55, 242, 4, 53, 191, 0, 0, 64, 64, 244, 4, 53, 191, 130, 193, 193, 63, 0, 57, 0, 56, 242, 4, 53, 191, 0, 0, 64, 64, 244, 4, 53, 191, 182, 167, 193, 63, 0, 57, 0, 56, 218, 234, 34, 191, 153, 153, 57, 64, 219, 234, 34, 191, 182, 167, 193, 63, 0, 57, 102, 56, 218, 234, 34, 191, 153, 153, 57, 64, 219, 234, 34, 191, 0, 130, 129, 28, 69, 57, 32, 56, 47, 219, 84, 191, 0, 0, 64, 64, 221, 57, 14, 191, 130, 206, 206, 63, 63, 57, 0, 56, 47, 219, 84, 191, 0, 0, 64, 64, 221, 57, 14, 191, 183, 174, 206, 63, 63, 57, 0, 56, 16, 146, 63, 191, 153, 153, 57, 64, 224, 0, 0, 191, 183, 174, 206, 63, 64, 57, 102, 56, 16, 146, 63, 191, 153, 153, 57, 64, 224, 0, 0, 191, 0, 130, 129, 28, 57, 57, 95, 56, 94, 131, 108, 191, 0, 0, 64, 64, 26, 239, 195, 190, 130, 219, 219, 63, 128, 57, 0, 56, 94, 131, 108, 191, 0, 0, 64, 64, 26, 239, 195, 190, 185, 180, 219, 63, 128, 57, 0, 56, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 185, 180, 219, 63, 128, 57, 102, 56, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 0, 130, 129, 28, 32, 57, 154, 56, 190, 20, 123, 191, 0, 0, 64, 64, 198, 197, 71, 190, 130, 235, 235, 63, 192, 57, 0, 56, 190, 20, 123, 191, 0, 0, 64, 64, 198, 197, 71, 190, 188, 187, 235, 63, 192, 57, 0, 56, 17, 249, 97, 191, 153, 153, 57, 64, 151, 203, 51, 190, 188, 187, 235, 63, 192, 57, 102, 56, 17, 249, 97, 191, 153, 153, 57, 64, 151, 203, 51, 190, 0, 130, 129, 28, 253, 56, 207, 56, 0, 0, 128, 191, 0, 0, 64, 64, 46, 222, 76, 50, 130, 0, 0, 63, 0, 58, 0, 56, 0, 0, 128, 191, 0, 0, 64, 64, 46, 222, 76, 50, 193, 193, 0, 63, 0, 58, 0, 56, 102, 102, 102, 191, 154, 153, 57, 64, 28, 229, 221, 50, 193, 193, 0, 63, 0, 58, 102, 56, 102, 102, 102, 191, 154, 153, 57, 64, 28, 229, 221, 50, 0, 130, 129, 28, 207, 56, 253, 56, 190, 20, 123, 191, 0, 0, 64, 64, 200, 197, 71, 62, 151, 0, 21, 63, 64, 58, 0, 56, 190, 20, 123, 191, 0, 0, 64, 64, 200, 197, 71, 62, 199, 198, 21, 63, 64, 58, 0, 56, 17, 249, 97, 191, 154, 153, 57, 64, 155, 203, 51, 62, 199, 198, 21, 63, 64, 58, 102, 56, 17, 249, 97, 191, 154, 153, 57, 64, 155, 203, 51, 62, 0, 130, 129, 28, 154, 56, 32, 57, 93, 131, 108, 191, 0, 0, 64, 64, 27, 239, 195, 62, 167, 0, 37, 63, 128, 58, 0, 56, 93, 131, 108, 191, 0, 0, 64, 64, 27, 239, 195, 62, 206, 201, 37, 63, 128, 58, 0, 56, 160, 220, 84, 191, 154, 153, 57, 64, 51, 87, 176, 62, 206, 201, 37, 63, 128, 58, 102, 56, 160, 220, 84, 191, 154, 153, 57, 64, 51, 87, 176, 62, 0, 130, 129, 28, 95, 56, 57, 57, 51, 219, 84, 191, 0, 0, 64, 64, 215, 57, 14, 63, 180, 0, 50, 63, 191, 58, 0, 56, 51, 219, 84, 191, 0, 0, 64, 64, 215, 57, 14, 63, 212, 203, 50, 63, 191, 58, 0, 56, 20, 146, 63, 191, 154, 153, 57, 64, 219, 0, 0, 63, 212, 203, 50, 63, 191, 58, 102, 56, 20, 146, 63, 191, 154, 153, 57, 64, 219, 0, 0, 63, 0, 130, 129, 28, 32, 56, 69, 57, 245, 4, 53, 191, 0, 0, 64, 64, 242, 4, 53, 63, 193, 0, 63, 63, 255, 58, 0, 56, 245, 4, 53, 191, 0, 0, 64, 64, 242, 4, 53, 63, 219, 204, 63, 63, 255, 58, 0, 56, 220, 234, 34, 191, 154, 153, 57, 64, 218, 234, 34, 63, 219, 204, 63, 63, 0, 59, 102, 56, 220, 234, 34, 191, 154, 153, 57, 64, 218, 234, 34, 63, 0, 130, 129, 28, 191, 55, 69, 57, 219, 57, 14, 191, 1, 0, 64, 64, 49, 219, 84, 63, 206, 0, 76, 63, 64, 59, 0, 56, 219, 57, 14, 191, 1, 0, 64, 64, 49, 219, 84, 63, 227, 203, 76, 63, 64, 59, 0, 56, 222, 0, 0, 191, 154, 153, 57, 64, 18, 146, 63, 63, 227, 203, 76, 63, 64, 59, 102, 56, 222, 0, 0, 191, 154, 153, 57, 64, 18, 146, 63, 63, 0, 130, 129, 28, 65, 55, 57, 57, 21, 239, 195, 190, 1, 0, 64, 64, 95, 131, 108, 63, 219, 0, 89, 63, 128, 59, 0, 56, 21, 239, 195, 190, 1, 0, 64, 64, 95, 131, 108, 63, 235, 201, 89, 63, 128, 59, 0, 56, 44, 87, 176, 190, 154, 153, 57, 64, 162, 220, 84, 63, 235, 201, 89, 63, 128, 59, 102, 56, 44, 87, 176, 190, 154, 153, 57, 64, 162, 220, 84, 63, 0, 130, 129, 28, 203, 54, 32, 57, 188, 197, 71, 190, 1, 0, 64, 64, 191, 20, 123, 63, 235, 0, 105, 63, 192, 59, 0, 56, 188, 197, 71, 190, 1, 0, 64, 64, 191, 20, 123, 63, 245, 198, 105, 63, 192, 59, 0, 56, 143, 203, 51, 190, 154, 153, 57, 64, 18, 249, 97, 63, 245, 198, 105, 63, 192, 59, 102, 56, 143, 203, 51, 190, 154, 153, 57, 64, 18, 249, 97, 63, 0, 130, 129, 28, 96, 54, 253, 56, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 0, 0, 127, 63, 0, 0, 51, 55, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 0, 0, 127, 63, 0, 60, 51, 55, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 21, 0, 127, 52, 0, 40, 51, 55, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 37, 0, 127, 44, 0, 44, 51, 55, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 50, 0, 127, 38, 0, 46, 51, 55, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 63, 0, 127, 31, 0, 48, 51, 55, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 76, 0, 127, 25, 0, 49, 51, 55, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 89, 0, 127, 18, 0, 50, 51, 55, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 105, 0, 127, 10, 0, 51, 51, 55, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 126, 0, 129, 127, 0, 52, 51, 55, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 126, 21, 129, 116, 128, 52, 51, 55, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 126, 37, 129, 108, 0, 53, 51, 55, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 126, 50, 129, 101, 128, 53, 51, 55, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 126, 193, 129, 95, 0, 54, 51, 55, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 126, 180, 129, 88, 128, 54, 51, 55, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 126, 167, 129, 44, 0, 55, 51, 55, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 126, 151, 129, 74, 128, 55, 51, 55, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 129, 130, 130, 63, 0, 56, 51, 55, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 130, 151, 151, 63, 64, 56, 51, 55, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 130, 167, 167, 63, 128, 56, 51, 55, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 130, 180, 180, 63, 192, 56, 51, 55, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 130, 193, 193, 63, 0, 57, 51, 55, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 130, 206, 206, 63, 63, 57, 51, 55, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 130, 219, 219, 63, 128, 57, 51, 55, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 130, 235, 235, 63, 192, 57, 51, 55, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 130, 0, 0, 63, 0, 58, 51, 55, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 151, 0, 21, 63, 64, 58, 51, 55, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 167, 0, 37, 63, 128, 58, 51, 55, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 180, 0, 50, 63, 191, 58, 51, 55, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 193, 0, 63, 63, 255, 58, 51, 55, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 206, 0, 76, 63, 64, 59, 51, 55, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 219, 0, 89, 63, 128, 59, 51, 55, 192, 197, 71, 190, 103, 102, 70, 64, 190, 20, 123, 63, 235, 0, 105, 63, 192, 59, 51, 55, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 0, 0, 127, 63, 0, 0, 102, 56, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 0, 0, 127, 63, 0, 60, 102, 56, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 21, 0, 127, 74, 0, 40, 102, 56, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 37, 0, 127, 44, 0, 44, 102, 56, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 50, 0, 127, 38, 0, 46, 102, 56, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 63, 0, 127, 31, 0, 48, 102, 56, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 76, 0, 127, 101, 0, 49, 102, 56, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 89, 0, 127, 18, 0, 50, 102, 56, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 105, 0, 127, 116, 0, 51, 102, 56, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 126, 0, 129, 1, 0, 52, 102, 56, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 126, 235, 129, 10, 128, 52, 102, 56, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 126, 37, 129, 108, 0, 53, 102, 56, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 127, 206, 129, 25, 128, 53, 102, 56, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 127, 193, 129, 95, 0, 54, 102, 56, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 127, 76, 129, 88, 128, 54, 102, 56, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 127, 89, 129, 82, 0, 55, 102, 56, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 126, 105, 129, 74, 128, 55, 102, 56, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 129, 130, 129, 63, 0, 56, 102, 56, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 130, 151, 151, 63, 64, 56, 102, 56, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 130, 167, 167, 63, 128, 56, 102, 56, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 129, 180, 180, 63, 192, 56, 102, 56, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 130, 63, 193, 63, 0, 57, 102, 56, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 130, 50, 206, 63, 63, 57, 102, 56, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 130, 37, 219, 63, 127, 57, 102, 56, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 130, 21, 235, 63, 192, 57, 102, 56, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 129, 0, 0, 63, 0, 58, 102, 56, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 151, 0, 21, 63, 64, 58, 102, 56, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 167, 0, 37, 63, 128, 58, 102, 56, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 180, 0, 50, 63, 191, 58, 102, 56, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 193, 0, 63, 63, 255, 58, 102, 56, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 206, 0, 76, 63, 64, 59, 102, 56, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 219, 0, 89, 63, 128, 59, 102, 56, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 235, 0, 105, 63, 192, 59, 102, 56, 187, 197, 71, 62, 0, 0, 96, 64, 188, 20, 123, 63, 11, 58, 126, 74, 0, 40, 0, 56, 187, 197, 71, 62, 0, 0, 96, 64, 188, 20, 123, 63, 21, 0, 127, 74, 0, 40, 0, 56, 217, 57, 14, 63, 0, 0, 96, 64, 47, 219, 84, 63, 29, 53, 126, 88, 0, 46, 0, 56, 217, 57, 14, 63, 0, 0, 96, 64, 47, 219, 84, 63, 50, 0, 127, 88, 0, 46, 0, 56, 242, 4, 53, 63, 255, 255, 95, 64, 241, 4, 53, 63, 37, 52, 126, 95, 0, 48, 0, 56, 242, 4, 53, 63, 255, 255, 95, 64, 241, 4, 53, 63, 63, 0, 127, 95, 0, 48, 0, 56, 48, 219, 84, 63, 255, 255, 95, 64, 216, 57, 14, 63, 44, 53, 127, 25, 0, 49, 0, 56, 48, 219, 84, 63, 255, 255, 95, 64, 216, 57, 14, 63, 76, 0, 127, 101, 0, 49, 0, 56, 189, 20, 123, 63, 255, 255, 95, 64, 187, 197, 71, 62, 57, 58, 126, 10, 0, 51, 0, 56, 189, 20, 123, 63, 255, 255, 95, 64, 187, 197, 71, 62, 105, 0, 127, 116, 0, 51, 0, 56, 189, 20, 123, 63, 255, 255, 95, 64, 203, 197, 71, 190, 68, 69, 130, 10, 128, 52, 0, 56, 189, 20, 123, 63, 255, 255, 95, 64, 203, 197, 71, 190, 126, 235, 129, 10, 128, 52, 0, 56, 49, 219, 84, 63, 255, 255, 95, 64, 219, 57, 14, 191, 73, 82, 130, 25, 128, 53, 0, 56, 49, 219, 84, 63, 255, 255, 95, 64, 219, 57, 14, 191, 126, 50, 129, 101, 128, 53, 0, 56, 242, 4, 53, 63, 255, 255, 95, 64, 245, 4, 53, 191, 74, 89, 130, 95, 0, 54, 0, 56, 242, 4, 53, 63, 255, 255, 95, 64, 245, 4, 53, 191, 127, 63, 129, 95, 0, 54, 0, 56, 216, 57, 14, 63, 254, 255, 95, 64, 52, 219, 84, 191, 73, 97, 130, 88, 128, 54, 0, 56, 216, 57, 14, 63, 254, 255, 95, 64, 52, 219, 84, 191, 127, 76, 129, 88, 128, 54, 0, 56, 19, 239, 195, 62, 254, 255, 95, 64, 96, 131, 108, 191, 71, 105, 129, 82, 0, 55, 0, 56, 19, 239, 195, 62, 254, 255, 95, 64, 96, 131, 108, 191, 127, 89, 129, 82, 0, 55, 0, 56, 186, 197, 71, 62, 254, 255, 95, 64, 193, 20, 123, 191, 68, 115, 130, 74, 128, 55, 0, 56, 186, 197, 71, 62, 254, 255, 95, 64, 193, 20, 123, 191, 126, 105, 129, 74, 128, 55, 0, 56, 74, 105, 69, 180, 254, 255, 95, 64, 0, 0, 128, 191, 129, 130, 130, 63, 0, 56, 0, 56, 74, 105, 69, 180, 254, 255, 95, 64, 0, 0, 128, 191, 63, 126, 130, 63, 0, 56, 0, 56, 196, 197, 71, 190, 254, 255, 95, 64, 193, 20, 123, 191, 130, 151, 151, 63, 64, 56, 0, 56, 196, 197, 71, 190, 254, 255, 95, 64, 193, 20, 123, 191, 188, 115, 151, 63, 64, 56, 0, 56, 25, 239, 195, 190, 254, 255, 95, 64, 96, 131, 108, 191, 129, 89, 167, 63, 128, 56, 0, 56, 25, 239, 195, 190, 254, 255, 95, 64, 96, 131, 108, 191, 185, 105, 167, 63, 128, 56, 0, 56, 220, 57, 14, 191, 254, 255, 95, 64, 50, 219, 84, 191, 130, 76, 180, 63, 192, 56, 0, 56, 220, 57, 14, 191, 254, 255, 95, 64, 50, 219, 84, 191, 183, 97, 180, 63, 192, 56, 0, 56, 48, 219, 84, 191, 255, 255, 95, 64, 223, 57, 14, 191, 130, 50, 206, 63, 63, 57, 0, 56, 48, 219, 84, 191, 255, 255, 95, 64, 223, 57, 14, 191, 183, 82, 206, 63, 63, 57, 0, 56, 191, 20, 123, 191, 255, 255, 95, 64, 207, 197, 71, 190, 130, 21, 235, 63, 192, 57, 0, 56, 191, 20, 123, 191, 255, 255, 95, 64, 207, 197, 71, 190, 188, 69, 235, 63, 192, 57, 0, 56, 191, 20, 123, 191, 255, 255, 95, 64, 191, 197, 71, 62, 151, 0, 21, 63, 64, 58, 0, 56, 191, 20, 123, 191, 255, 255, 95, 64, 191, 197, 71, 62, 199, 58, 21, 63, 64, 58, 0, 56, 52, 219, 84, 191, 255, 255, 95, 64, 213, 57, 14, 63, 180, 0, 50, 63, 191, 58, 0, 56, 52, 219, 84, 191, 255, 255, 95, 64, 213, 57, 14, 63, 212, 53, 50, 63, 191, 58, 0, 56, 246, 4, 53, 191, 255, 255, 95, 64, 240, 4, 53, 63, 193, 0, 63, 63, 255, 58, 0, 56, 246, 4, 53, 191, 255, 255, 95, 64, 240, 4, 53, 63, 219, 52, 63, 63, 255, 58, 0, 56, 220, 57, 14, 191, 0, 0, 96, 64, 47, 219, 84, 63, 206, 0, 76, 63, 64, 59, 0, 56, 220, 57, 14, 191, 0, 0, 96, 64, 47, 219, 84, 63, 227, 53, 76, 63, 64, 59, 0, 56, 195, 197, 71, 190, 0, 0, 96, 64, 189, 20, 123, 63, 235, 0, 105, 63, 192, 59, 0, 56, 195, 197, 71, 190, 0, 0, 96, 64, 189, 20, 123, 63, 245, 58, 105, 63, 192, 59, 0, 56, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 0, 126, 212, 63, 190, 53, 154, 56, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 63, 126, 130, 63, 0, 56, 51, 55, 149, 203, 51, 62, 102, 102, 102, 64, 17, 249, 97, 191, 0, 126, 212, 63, 141, 53, 95, 56, 149, 203, 51, 62, 102, 102, 102, 64, 17, 249, 97, 191, 68, 115, 130, 74, 128, 55, 51, 55, 45, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 191, 0, 126, 212, 63, 116, 53, 32, 56, 45, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 191, 71, 105, 130, 44, 0, 55, 51, 55, 222, 0, 0, 63, 102, 102, 102, 64, 18, 146, 63, 191, 0, 126, 212, 63, 116, 53, 191, 55, 222, 0, 0, 63, 102, 102, 102, 64, 18, 146, 63, 191, 73, 97, 130, 88, 127, 54, 51, 55, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 191, 0, 126, 212, 63, 141, 53, 65, 55, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 191, 74, 89, 130, 95, 0, 54, 51, 55, 18, 146, 63, 63, 102, 102, 102, 64, 222, 0, 0, 191, 0, 126, 212, 63, 190, 53, 203, 54, 18, 146, 63, 63, 102, 102, 102, 64, 222, 0, 0, 191, 73, 82, 130, 25, 128, 53, 51, 55, 94, 131, 108, 63, 0, 0, 96, 64, 21, 239, 195, 190, 71, 76, 130, 18, 0, 53, 0, 56, 94, 131, 108, 63, 0, 0, 96, 64, 21, 239, 195, 190, 126, 37, 129, 108, 0, 53, 0, 56, 161, 220, 84, 63, 102, 102, 102, 64, 44, 87, 176, 190, 0, 126, 212, 63, 5, 54, 96, 54, 161, 220, 84, 63, 102, 102, 102, 64, 44, 87, 176, 190, 71, 76, 130, 18, 0, 53, 51, 55, 17, 249, 97, 63, 102, 102, 102, 64, 150, 203, 51, 190, 0, 126, 212, 63, 96, 54, 5, 54, 17, 249, 97, 63, 102, 102, 102, 64, 150, 203, 51, 190, 68, 69, 130, 10, 128, 52, 51, 55, 0, 0, 128, 63, 0, 0, 96, 64, 46, 189, 59, 51, 63, 63, 130, 126, 255, 51, 0, 56, 0, 0, 128, 63, 0, 0, 96, 64, 46, 189, 59, 51, 126, 0, 127, 1, 255, 51, 0, 56, 102, 102, 102, 63, 102, 102, 102, 64, 16, 247, 40, 51, 0, 126, 212, 63, 203, 54, 190, 53, 102, 102, 102, 63, 102, 102, 102, 64, 16, 247, 40, 51, 63, 63, 130, 126, 255, 51, 51, 55, 17, 249, 97, 63, 102, 102, 102, 64, 149, 203, 51, 62, 0, 126, 212, 63, 65, 55, 141, 53, 17, 249, 97, 63, 102, 102, 102, 64, 149, 203, 51, 62, 57, 58, 126, 10, 0, 51, 51, 55, 95, 131, 108, 63, 0, 0, 96, 64, 20, 239, 195, 62, 50, 55, 126, 108, 0, 50, 0, 56, 95, 131, 108, 63, 0, 0, 96, 64, 20, 239, 195, 62, 89, 0, 127, 18, 0, 50, 0, 56, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 0, 126, 212, 63, 191, 55, 116, 53, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 50, 55, 126, 108, 0, 50, 51, 55, 19, 146, 63, 63, 102, 102, 102, 64, 221, 0, 0, 63, 0, 126, 212, 63, 32, 56, 116, 53, 19, 146, 63, 63, 102, 102, 102, 64, 221, 0, 0, 63, 44, 53, 126, 101, 0, 49, 51, 55, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 63, 0, 126, 212, 63, 95, 56, 141, 53, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 63, 37, 52, 126, 95, 0, 48, 51, 55, 221, 0, 0, 63, 102, 102, 102, 64, 19, 146, 63, 63, 0, 126, 212, 63, 154, 56, 190, 53, 221, 0, 0, 63, 102, 102, 102, 64, 19, 146, 63, 63, 29, 53, 126, 88, 0, 46, 51, 55, 23, 239, 195, 62, 0, 0, 96, 64, 94, 131, 108, 63, 21, 55, 126, 82, 0, 44, 0, 56, 23, 239, 195, 62, 0, 0, 96, 64, 94, 131, 108, 63, 37, 0, 127, 44, 0, 44, 0, 56, 46, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 63, 0, 126, 212, 63, 207, 56, 5, 54, 46, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 63, 21, 55, 126, 82, 0, 44, 51, 55, 148, 203, 51, 62, 102, 102, 102, 64, 18, 249, 97, 63, 0, 126, 212, 63, 253, 56, 96, 54, 148, 203, 51, 62, 102, 102, 102, 64, 18, 249, 97, 63, 11, 58, 126, 74, 0, 40, 51, 55, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 0, 63, 121, 69, 0, 0, 0, 56, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 0, 63, 115, 60, 0, 60, 0, 56, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 0, 0, 126, 63, 0, 0, 0, 56, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 0, 0, 126, 63, 0, 60, 0, 56, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 0, 126, 212, 63, 32, 57, 203, 54, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 0, 63, 121, 69, 0, 0, 51, 55, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 0, 63, 115, 60, 0, 60, 51, 55, 144, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 63, 245, 58, 105, 63, 192, 59, 51, 55, 144, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 63, 0, 126, 212, 63, 57, 57, 65, 55, 21, 239, 195, 190, 0, 0, 96, 64, 94, 131, 108, 63, 219, 0, 89, 63, 128, 59, 0, 56, 21, 239, 195, 190, 0, 0, 96, 64, 94, 131, 108, 63, 235, 55, 89, 63, 128, 59, 0, 56, 44, 87, 176, 190, 102, 102, 102, 64, 161, 220, 84, 63, 235, 55, 89, 63, 128, 59, 51, 55, 44, 87, 176, 190, 102, 102, 102, 64, 161, 220, 84, 63, 0, 126, 212, 63, 69, 57, 191, 55, 222, 0, 0, 191, 102, 102, 102, 64, 17, 146, 63, 63, 227, 53, 76, 63, 64, 59, 51, 55, 222, 0, 0, 191, 102, 102, 102, 64, 17, 146, 63, 63, 0, 126, 212, 63, 69, 57, 32, 56, 218, 234, 34, 191, 102, 102, 102, 64, 219, 234, 34, 63, 219, 52, 63, 63, 0, 59, 51, 55, 218, 234, 34, 191, 102, 102, 102, 64, 219, 234, 34, 63, 0, 126, 212, 63, 57, 57, 95, 56, 16, 146, 63, 191, 102, 102, 102, 64, 224, 0, 0, 63, 212, 53, 50, 63, 192, 58, 51, 55, 16, 146, 63, 191, 102, 102, 102, 64, 224, 0, 0, 63, 0, 126, 212, 63, 32, 57, 154, 56, 94, 131, 108, 191, 0, 0, 96, 64, 26, 239, 195, 62, 167, 0, 37, 63, 128, 58, 0, 56, 94, 131, 108, 191, 0, 0, 96, 64, 26, 239, 195, 62, 206, 55, 37, 63, 128, 58, 0, 56, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 206, 55, 37, 63, 128, 58, 51, 55, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 0, 126, 212, 63, 253, 56, 207, 56, 17, 249, 97, 191, 102, 102, 102, 64, 152, 203, 51, 62, 199, 58, 21, 63, 64, 58, 51, 55, 17, 249, 97, 191, 102, 102, 102, 64, 152, 203, 51, 62, 0, 126, 212, 63, 207, 56, 253, 56, 0, 0, 128, 191, 0, 0, 96, 64, 46, 222, 76, 178, 129, 0, 0, 63, 0, 58, 0, 56, 0, 0, 128, 191, 0, 0, 96, 64, 46, 222, 76, 178, 193, 63, 0, 63, 0, 58, 0, 56, 102, 102, 102, 191, 102, 102, 102, 64, 143, 97, 56, 178, 193, 63, 0, 63, 0, 58, 51, 55, 102, 102, 102, 191, 102, 102, 102, 64, 143, 97, 56, 178, 0, 126, 212, 63, 154, 56, 32, 57, 17, 249, 97, 191, 102, 102, 102, 64, 154, 203, 51, 190, 188, 69, 235, 63, 192, 57, 51, 55, 17, 249, 97, 191, 102, 102, 102, 64, 154, 203, 51, 190, 0, 126, 212, 63, 95, 56, 57, 57, 93, 131, 108, 191, 0, 0, 96, 64, 27, 239, 195, 190, 130, 37, 219, 63, 128, 57, 0, 56, 93, 131, 108, 191, 0, 0, 96, 64, 27, 239, 195, 190, 185, 76, 219, 63, 128, 57, 0, 56, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 185, 76, 219, 63, 128, 57, 51, 55, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 0, 126, 212, 63, 32, 56, 69, 57, 20, 146, 63, 191, 102, 102, 102, 64, 219, 0, 0, 191, 183, 82, 206, 63, 64, 57, 51, 55, 20, 146, 63, 191, 102, 102, 102, 64, 219, 0, 0, 191, 0, 126, 212, 63, 191, 55, 69, 57, 245, 4, 53, 191, 0, 0, 96, 64, 242, 4, 53, 191, 130, 63, 193, 63, 0, 57, 0, 56, 245, 4, 53, 191, 0, 0, 96, 64, 242, 4, 53, 191, 182, 89, 193, 63, 0, 57, 0, 56, 220, 234, 34, 191, 102, 102, 102, 64, 218, 234, 34, 191, 182, 89, 193, 63, 0, 57, 51, 55, 220, 234, 34, 191, 102, 102, 102, 64, 218, 234, 34, 191, 0, 126, 212, 63, 65, 55, 57, 57, 222, 0, 0, 191, 102, 102, 102, 64, 18, 146, 63, 191, 183, 97, 180, 63, 192, 56, 51, 55, 222, 0, 0, 191, 102, 102, 102, 64, 18, 146, 63, 191, 0, 126, 212, 63, 203, 54, 32, 57, 44, 87, 176, 190, 102, 102, 102, 64, 162, 220, 84, 191, 185, 105, 167, 63, 128, 56, 51, 55, 44, 87, 176, 190, 102, 102, 102, 64, 162, 220, 84, 191, 0, 126, 212, 63, 96, 54, 253, 56, 143, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 191, 188, 115, 151, 63, 64, 56, 51, 55, 143, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 191, 0, 126, 212, 63, 5, 54, 207, 56 ), -"array_index_data": PoolByteArray( 2, 0, 10, 0, 5, 0, 2, 0, 7, 0, 10, 0, 7, 0, 14, 0, 10, 0, 7, 0, 11, 0, 14, 0, 11, 0, 18, 0, 14, 0, 11, 0, 15, 0, 18, 0, 15, 0, 22, 0, 18, 0, 15, 0, 19, 0, 22, 0, 19, 0, 26, 0, 22, 0, 19, 0, 23, 0, 26, 0, 23, 0, 30, 0, 26, 0, 23, 0, 27, 0, 30, 0, 27, 0, 34, 0, 30, 0, 27, 0, 31, 0, 34, 0, 31, 0, 38, 0, 34, 0, 31, 0, 35, 0, 38, 0, 35, 0, 42, 0, 38, 0, 35, 0, 39, 0, 42, 0, 39, 0, 46, 0, 42, 0, 39, 0, 43, 0, 46, 0, 43, 0, 50, 0, 46, 0, 43, 0, 47, 0, 50, 0, 47, 0, 54, 0, 50, 0, 47, 0, 51, 0, 54, 0, 51, 0, 58, 0, 54, 0, 51, 0, 55, 0, 58, 0, 55, 0, 62, 0, 58, 0, 55, 0, 59, 0, 62, 0, 59, 0, 66, 0, 62, 0, 59, 0, 63, 0, 66, 0, 63, 0, 70, 0, 66, 0, 63, 0, 67, 0, 70, 0, 67, 0, 73, 0, 70, 0, 67, 0, 72, 0, 73, 0, 72, 0, 77, 0, 73, 0, 72, 0, 76, 0, 77, 0, 76, 0, 81, 0, 77, 0, 76, 0, 80, 0, 81, 0, 80, 0, 85, 0, 81, 0, 80, 0, 84, 0, 85, 0, 84, 0, 89, 0, 85, 0, 84, 0, 88, 0, 89, 0, 88, 0, 93, 0, 89, 0, 88, 0, 92, 0, 93, 0, 92, 0, 97, 0, 93, 0, 92, 0, 96, 0, 97, 0, 96, 0, 101, 0, 97, 0, 96, 0, 100, 0, 101, 0, 100, 0, 105, 0, 101, 0, 100, 0, 104, 0, 105, 0, 104, 0, 109, 0, 105, 0, 104, 0, 108, 0, 109, 0, 108, 0, 113, 0, 109, 0, 108, 0, 112, 0, 113, 0, 112, 0, 117, 0, 113, 0, 112, 0, 116, 0, 117, 0, 116, 0, 121, 0, 117, 0, 116, 0, 120, 0, 121, 0, 120, 0, 125, 0, 121, 0, 120, 0, 124, 0, 125, 0, 13, 0, 4, 0, 9, 0, 4, 0, 126, 0, 130, 0, 126, 0, 118, 0, 122, 0, 118, 0, 110, 0, 114, 0, 110, 0, 102, 0, 106, 0, 102, 0, 94, 0, 98, 0, 94, 0, 86, 0, 90, 0, 86, 0, 78, 0, 82, 0, 78, 0, 69, 0, 74, 0, 69, 0, 61, 0, 65, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 126, 0, 4, 0, 126, 0, 110, 0, 118, 0, 110, 0, 94, 0, 102, 0, 94, 0, 78, 0, 86, 0, 78, 0, 61, 0, 69, 0, 61, 0, 45, 0, 53, 0, 45, 0, 29, 0, 37, 0, 29, 0, 13, 0, 21, 0, 13, 0, 110, 0, 126, 0, 110, 0, 78, 0, 94, 0, 78, 0, 45, 0, 61, 0, 45, 0, 13, 0, 29, 0, 13, 0, 78, 0, 110, 0, 78, 0, 13, 0, 45, 0, 124, 0, 129, 0, 125, 0, 124, 0, 128, 0, 129, 0, 128, 0, 6, 0, 129, 0, 128, 0, 3, 0, 6, 0, 103, 0, 158, 0, 107, 0, 103, 0, 157, 0, 158, 0, 16, 0, 136, 0, 20, 0, 16, 0, 135, 0, 136, 0, 52, 0, 145, 0, 56, 0, 52, 0, 144, 0, 145, 0, 87, 0, 154, 0, 91, 0, 87, 0, 153, 0, 154, 0, 123, 0, 163, 0, 127, 0, 123, 0, 162, 0, 163, 0, 36, 0, 141, 0, 40, 0, 36, 0, 140, 0, 141, 0, 71, 0, 150, 0, 75, 0, 71, 0, 149, 0, 150, 0, 107, 0, 159, 0, 111, 0, 107, 0, 158, 0, 159, 0, 20, 0, 137, 0, 24, 0, 20, 0, 136, 0, 137, 0, 56, 0, 146, 0, 60, 0, 56, 0, 145, 0, 146, 0, 91, 0, 155, 0, 95, 0, 91, 0, 154, 0, 155, 0, 0, 0, 133, 0, 8, 0, 0, 0, 131, 0, 133, 0, 127, 0, 132, 0, 1, 0, 127, 0, 163, 0, 132, 0, 40, 0, 142, 0, 44, 0, 40, 0, 141, 0, 142, 0, 75, 0, 151, 0, 79, 0, 75, 0, 150, 0, 151, 0, 111, 0, 160, 0, 115, 0, 111, 0, 159, 0, 160, 0, 24, 0, 138, 0, 28, 0, 24, 0, 137, 0, 138, 0, 60, 0, 147, 0, 64, 0, 60, 0, 146, 0, 147, 0, 95, 0, 156, 0, 99, 0, 95, 0, 155, 0, 156, 0, 8, 0, 134, 0, 12, 0, 8, 0, 133, 0, 134, 0, 44, 0, 143, 0, 48, 0, 44, 0, 142, 0, 143, 0, 79, 0, 152, 0, 83, 0, 79, 0, 151, 0, 152, 0, 115, 0, 161, 0, 119, 0, 115, 0, 160, 0, 161, 0, 28, 0, 139, 0, 32, 0, 28, 0, 138, 0, 139, 0, 64, 0, 148, 0, 68, 0, 64, 0, 147, 0, 148, 0, 99, 0, 157, 0, 103, 0, 99, 0, 156, 0, 157, 0, 12, 0, 135, 0, 16, 0, 12, 0, 134, 0, 135, 0, 48, 0, 144, 0, 52, 0, 48, 0, 143, 0, 144, 0, 83, 0, 153, 0, 87, 0, 83, 0, 152, 0, 153, 0, 119, 0, 162, 0, 123, 0, 119, 0, 161, 0, 162, 0, 32, 0, 140, 0, 36, 0, 32, 0, 139, 0, 140, 0, 68, 0, 149, 0, 71, 0, 68, 0, 148, 0, 149, 0, 180, 0, 219, 0, 181, 0, 180, 0, 218, 0, 219, 0, 167, 0, 200, 0, 168, 0, 167, 0, 20, 1, 200, 0, 194, 0, 34, 1, 195, 0, 194, 0, 237, 0, 34, 1, 181, 0, 221, 0, 182, 0, 181, 0, 219, 0, 221, 0, 168, 0, 202, 0, 169, 0, 168, 0, 200, 0, 202, 0, 195, 0, 239, 0, 196, 0, 195, 0, 34, 1, 239, 0, 182, 0, 223, 0, 183, 0, 182, 0, 221, 0, 223, 0, 169, 0, 204, 0, 170, 0, 169, 0, 202, 0, 204, 0, 196, 0, 28, 1, 165, 0, 196, 0, 239, 0, 28, 1, 183, 0, 225, 0, 184, 0, 183, 0, 223, 0, 225, 0, 170, 0, 10, 1, 171, 0, 170, 0, 204, 0, 10, 1, 184, 0, 62, 1, 185, 0, 184, 0, 225, 0, 62, 1, 171, 0, 206, 0, 172, 0, 171, 0, 10, 1, 206, 0, 185, 0, 227, 0, 186, 0, 185, 0, 62, 1, 227, 0, 172, 0, 4, 1, 173, 0, 172, 0, 206, 0, 4, 1, 186, 0, 56, 1, 187, 0, 186, 0, 227, 0, 56, 1, 173, 0, 208, 0, 174, 0, 173, 0, 4, 1, 208, 0, 187, 0, 229, 0, 188, 0, 187, 0, 56, 1, 229, 0, 174, 0, 254, 0, 175, 0, 174, 0, 208, 0, 254, 0, 188, 0, 50, 1, 189, 0, 188, 0, 229, 0, 50, 1, 175, 0, 210, 0, 176, 0, 175, 0, 254, 0, 210, 0, 189, 0, 231, 0, 190, 0, 189, 0, 50, 1, 231, 0, 176, 0, 212, 0, 177, 0, 176, 0, 210, 0, 212, 0, 190, 0, 44, 1, 191, 0, 190, 0, 231, 0, 44, 1, 177, 0, 214, 0, 178, 0, 177, 0, 212, 0, 214, 0, 191, 0, 233, 0, 192, 0, 191, 0, 44, 1, 233, 0, 178, 0, 216, 0, 179, 0, 178, 0, 214, 0, 216, 0, 164, 0, 198, 0, 166, 0, 164, 0, 27, 1, 198, 0, 192, 0, 235, 0, 193, 0, 192, 0, 233, 0, 235, 0, 179, 0, 218, 0, 180, 0, 179, 0, 216, 0, 218, 0, 166, 0, 20, 1, 167, 0, 166, 0, 198, 0, 20, 1, 193, 0, 237, 0, 194, 0, 193, 0, 235, 0, 237, 0, 220, 0, 244, 0, 242, 0, 220, 0, 217, 0, 244, 0, 217, 0, 246, 0, 244, 0, 217, 0, 215, 0, 246, 0, 215, 0, 248, 0, 246, 0, 215, 0, 213, 0, 248, 0, 213, 0, 250, 0, 248, 0, 213, 0, 211, 0, 250, 0, 211, 0, 252, 0, 250, 0, 211, 0, 209, 0, 252, 0, 209, 0, 0, 1, 252, 0, 209, 0, 253, 0, 0, 1, 253, 0, 2, 1, 0, 1, 253, 0, 207, 0, 2, 1, 207, 0, 6, 1, 2, 1, 207, 0, 3, 1, 6, 1, 3, 1, 8, 1, 6, 1, 3, 1, 205, 0, 8, 1, 205, 0, 12, 1, 8, 1, 205, 0, 9, 1, 12, 1, 9, 1, 14, 1, 12, 1, 9, 1, 203, 0, 14, 1, 203, 0, 16, 1, 14, 1, 203, 0, 201, 0, 16, 1, 201, 0, 18, 1, 16, 1, 201, 0, 199, 0, 18, 1, 199, 0, 22, 1, 18, 1, 199, 0, 19, 1, 22, 1, 19, 1, 24, 1, 22, 1, 19, 1, 197, 0, 24, 1, 197, 0, 30, 1, 24, 1, 197, 0, 25, 1, 30, 1, 26, 1, 32, 1, 31, 1, 26, 1, 240, 0, 32, 1, 240, 0, 36, 1, 32, 1, 240, 0, 35, 1, 36, 1, 35, 1, 38, 1, 36, 1, 35, 1, 238, 0, 38, 1, 238, 0, 40, 1, 38, 1, 238, 0, 236, 0, 40, 1, 236, 0, 42, 1, 40, 1, 236, 0, 234, 0, 42, 1, 234, 0, 46, 1, 42, 1, 234, 0, 45, 1, 46, 1, 45, 1, 48, 1, 46, 1, 45, 1, 232, 0, 48, 1, 232, 0, 52, 1, 48, 1, 232, 0, 51, 1, 52, 1, 51, 1, 54, 1, 52, 1, 51, 1, 230, 0, 54, 1, 230, 0, 58, 1, 54, 1, 230, 0, 57, 1, 58, 1, 57, 1, 60, 1, 58, 1, 57, 1, 228, 0, 60, 1, 228, 0, 64, 1, 60, 1, 228, 0, 63, 1, 64, 1, 63, 1, 66, 1, 64, 1, 63, 1, 226, 0, 66, 1, 226, 0, 68, 1, 66, 1, 226, 0, 224, 0, 68, 1, 245, 0, 241, 0, 243, 0, 241, 0, 69, 1, 71, 1, 69, 1, 65, 1, 67, 1, 65, 1, 59, 1, 61, 1, 59, 1, 53, 1, 55, 1, 53, 1, 47, 1, 49, 1, 47, 1, 41, 1, 43, 1, 41, 1, 37, 1, 39, 1, 37, 1, 29, 1, 33, 1, 29, 1, 21, 1, 23, 1, 21, 1, 15, 1, 17, 1, 15, 1, 11, 1, 13, 1, 11, 1, 5, 1, 7, 1, 5, 1, 255, 0, 1, 1, 255, 0, 249, 0, 251, 0, 249, 0, 245, 0, 247, 0, 245, 0, 69, 1, 241, 0, 69, 1, 59, 1, 65, 1, 59, 1, 47, 1, 53, 1, 47, 1, 37, 1, 41, 1, 37, 1, 21, 1, 29, 1, 21, 1, 11, 1, 15, 1, 11, 1, 255, 0, 5, 1, 255, 0, 245, 0, 249, 0, 245, 0, 59, 1, 69, 1, 59, 1, 37, 1, 47, 1, 37, 1, 11, 1, 21, 1, 11, 1, 245, 0, 255, 0, 245, 0, 37, 1, 59, 1, 37, 1, 245, 0, 11, 1, 224, 0, 70, 1, 68, 1, 224, 0, 222, 0, 70, 1, 222, 0, 242, 0, 70, 1, 222, 0, 220, 0, 242, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-1, 2.9, -1, 2, 0.7, 2.00001), +"attribute_data": PackedByteArray(0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 100, 180, 192, 62, 251, 248, 25, 63, 0, 0, 0, 0, 214, 204, 12, 63, 0, 0, 128, 63, 214, 204, 12, 63, 0, 0, 0, 61, 8, 0, 0, 63, 0, 0, 0, 61, 8, 0, 0, 63, 109, 201, 183, 62, 160, 76, 19, 63, 0, 0, 0, 61, 214, 204, 12, 63, 4, 0, 128, 61, 8, 0, 0, 63, 4, 0, 128, 61, 8, 0, 0, 63, 232, 164, 177, 62, 108, 226, 11, 63, 4, 0, 128, 61, 214, 204, 12, 63, 0, 0, 192, 61, 8, 0, 0, 63, 0, 0, 192, 61, 8, 0, 0, 63, 62, 131, 174, 62, 79, 3, 4, 63, 0, 0, 192, 61, 214, 204, 12, 63, 0, 0, 0, 62, 10, 0, 0, 63, 0, 0, 0, 62, 10, 0, 0, 63, 61, 131, 174, 62, 98, 249, 247, 62, 0, 0, 0, 62, 214, 204, 12, 63, 2, 0, 32, 62, 10, 0, 0, 63, 2, 0, 32, 62, 10, 0, 0, 63, 228, 164, 177, 62, 44, 59, 232, 62, 2, 0, 32, 62, 214, 204, 12, 63, 0, 0, 64, 62, 10, 0, 0, 63, 0, 0, 64, 62, 10, 0, 0, 63, 112, 201, 183, 62, 180, 102, 217, 62, 0, 0, 64, 62, 214, 204, 12, 63, 0, 0, 96, 62, 10, 0, 0, 63, 0, 0, 96, 62, 10, 0, 0, 63, 94, 180, 192, 62, 12, 14, 204, 62, 0, 0, 96, 62, 214, 204, 12, 63, 0, 0, 128, 62, 10, 0, 0, 63, 0, 0, 128, 62, 10, 0, 0, 63, 12, 14, 204, 62, 96, 180, 192, 62, 0, 0, 128, 62, 214, 204, 12, 63, 0, 0, 144, 62, 10, 0, 0, 63, 0, 0, 144, 62, 10, 0, 0, 63, 186, 102, 217, 62, 110, 201, 183, 62, 0, 0, 144, 62, 216, 204, 12, 63, 0, 0, 160, 62, 10, 0, 0, 63, 0, 0, 160, 62, 10, 0, 0, 63, 34, 59, 232, 62, 232, 164, 177, 62, 0, 0, 160, 62, 216, 204, 12, 63, 0, 0, 176, 62, 10, 0, 0, 63, 0, 0, 176, 62, 10, 0, 0, 63, 91, 249, 247, 62, 62, 131, 174, 62, 0, 0, 176, 62, 216, 204, 12, 63, 0, 0, 192, 62, 10, 0, 0, 63, 0, 0, 192, 62, 10, 0, 0, 63, 77, 3, 4, 63, 62, 131, 174, 62, 0, 0, 192, 62, 216, 204, 12, 63, 0, 0, 208, 62, 12, 0, 0, 63, 0, 0, 208, 62, 12, 0, 0, 63, 103, 226, 11, 63, 230, 164, 177, 62, 0, 0, 208, 62, 216, 204, 12, 63, 0, 0, 224, 62, 12, 0, 0, 63, 0, 0, 224, 62, 12, 0, 0, 63, 162, 76, 19, 63, 112, 201, 183, 62, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 240, 62, 12, 0, 0, 63, 0, 0, 240, 62, 12, 0, 0, 63, 245, 248, 25, 63, 94, 180, 192, 62, 0, 0, 240, 62, 216, 204, 12, 63, 0, 0, 0, 63, 12, 0, 0, 63, 0, 0, 0, 63, 12, 0, 0, 63, 204, 165, 31, 63, 12, 14, 204, 62, 0, 0, 0, 63, 216, 204, 12, 63, 0, 0, 8, 63, 12, 0, 0, 63, 0, 0, 8, 63, 12, 0, 0, 63, 0, 0, 8, 63, 216, 204, 12, 63, 68, 27, 36, 63, 176, 102, 217, 62, 0, 0, 16, 63, 12, 0, 0, 63, 0, 0, 16, 63, 12, 0, 0, 63, 0, 0, 16, 63, 216, 204, 12, 63, 138, 45, 39, 63, 38, 59, 232, 62, 0, 0, 24, 63, 12, 0, 0, 63, 0, 0, 24, 63, 12, 0, 0, 63, 0, 0, 24, 63, 216, 204, 12, 63, 96, 190, 40, 63, 104, 249, 247, 62, 0, 0, 32, 63, 10, 0, 0, 63, 0, 0, 32, 63, 10, 0, 0, 63, 0, 0, 32, 63, 216, 204, 12, 63, 96, 190, 40, 63, 78, 3, 4, 63, 255, 255, 39, 63, 10, 0, 0, 63, 255, 255, 39, 63, 10, 0, 0, 63, 0, 0, 40, 63, 216, 204, 12, 63, 141, 45, 39, 63, 102, 226, 11, 63, 0, 0, 48, 63, 10, 0, 0, 63, 0, 0, 48, 63, 10, 0, 0, 63, 0, 0, 48, 63, 216, 204, 12, 63, 71, 27, 36, 63, 163, 76, 19, 63, 0, 0, 56, 63, 10, 0, 0, 63, 0, 0, 56, 63, 10, 0, 0, 63, 0, 0, 56, 63, 216, 204, 12, 63, 204, 165, 31, 63, 251, 248, 25, 63, 0, 0, 64, 63, 10, 0, 0, 63, 0, 0, 64, 63, 10, 0, 0, 63, 0, 0, 64, 63, 214, 204, 12, 63, 246, 248, 25, 63, 208, 165, 31, 63, 0, 0, 72, 63, 10, 0, 0, 63, 0, 0, 72, 63, 10, 0, 0, 63, 0, 0, 72, 63, 214, 204, 12, 63, 157, 76, 19, 63, 74, 27, 36, 63, 0, 0, 80, 63, 10, 0, 0, 63, 0, 0, 80, 63, 10, 0, 0, 63, 0, 0, 80, 63, 214, 204, 12, 63, 107, 226, 11, 63, 140, 45, 39, 63, 255, 255, 87, 63, 10, 0, 0, 63, 255, 255, 87, 63, 10, 0, 0, 63, 255, 255, 87, 63, 214, 204, 12, 63, 77, 3, 4, 63, 96, 190, 40, 63, 255, 255, 95, 63, 10, 0, 0, 63, 255, 255, 95, 63, 10, 0, 0, 63, 0, 0, 96, 63, 214, 204, 12, 63, 95, 249, 247, 62, 97, 190, 40, 63, 0, 0, 104, 63, 8, 0, 0, 63, 0, 0, 104, 63, 8, 0, 0, 63, 0, 0, 104, 63, 214, 204, 12, 63, 27, 59, 232, 62, 138, 45, 39, 63, 0, 0, 112, 63, 8, 0, 0, 63, 0, 0, 112, 63, 8, 0, 0, 63, 0, 0, 112, 63, 214, 204, 12, 63, 182, 102, 217, 62, 72, 27, 36, 63, 0, 0, 120, 63, 8, 0, 0, 63, 0, 0, 120, 63, 8, 0, 0, 63, 0, 0, 120, 63, 214, 204, 12, 63, 7, 14, 204, 62, 205, 165, 31, 63, 0, 0, 0, 0, 120, 102, 230, 62, 0, 0, 128, 63, 120, 102, 230, 62, 0, 0, 0, 61, 120, 102, 230, 62, 4, 0, 128, 61, 120, 102, 230, 62, 0, 0, 192, 61, 120, 102, 230, 62, 0, 0, 0, 62, 124, 102, 230, 62, 2, 0, 32, 62, 124, 102, 230, 62, 0, 0, 64, 62, 124, 102, 230, 62, 0, 0, 96, 62, 124, 102, 230, 62, 0, 0, 128, 62, 124, 102, 230, 62, 0, 0, 144, 62, 124, 102, 230, 62, 0, 0, 160, 62, 124, 102, 230, 62, 0, 0, 176, 62, 124, 102, 230, 62, 1, 0, 192, 62, 124, 102, 230, 62, 1, 0, 208, 62, 128, 102, 230, 62, 0, 0, 224, 62, 128, 102, 230, 62, 0, 0, 240, 62, 128, 102, 230, 62, 0, 0, 0, 63, 128, 102, 230, 62, 0, 0, 8, 63, 128, 102, 230, 62, 0, 0, 16, 63, 128, 102, 230, 62, 0, 0, 24, 63, 128, 102, 230, 62, 0, 0, 32, 63, 124, 102, 230, 62, 255, 255, 39, 63, 124, 102, 230, 62, 0, 0, 48, 63, 124, 102, 230, 62, 0, 0, 56, 63, 124, 102, 230, 62, 0, 0, 64, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 0, 0, 80, 63, 124, 102, 230, 62, 255, 255, 87, 63, 124, 102, 230, 62, 255, 255, 95, 63, 124, 102, 230, 62, 0, 0, 104, 63, 120, 102, 230, 62, 0, 0, 112, 63, 120, 102, 230, 62, 0, 0, 120, 63, 120, 102, 230, 62, 0, 0, 0, 0, 212, 204, 12, 63, 0, 0, 128, 63, 212, 204, 12, 63, 0, 0, 0, 61, 212, 204, 12, 63, 4, 0, 128, 61, 212, 204, 12, 63, 4, 0, 192, 61, 212, 204, 12, 63, 0, 0, 0, 62, 214, 204, 12, 63, 2, 0, 32, 62, 214, 204, 12, 63, 0, 0, 64, 62, 214, 204, 12, 63, 0, 0, 96, 62, 214, 204, 12, 63, 0, 0, 128, 62, 214, 204, 12, 63, 0, 0, 144, 62, 214, 204, 12, 63, 0, 0, 160, 62, 214, 204, 12, 63, 0, 0, 176, 62, 214, 204, 12, 63, 0, 0, 192, 62, 214, 204, 12, 63, 1, 0, 208, 62, 216, 204, 12, 63, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 240, 62, 216, 204, 12, 63, 0, 0, 0, 63, 216, 204, 12, 63, 0, 0, 8, 63, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 24, 63, 216, 204, 12, 63, 0, 0, 32, 63, 214, 204, 12, 63, 255, 255, 39, 63, 214, 204, 12, 63, 255, 255, 47, 63, 214, 204, 12, 63, 0, 0, 56, 63, 214, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 0, 0, 72, 63, 214, 204, 12, 63, 0, 0, 80, 63, 214, 204, 12, 63, 255, 255, 87, 63, 214, 204, 12, 63, 255, 255, 95, 63, 214, 204, 12, 63, 0, 0, 104, 63, 212, 204, 12, 63, 0, 0, 112, 63, 212, 204, 12, 63, 0, 0, 120, 63, 212, 204, 12, 63, 0, 0, 0, 61, 8, 0, 0, 63, 0, 0, 0, 61, 8, 0, 0, 63, 4, 0, 192, 61, 8, 0, 0, 63, 4, 0, 192, 61, 8, 0, 0, 63, 0, 0, 0, 62, 10, 0, 0, 63, 0, 0, 0, 62, 10, 0, 0, 63, 2, 0, 32, 62, 10, 0, 0, 63, 2, 0, 32, 62, 10, 0, 0, 63, 0, 0, 96, 62, 10, 0, 0, 63, 0, 0, 96, 62, 10, 0, 0, 63, 0, 0, 144, 62, 10, 0, 0, 63, 0, 0, 144, 62, 10, 0, 0, 63, 0, 0, 176, 62, 10, 0, 0, 63, 0, 0, 176, 62, 10, 0, 0, 63, 0, 0, 192, 62, 10, 0, 0, 63, 0, 0, 192, 62, 10, 0, 0, 63, 1, 0, 208, 62, 12, 0, 0, 63, 1, 0, 208, 62, 12, 0, 0, 63, 0, 0, 224, 62, 12, 0, 0, 63, 0, 0, 224, 62, 12, 0, 0, 63, 0, 0, 240, 62, 12, 0, 0, 63, 0, 0, 240, 62, 12, 0, 0, 63, 0, 0, 0, 63, 12, 0, 0, 63, 0, 0, 0, 63, 12, 0, 0, 63, 0, 0, 8, 63, 12, 0, 0, 63, 0, 0, 8, 63, 12, 0, 0, 63, 0, 0, 16, 63, 12, 0, 0, 63, 0, 0, 16, 63, 12, 0, 0, 63, 0, 0, 24, 63, 12, 0, 0, 63, 0, 0, 24, 63, 12, 0, 0, 63, 255, 255, 39, 63, 10, 0, 0, 63, 255, 255, 39, 63, 10, 0, 0, 63, 0, 0, 56, 63, 10, 0, 0, 63, 0, 0, 56, 63, 10, 0, 0, 63, 0, 0, 72, 63, 10, 0, 0, 63, 0, 0, 72, 63, 10, 0, 0, 63, 255, 255, 87, 63, 10, 0, 0, 63, 255, 255, 87, 63, 10, 0, 0, 63, 255, 255, 95, 63, 10, 0, 0, 63, 255, 255, 95, 63, 10, 0, 0, 63, 0, 0, 104, 63, 8, 0, 0, 63, 0, 0, 104, 63, 8, 0, 0, 63, 0, 0, 120, 63, 8, 0, 0, 63, 0, 0, 120, 63, 8, 0, 0, 63, 110, 201, 183, 62, 163, 76, 19, 63, 0, 0, 0, 63, 120, 102, 230, 62, 230, 164, 177, 62, 107, 226, 11, 63, 0, 0, 240, 62, 120, 102, 230, 62, 62, 131, 174, 62, 76, 3, 4, 63, 0, 0, 224, 62, 120, 102, 230, 62, 61, 131, 174, 62, 104, 249, 247, 62, 255, 255, 207, 62, 120, 102, 230, 62, 234, 164, 177, 62, 32, 59, 232, 62, 0, 0, 192, 62, 120, 102, 230, 62, 114, 201, 183, 62, 178, 102, 217, 62, 0, 0, 176, 62, 120, 102, 230, 62, 0, 0, 160, 62, 8, 0, 0, 63, 0, 0, 160, 62, 8, 0, 0, 63, 102, 180, 192, 62, 8, 14, 204, 62, 0, 0, 160, 62, 120, 102, 230, 62, 4, 14, 204, 62, 104, 180, 192, 62, 0, 0, 144, 62, 120, 102, 230, 62, 254, 255, 127, 62, 8, 0, 0, 63, 254, 255, 127, 62, 8, 0, 0, 63, 186, 102, 217, 62, 112, 201, 183, 62, 254, 255, 127, 62, 120, 102, 230, 62, 37, 59, 232, 62, 232, 164, 177, 62, 0, 0, 96, 62, 120, 102, 230, 62, 0, 0, 64, 62, 8, 0, 0, 63, 0, 0, 64, 62, 8, 0, 0, 63, 101, 249, 247, 62, 64, 131, 174, 62, 0, 0, 64, 62, 120, 102, 230, 62, 75, 3, 4, 63, 62, 131, 174, 62, 2, 0, 32, 62, 120, 102, 230, 62, 109, 226, 11, 63, 234, 164, 177, 62, 0, 0, 0, 62, 120, 102, 230, 62, 156, 76, 19, 63, 108, 201, 183, 62, 0, 0, 192, 61, 120, 102, 230, 62, 4, 0, 128, 61, 8, 0, 0, 63, 4, 0, 128, 61, 8, 0, 0, 63, 250, 248, 25, 63, 104, 180, 192, 62, 4, 0, 128, 61, 120, 102, 230, 62, 201, 165, 31, 63, 4, 14, 204, 62, 0, 0, 0, 61, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 71, 27, 36, 63, 188, 102, 217, 62, 0, 0, 0, 0, 120, 102, 230, 62, 0, 0, 128, 63, 120, 102, 230, 62, 0, 0, 120, 63, 120, 102, 230, 62, 136, 45, 39, 63, 28, 59, 232, 62, 0, 0, 112, 63, 8, 0, 0, 63, 0, 0, 112, 63, 8, 0, 0, 63, 0, 0, 112, 63, 120, 102, 230, 62, 96, 190, 40, 63, 106, 249, 247, 62, 0, 0, 104, 63, 120, 102, 230, 62, 96, 190, 40, 63, 81, 3, 4, 63, 0, 0, 96, 63, 120, 102, 230, 62, 138, 45, 39, 63, 111, 226, 11, 63, 1, 0, 88, 63, 120, 102, 230, 62, 71, 27, 36, 63, 163, 76, 19, 63, 0, 0, 80, 63, 8, 0, 0, 63, 0, 0, 80, 63, 8, 0, 0, 63, 0, 0, 80, 63, 120, 102, 230, 62, 204, 165, 31, 63, 252, 248, 25, 63, 0, 0, 72, 63, 120, 102, 230, 62, 248, 248, 25, 63, 207, 165, 31, 63, 0, 0, 64, 63, 8, 0, 0, 63, 0, 0, 64, 63, 8, 0, 0, 63, 0, 0, 64, 63, 120, 102, 230, 62, 157, 76, 19, 63, 75, 27, 36, 63, 0, 0, 56, 63, 120, 102, 230, 62, 103, 226, 11, 63, 141, 45, 39, 63, 0, 0, 48, 63, 8, 0, 0, 63, 0, 0, 48, 63, 8, 0, 0, 63, 0, 0, 48, 63, 120, 102, 230, 62, 75, 3, 4, 63, 96, 190, 40, 63, 0, 0, 40, 63, 120, 102, 230, 62, 98, 249, 247, 62, 97, 190, 40, 63, 0, 0, 32, 63, 8, 0, 0, 63, 0, 0, 32, 63, 8, 0, 0, 63, 0, 0, 32, 63, 120, 102, 230, 62, 28, 59, 232, 62, 139, 45, 39, 63, 0, 0, 24, 63, 120, 102, 230, 62, 183, 102, 217, 62, 72, 27, 36, 63, 0, 0, 16, 63, 120, 102, 230, 62, 7, 14, 204, 62, 205, 165, 31, 63, 0, 0, 8, 63, 120, 102, 230, 62, 98, 180, 192, 62, 250, 248, 25, 63, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 128, 63, 214, 204, 12, 63, 4, 0, 128, 61, 214, 204, 12, 63, 4, 0, 128, 61, 214, 204, 12, 63, 0, 0, 48, 63, 216, 204, 12, 63, 0, 0, 48, 63, 216, 204, 12, 63, 0, 0, 32, 63, 124, 102, 230, 62, 0, 0, 32, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 0, 0, 0, 0, 212, 204, 12, 63, 0, 0, 128, 63, 212, 204, 12, 63, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 0, 0, 0, 63, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 0, 0, 120, 102, 230, 62, 0, 0, 128, 63, 120, 102, 230, 62, 0, 0, 80, 63, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 4, 0, 128, 61, 214, 204, 12, 63, 4, 0, 128, 61, 214, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 48, 63, 216, 204, 12, 63, 0, 0, 48, 63, 216, 204, 12, 63, 0, 0, 112, 63, 214, 204, 12, 63, 0, 0, 64, 62, 124, 102, 230, 62, 0, 0, 128, 62, 124, 102, 230, 62, 0, 0, 0, 63, 128, 102, 230, 62, 0, 0, 0, 63, 128, 102, 230, 62, 0, 0, 32, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 0, 0, 104, 63, 120, 102, 230, 62, 0, 0, 104, 63, 120, 102, 230, 62, 4, 0, 128, 61, 212, 204, 12, 63, 2, 0, 32, 62, 214, 204, 12, 63, 2, 0, 32, 62, 214, 204, 12, 63, 0, 0, 160, 62, 214, 204, 12, 63, 0, 0, 160, 62, 214, 204, 12, 63, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 32, 63, 214, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 255, 255, 95, 63, 214, 204, 12, 63, 0, 0, 120, 63, 212, 204, 12, 63, 0, 0, 120, 63, 212, 204, 12, 63, 0, 0, 0, 63, 120, 102, 230, 62, 0, 0, 0, 63, 120, 102, 230, 62, 0, 0, 64, 62, 120, 102, 230, 62, 0, 0, 64, 62, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 0, 0, 120, 102, 230, 62, 0, 0, 128, 63, 120, 102, 230, 62, 0, 0, 80, 63, 120, 102, 230, 62, 0, 0, 80, 63, 120, 102, 230, 62, 0, 0, 48, 63, 120, 102, 230, 62, 0, 0, 48, 63, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 4, 0, 128, 61, 214, 204, 12, 63, 0, 0, 160, 62, 216, 204, 12, 63, 0, 0, 160, 62, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 80, 63, 214, 204, 12, 63, 0, 0, 0, 61, 120, 102, 230, 62, 4, 0, 128, 61, 120, 102, 230, 62, 0, 0, 192, 61, 120, 102, 230, 62, 2, 0, 32, 62, 124, 102, 230, 62, 2, 0, 32, 62, 124, 102, 230, 62, 2, 0, 32, 62, 124, 102, 230, 62, 0, 0, 64, 62, 124, 102, 230, 62, 0, 0, 96, 62, 124, 102, 230, 62, 0, 0, 128, 62, 124, 102, 230, 62, 0, 0, 160, 62, 124, 102, 230, 62, 0, 0, 176, 62, 124, 102, 230, 62, 1, 0, 192, 62, 124, 102, 230, 62, 0, 0, 224, 62, 128, 102, 230, 62, 0, 0, 224, 62, 128, 102, 230, 62, 0, 0, 224, 62, 128, 102, 230, 62, 0, 0, 240, 62, 128, 102, 230, 62, 0, 0, 0, 63, 128, 102, 230, 62, 0, 0, 8, 63, 128, 102, 230, 62, 0, 0, 16, 63, 128, 102, 230, 62, 0, 0, 32, 63, 124, 102, 230, 62, 255, 255, 39, 63, 124, 102, 230, 62, 0, 0, 56, 63, 124, 102, 230, 62, 0, 0, 64, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 255, 255, 87, 63, 124, 102, 230, 62, 255, 255, 87, 63, 124, 102, 230, 62, 255, 255, 95, 63, 124, 102, 230, 62, 0, 0, 104, 63, 120, 102, 230, 62, 0, 0, 0, 61, 212, 204, 12, 63, 4, 0, 128, 61, 212, 204, 12, 63, 0, 0, 0, 62, 214, 204, 12, 63, 0, 0, 0, 62, 214, 204, 12, 63, 2, 0, 32, 62, 214, 204, 12, 63, 0, 0, 64, 62, 214, 204, 12, 63, 0, 0, 128, 62, 214, 204, 12, 63, 0, 0, 160, 62, 214, 204, 12, 63, 0, 0, 176, 62, 214, 204, 12, 63, 1, 0, 208, 62, 216, 204, 12, 63, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 24, 63, 216, 204, 12, 63, 0, 0, 32, 63, 214, 204, 12, 63, 255, 255, 39, 63, 214, 204, 12, 63, 0, 0, 56, 63, 214, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 0, 0, 72, 63, 214, 204, 12, 63, 255, 255, 87, 63, 214, 204, 12, 63, 255, 255, 95, 63, 214, 204, 12, 63, 0, 0, 112, 63, 212, 204, 12, 63, 0, 0, 0, 63, 120, 102, 230, 62, 0, 0, 0, 63, 120, 102, 230, 62, 0, 0, 64, 62, 120, 102, 230, 62, 0, 0, 64, 62, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 48, 63, 120, 102, 230, 62, 0, 0, 48, 63, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63, 0, 0, 128, 62, 214, 204, 12, 63, 0, 0, 32, 63, 216, 204, 12, 63, 0, 0, 0, 61, 120, 102, 230, 62, 4, 0, 128, 61, 120, 102, 230, 62, 0, 0, 192, 61, 120, 102, 230, 62, 0, 0, 0, 62, 124, 102, 230, 62, 2, 0, 32, 62, 124, 102, 230, 62, 0, 0, 64, 62, 124, 102, 230, 62, 0, 0, 96, 62, 124, 102, 230, 62, 0, 0, 128, 62, 124, 102, 230, 62, 0, 0, 144, 62, 124, 102, 230, 62, 0, 0, 160, 62, 124, 102, 230, 62, 0, 0, 176, 62, 124, 102, 230, 62, 1, 0, 192, 62, 124, 102, 230, 62, 1, 0, 208, 62, 128, 102, 230, 62, 0, 0, 224, 62, 128, 102, 230, 62, 0, 0, 240, 62, 128, 102, 230, 62, 0, 0, 0, 63, 128, 102, 230, 62, 0, 0, 8, 63, 128, 102, 230, 62, 0, 0, 16, 63, 128, 102, 230, 62, 0, 0, 24, 63, 128, 102, 230, 62, 0, 0, 32, 63, 124, 102, 230, 62, 255, 255, 39, 63, 124, 102, 230, 62, 0, 0, 48, 63, 124, 102, 230, 62, 0, 0, 56, 63, 124, 102, 230, 62, 0, 0, 64, 63, 124, 102, 230, 62, 0, 0, 72, 63, 124, 102, 230, 62, 0, 0, 80, 63, 124, 102, 230, 62, 255, 255, 87, 63, 124, 102, 230, 62, 255, 255, 95, 63, 124, 102, 230, 62, 0, 0, 104, 63, 120, 102, 230, 62, 0, 0, 112, 63, 120, 102, 230, 62, 0, 0, 0, 61, 212, 204, 12, 63, 4, 0, 128, 61, 212, 204, 12, 63, 4, 0, 192, 61, 212, 204, 12, 63, 0, 0, 0, 62, 214, 204, 12, 63, 2, 0, 32, 62, 214, 204, 12, 63, 0, 0, 64, 62, 214, 204, 12, 63, 0, 0, 96, 62, 214, 204, 12, 63, 0, 0, 128, 62, 214, 204, 12, 63, 0, 0, 144, 62, 214, 204, 12, 63, 0, 0, 160, 62, 214, 204, 12, 63, 0, 0, 176, 62, 214, 204, 12, 63, 0, 0, 192, 62, 214, 204, 12, 63, 1, 0, 208, 62, 216, 204, 12, 63, 0, 0, 224, 62, 216, 204, 12, 63, 0, 0, 240, 62, 216, 204, 12, 63, 0, 0, 0, 63, 216, 204, 12, 63, 0, 0, 8, 63, 216, 204, 12, 63, 0, 0, 16, 63, 216, 204, 12, 63, 0, 0, 24, 63, 216, 204, 12, 63, 0, 0, 32, 63, 214, 204, 12, 63, 255, 255, 39, 63, 214, 204, 12, 63, 255, 255, 47, 63, 214, 204, 12, 63, 0, 0, 56, 63, 214, 204, 12, 63, 0, 0, 64, 63, 214, 204, 12, 63, 0, 0, 72, 63, 214, 204, 12, 63, 0, 0, 80, 63, 214, 204, 12, 63, 255, 255, 87, 63, 214, 204, 12, 63, 255, 255, 95, 63, 214, 204, 12, 63, 0, 0, 104, 63, 212, 204, 12, 63, 0, 0, 112, 63, 212, 204, 12, 63, 0, 0, 120, 63, 212, 204, 12, 63, 0, 0, 192, 62, 120, 102, 230, 62, 0, 0, 64, 62, 120, 102, 230, 62, 0, 0, 0, 0, 8, 0, 0, 63, 0, 0, 128, 63, 8, 0, 0, 63), +"format": 4119, "index_count": 948, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 328 -} -surfaces/1 = { -"aabb": AABB( -1, 3.1, -1, 2, 0.3, 2.00001 ), -"array_data": PoolByteArray( 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 0, 0, 126, 63, 0, 0, 255, 59, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 0, 0, 127, 63, 0, 60, 255, 59, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 21, 0, 126, 52, 0, 40, 255, 59, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 37, 0, 127, 44, 0, 44, 255, 59, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 50, 0, 126, 88, 0, 46, 255, 59, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 63, 0, 127, 95, 0, 48, 0, 60, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 76, 0, 127, 25, 255, 48, 0, 60, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 89, 0, 127, 18, 0, 50, 0, 60, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 105, 0, 127, 10, 0, 51, 0, 60, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 126, 0, 129, 1, 0, 52, 0, 60, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 126, 21, 129, 116, 128, 52, 0, 60, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 126, 37, 129, 108, 0, 53, 0, 60, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 126, 50, 129, 101, 128, 53, 0, 60, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 126, 193, 129, 31, 0, 54, 0, 60, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 126, 180, 130, 38, 128, 54, 0, 60, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 126, 167, 129, 44, 0, 55, 0, 60, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 126, 151, 129, 52, 128, 55, 0, 60, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 129, 130, 130, 63, 0, 56, 0, 60, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 130, 151, 151, 63, 64, 56, 0, 60, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 130, 167, 167, 63, 128, 56, 0, 60, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 130, 180, 180, 63, 192, 56, 0, 60, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 130, 193, 193, 63, 0, 57, 0, 60, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 130, 206, 206, 63, 64, 57, 0, 60, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 130, 219, 219, 63, 128, 57, 0, 60, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 130, 235, 235, 63, 192, 57, 0, 60, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 130, 0, 0, 63, 0, 58, 0, 60, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 151, 0, 21, 63, 64, 58, 0, 60, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 167, 0, 37, 63, 128, 58, 0, 60, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 180, 0, 50, 63, 192, 58, 0, 60, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 193, 0, 63, 63, 0, 59, 0, 60, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 206, 0, 76, 63, 64, 59, 255, 59, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 219, 0, 89, 63, 128, 59, 255, 59, 192, 197, 71, 190, 103, 102, 70, 64, 190, 20, 123, 63, 235, 0, 105, 63, 192, 59, 255, 59, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 0, 0, 126, 63, 0, 0, 0, 0, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 0, 0, 127, 63, 0, 60, 0, 0, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 21, 0, 126, 52, 0, 40, 0, 0, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 37, 0, 126, 44, 0, 44, 0, 0, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 50, 0, 126, 88, 0, 46, 0, 0, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 63, 0, 126, 95, 0, 48, 0, 0, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 76, 0, 127, 25, 0, 49, 0, 0, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 89, 0, 127, 108, 0, 50, 0, 0, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 105, 0, 127, 116, 0, 51, 0, 0, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 126, 0, 129, 126, 0, 52, 0, 0, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 126, 235, 129, 10, 128, 52, 0, 0, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 126, 37, 129, 108, 0, 53, 0, 0, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 127, 206, 129, 25, 128, 53, 0, 0, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 127, 193, 130, 95, 0, 54, 0, 0, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 127, 76, 129, 88, 128, 54, 0, 0, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 127, 89, 129, 82, 0, 55, 0, 0, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 126, 105, 129, 74, 128, 55, 0, 0, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 129, 130, 129, 63, 0, 56, 0, 0, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 130, 151, 151, 63, 64, 56, 0, 0, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 130, 167, 167, 63, 128, 56, 0, 0, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 129, 180, 180, 63, 192, 56, 0, 0, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 130, 63, 193, 63, 0, 57, 0, 0, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 130, 50, 206, 63, 63, 57, 0, 0, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 130, 37, 219, 63, 128, 57, 0, 0, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 130, 21, 235, 63, 192, 57, 0, 0, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 129, 0, 0, 63, 0, 58, 0, 0, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 151, 0, 21, 63, 64, 58, 0, 0, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 167, 0, 37, 63, 128, 58, 0, 0, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 180, 0, 50, 63, 191, 58, 0, 0, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 193, 0, 63, 63, 255, 58, 0, 0, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 206, 0, 76, 63, 64, 59, 0, 0, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 219, 0, 89, 63, 128, 59, 0, 0, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 235, 0, 105, 63, 192, 59, 0, 0 ), -"array_index_data": PoolByteArray( 13, 0, 47, 0, 14, 0, 13, 0, 46, 0, 47, 0, 27, 0, 61, 0, 28, 0, 27, 0, 60, 0, 61, 0, 14, 0, 48, 0, 15, 0, 14, 0, 47, 0, 48, 0, 0, 0, 35, 0, 2, 0, 0, 0, 33, 0, 35, 0, 28, 0, 62, 0, 29, 0, 28, 0, 61, 0, 62, 0, 15, 0, 49, 0, 16, 0, 15, 0, 48, 0, 49, 0, 2, 0, 36, 0, 3, 0, 2, 0, 35, 0, 36, 0, 29, 0, 63, 0, 30, 0, 29, 0, 62, 0, 63, 0, 16, 0, 50, 0, 17, 0, 16, 0, 49, 0, 50, 0, 3, 0, 37, 0, 4, 0, 3, 0, 36, 0, 37, 0, 30, 0, 64, 0, 31, 0, 30, 0, 63, 0, 64, 0, 17, 0, 51, 0, 18, 0, 17, 0, 50, 0, 51, 0, 4, 0, 38, 0, 5, 0, 4, 0, 37, 0, 38, 0, 31, 0, 65, 0, 32, 0, 31, 0, 64, 0, 65, 0, 18, 0, 52, 0, 19, 0, 18, 0, 51, 0, 52, 0, 5, 0, 39, 0, 6, 0, 5, 0, 38, 0, 39, 0, 32, 0, 34, 0, 1, 0, 32, 0, 65, 0, 34, 0, 19, 0, 53, 0, 20, 0, 19, 0, 52, 0, 53, 0, 6, 0, 40, 0, 7, 0, 6, 0, 39, 0, 40, 0, 20, 0, 54, 0, 21, 0, 20, 0, 53, 0, 54, 0, 7, 0, 41, 0, 8, 0, 7, 0, 40, 0, 41, 0, 21, 0, 55, 0, 22, 0, 21, 0, 54, 0, 55, 0, 8, 0, 42, 0, 9, 0, 8, 0, 41, 0, 42, 0, 22, 0, 56, 0, 23, 0, 22, 0, 55, 0, 56, 0, 9, 0, 43, 0, 10, 0, 9, 0, 42, 0, 43, 0, 23, 0, 57, 0, 24, 0, 23, 0, 56, 0, 57, 0, 10, 0, 44, 0, 11, 0, 10, 0, 43, 0, 44, 0, 24, 0, 58, 0, 25, 0, 24, 0, 57, 0, 58, 0, 11, 0, 45, 0, 12, 0, 11, 0, 44, 0, 45, 0, 25, 0, 59, 0, 26, 0, 25, 0, 58, 0, 59, 0, 12, 0, 46, 0, 13, 0, 12, 0, 45, 0, 46, 0, 26, 0, 60, 0, 27, 0, 26, 0, 59, 0, 60, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +"index_data": PackedByteArray(2, 0, 10, 0, 5, 0, 2, 0, 7, 0, 10, 0, 7, 0, 14, 0, 10, 0, 7, 0, 11, 0, 14, 0, 11, 0, 18, 0, 14, 0, 11, 0, 15, 0, 18, 0, 15, 0, 22, 0, 18, 0, 15, 0, 19, 0, 22, 0, 19, 0, 26, 0, 22, 0, 19, 0, 23, 0, 26, 0, 23, 0, 30, 0, 26, 0, 23, 0, 27, 0, 30, 0, 27, 0, 34, 0, 30, 0, 27, 0, 31, 0, 34, 0, 31, 0, 38, 0, 34, 0, 31, 0, 35, 0, 38, 0, 35, 0, 42, 0, 38, 0, 35, 0, 39, 0, 42, 0, 39, 0, 46, 0, 42, 0, 39, 0, 43, 0, 46, 0, 43, 0, 50, 0, 46, 0, 43, 0, 47, 0, 50, 0, 47, 0, 54, 0, 50, 0, 47, 0, 51, 0, 54, 0, 51, 0, 58, 0, 54, 0, 51, 0, 55, 0, 58, 0, 55, 0, 62, 0, 58, 0, 55, 0, 59, 0, 62, 0, 59, 0, 66, 0, 62, 0, 59, 0, 63, 0, 66, 0, 63, 0, 70, 0, 66, 0, 63, 0, 67, 0, 70, 0, 67, 0, 73, 0, 70, 0, 67, 0, 72, 0, 73, 0, 72, 0, 77, 0, 73, 0, 72, 0, 76, 0, 77, 0, 76, 0, 81, 0, 77, 0, 76, 0, 80, 0, 81, 0, 80, 0, 85, 0, 81, 0, 80, 0, 84, 0, 85, 0, 84, 0, 89, 0, 85, 0, 84, 0, 88, 0, 89, 0, 88, 0, 93, 0, 89, 0, 88, 0, 92, 0, 93, 0, 92, 0, 97, 0, 93, 0, 92, 0, 96, 0, 97, 0, 96, 0, 101, 0, 97, 0, 96, 0, 100, 0, 101, 0, 100, 0, 105, 0, 101, 0, 100, 0, 104, 0, 105, 0, 104, 0, 109, 0, 105, 0, 104, 0, 108, 0, 109, 0, 108, 0, 113, 0, 109, 0, 108, 0, 112, 0, 113, 0, 112, 0, 117, 0, 113, 0, 112, 0, 116, 0, 117, 0, 116, 0, 121, 0, 117, 0, 116, 0, 120, 0, 121, 0, 120, 0, 125, 0, 121, 0, 120, 0, 124, 0, 125, 0, 13, 0, 4, 0, 9, 0, 4, 0, 126, 0, 130, 0, 126, 0, 118, 0, 122, 0, 118, 0, 110, 0, 114, 0, 110, 0, 102, 0, 106, 0, 102, 0, 94, 0, 98, 0, 94, 0, 86, 0, 90, 0, 86, 0, 78, 0, 82, 0, 78, 0, 69, 0, 74, 0, 69, 0, 61, 0, 65, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 126, 0, 4, 0, 126, 0, 110, 0, 118, 0, 110, 0, 94, 0, 102, 0, 94, 0, 78, 0, 86, 0, 78, 0, 61, 0, 69, 0, 61, 0, 45, 0, 53, 0, 45, 0, 29, 0, 37, 0, 29, 0, 13, 0, 21, 0, 13, 0, 110, 0, 126, 0, 110, 0, 78, 0, 94, 0, 78, 0, 45, 0, 61, 0, 45, 0, 13, 0, 29, 0, 13, 0, 78, 0, 110, 0, 78, 0, 13, 0, 45, 0, 124, 0, 129, 0, 125, 0, 124, 0, 128, 0, 129, 0, 128, 0, 6, 0, 129, 0, 128, 0, 3, 0, 6, 0, 103, 0, 158, 0, 107, 0, 103, 0, 157, 0, 158, 0, 16, 0, 136, 0, 20, 0, 16, 0, 135, 0, 136, 0, 52, 0, 145, 0, 56, 0, 52, 0, 144, 0, 145, 0, 87, 0, 154, 0, 91, 0, 87, 0, 153, 0, 154, 0, 123, 0, 163, 0, 127, 0, 123, 0, 162, 0, 163, 0, 36, 0, 141, 0, 40, 0, 36, 0, 140, 0, 141, 0, 71, 0, 150, 0, 75, 0, 71, 0, 149, 0, 150, 0, 107, 0, 159, 0, 111, 0, 107, 0, 158, 0, 159, 0, 20, 0, 137, 0, 24, 0, 20, 0, 136, 0, 137, 0, 56, 0, 146, 0, 60, 0, 56, 0, 145, 0, 146, 0, 91, 0, 155, 0, 95, 0, 91, 0, 154, 0, 155, 0, 0, 0, 133, 0, 8, 0, 0, 0, 131, 0, 133, 0, 127, 0, 132, 0, 1, 0, 127, 0, 163, 0, 132, 0, 40, 0, 142, 0, 44, 0, 40, 0, 141, 0, 142, 0, 75, 0, 151, 0, 79, 0, 75, 0, 150, 0, 151, 0, 111, 0, 160, 0, 115, 0, 111, 0, 159, 0, 160, 0, 24, 0, 138, 0, 28, 0, 24, 0, 137, 0, 138, 0, 60, 0, 147, 0, 64, 0, 60, 0, 146, 0, 147, 0, 95, 0, 156, 0, 99, 0, 95, 0, 155, 0, 156, 0, 8, 0, 134, 0, 12, 0, 8, 0, 133, 0, 134, 0, 44, 0, 143, 0, 48, 0, 44, 0, 142, 0, 143, 0, 79, 0, 152, 0, 83, 0, 79, 0, 151, 0, 152, 0, 115, 0, 161, 0, 119, 0, 115, 0, 160, 0, 161, 0, 28, 0, 139, 0, 32, 0, 28, 0, 138, 0, 139, 0, 64, 0, 148, 0, 68, 0, 64, 0, 147, 0, 148, 0, 99, 0, 157, 0, 103, 0, 99, 0, 156, 0, 157, 0, 12, 0, 135, 0, 16, 0, 12, 0, 134, 0, 135, 0, 48, 0, 144, 0, 52, 0, 48, 0, 143, 0, 144, 0, 83, 0, 153, 0, 87, 0, 83, 0, 152, 0, 153, 0, 119, 0, 162, 0, 123, 0, 119, 0, 161, 0, 162, 0, 32, 0, 140, 0, 36, 0, 32, 0, 139, 0, 140, 0, 68, 0, 149, 0, 71, 0, 68, 0, 148, 0, 149, 0, 180, 0, 219, 0, 181, 0, 180, 0, 218, 0, 219, 0, 167, 0, 200, 0, 168, 0, 167, 0, 20, 1, 200, 0, 194, 0, 34, 1, 195, 0, 194, 0, 237, 0, 34, 1, 181, 0, 221, 0, 182, 0, 181, 0, 219, 0, 221, 0, 168, 0, 202, 0, 169, 0, 168, 0, 200, 0, 202, 0, 195, 0, 239, 0, 196, 0, 195, 0, 34, 1, 239, 0, 182, 0, 223, 0, 183, 0, 182, 0, 221, 0, 223, 0, 169, 0, 204, 0, 170, 0, 169, 0, 202, 0, 204, 0, 196, 0, 28, 1, 165, 0, 196, 0, 239, 0, 28, 1, 183, 0, 225, 0, 184, 0, 183, 0, 223, 0, 225, 0, 170, 0, 10, 1, 171, 0, 170, 0, 204, 0, 10, 1, 184, 0, 62, 1, 185, 0, 184, 0, 225, 0, 62, 1, 171, 0, 206, 0, 172, 0, 171, 0, 10, 1, 206, 0, 185, 0, 227, 0, 186, 0, 185, 0, 62, 1, 227, 0, 172, 0, 4, 1, 173, 0, 172, 0, 206, 0, 4, 1, 186, 0, 56, 1, 187, 0, 186, 0, 227, 0, 56, 1, 173, 0, 208, 0, 174, 0, 173, 0, 4, 1, 208, 0, 187, 0, 229, 0, 188, 0, 187, 0, 56, 1, 229, 0, 174, 0, 254, 0, 175, 0, 174, 0, 208, 0, 254, 0, 188, 0, 50, 1, 189, 0, 188, 0, 229, 0, 50, 1, 175, 0, 210, 0, 176, 0, 175, 0, 254, 0, 210, 0, 189, 0, 231, 0, 190, 0, 189, 0, 50, 1, 231, 0, 176, 0, 212, 0, 177, 0, 176, 0, 210, 0, 212, 0, 190, 0, 44, 1, 191, 0, 190, 0, 231, 0, 44, 1, 177, 0, 214, 0, 178, 0, 177, 0, 212, 0, 214, 0, 191, 0, 233, 0, 192, 0, 191, 0, 44, 1, 233, 0, 178, 0, 216, 0, 179, 0, 178, 0, 214, 0, 216, 0, 164, 0, 198, 0, 166, 0, 164, 0, 27, 1, 198, 0, 192, 0, 235, 0, 193, 0, 192, 0, 233, 0, 235, 0, 179, 0, 218, 0, 180, 0, 179, 0, 216, 0, 218, 0, 166, 0, 20, 1, 167, 0, 166, 0, 198, 0, 20, 1, 193, 0, 237, 0, 194, 0, 193, 0, 235, 0, 237, 0, 220, 0, 244, 0, 242, 0, 220, 0, 217, 0, 244, 0, 217, 0, 246, 0, 244, 0, 217, 0, 215, 0, 246, 0, 215, 0, 248, 0, 246, 0, 215, 0, 213, 0, 248, 0, 213, 0, 250, 0, 248, 0, 213, 0, 211, 0, 250, 0, 211, 0, 252, 0, 250, 0, 211, 0, 209, 0, 252, 0, 209, 0, 0, 1, 252, 0, 209, 0, 253, 0, 0, 1, 253, 0, 2, 1, 0, 1, 253, 0, 207, 0, 2, 1, 207, 0, 6, 1, 2, 1, 207, 0, 3, 1, 6, 1, 3, 1, 8, 1, 6, 1, 3, 1, 205, 0, 8, 1, 205, 0, 12, 1, 8, 1, 205, 0, 9, 1, 12, 1, 9, 1, 14, 1, 12, 1, 9, 1, 203, 0, 14, 1, 203, 0, 16, 1, 14, 1, 203, 0, 201, 0, 16, 1, 201, 0, 18, 1, 16, 1, 201, 0, 199, 0, 18, 1, 199, 0, 22, 1, 18, 1, 199, 0, 19, 1, 22, 1, 19, 1, 24, 1, 22, 1, 19, 1, 197, 0, 24, 1, 197, 0, 30, 1, 24, 1, 197, 0, 25, 1, 30, 1, 26, 1, 32, 1, 31, 1, 26, 1, 240, 0, 32, 1, 240, 0, 36, 1, 32, 1, 240, 0, 35, 1, 36, 1, 35, 1, 38, 1, 36, 1, 35, 1, 238, 0, 38, 1, 238, 0, 40, 1, 38, 1, 238, 0, 236, 0, 40, 1, 236, 0, 42, 1, 40, 1, 236, 0, 234, 0, 42, 1, 234, 0, 46, 1, 42, 1, 234, 0, 45, 1, 46, 1, 45, 1, 48, 1, 46, 1, 45, 1, 232, 0, 48, 1, 232, 0, 52, 1, 48, 1, 232, 0, 51, 1, 52, 1, 51, 1, 54, 1, 52, 1, 51, 1, 230, 0, 54, 1, 230, 0, 58, 1, 54, 1, 230, 0, 57, 1, 58, 1, 57, 1, 60, 1, 58, 1, 57, 1, 228, 0, 60, 1, 228, 0, 64, 1, 60, 1, 228, 0, 63, 1, 64, 1, 63, 1, 66, 1, 64, 1, 63, 1, 226, 0, 66, 1, 226, 0, 68, 1, 66, 1, 226, 0, 224, 0, 68, 1, 245, 0, 241, 0, 243, 0, 241, 0, 69, 1, 71, 1, 69, 1, 65, 1, 67, 1, 65, 1, 59, 1, 61, 1, 59, 1, 53, 1, 55, 1, 53, 1, 47, 1, 49, 1, 47, 1, 41, 1, 43, 1, 41, 1, 37, 1, 39, 1, 37, 1, 29, 1, 33, 1, 29, 1, 21, 1, 23, 1, 21, 1, 15, 1, 17, 1, 15, 1, 11, 1, 13, 1, 11, 1, 5, 1, 7, 1, 5, 1, 255, 0, 1, 1, 255, 0, 249, 0, 251, 0, 249, 0, 245, 0, 247, 0, 245, 0, 69, 1, 241, 0, 69, 1, 59, 1, 65, 1, 59, 1, 47, 1, 53, 1, 47, 1, 37, 1, 41, 1, 37, 1, 21, 1, 29, 1, 21, 1, 11, 1, 15, 1, 11, 1, 255, 0, 5, 1, 255, 0, 245, 0, 249, 0, 245, 0, 59, 1, 69, 1, 59, 1, 37, 1, 47, 1, 37, 1, 11, 1, 21, 1, 11, 1, 245, 0, 255, 0, 245, 0, 37, 1, 59, 1, 37, 1, 245, 0, 11, 1, 224, 0, 70, 1, 68, 1, 224, 0, 222, 0, 70, 1, 222, 0, 242, 0, 70, 1, 222, 0, 220, 0, 242, 0), +"lods": [0.123754, PackedByteArray(206, 1, 10, 0, 5, 0, 206, 1, 210, 1, 10, 0, 206, 1, 131, 0, 210, 1, 210, 1, 14, 0, 10, 0, 210, 1, 211, 1, 212, 1, 210, 1, 212, 1, 213, 1, 210, 1, 213, 1, 14, 0, 213, 1, 22, 0, 14, 0, 213, 1, 30, 0, 22, 0, 213, 1, 208, 1, 30, 0, 213, 1, 214, 1, 215, 1, 213, 1, 215, 1, 216, 1, 213, 1, 216, 1, 217, 1, 213, 1, 217, 1, 218, 1, 213, 1, 218, 1, 208, 1, 218, 1, 46, 0, 208, 1, 218, 1, 54, 0, 46, 0, 218, 1, 219, 1, 220, 1, 218, 1, 220, 1, 221, 1, 218, 1, 221, 1, 54, 0, 54, 0, 221, 1, 222, 1, 54, 0, 222, 1, 223, 1, 54, 0, 223, 1, 225, 1, 225, 1, 223, 1, 224, 1, 54, 0, 225, 1, 62, 0, 225, 1, 70, 0, 62, 0, 225, 1, 73, 0, 70, 0, 225, 1, 226, 1, 73, 0, 226, 1, 77, 0, 73, 0, 226, 1, 228, 1, 77, 0, 226, 1, 227, 1, 228, 1, 228, 1, 209, 1, 77, 0, 228, 1, 230, 1, 209, 1, 228, 1, 229, 1, 230, 1, 230, 1, 231, 1, 209, 1, 231, 1, 93, 0, 209, 1, 231, 1, 101, 0, 93, 0, 231, 1, 232, 1, 233, 1, 231, 1, 233, 1, 234, 1, 231, 1, 234, 1, 235, 1, 231, 1, 235, 1, 101, 0, 235, 1, 109, 0, 101, 0, 235, 1, 117, 0, 109, 0, 235, 1, 236, 1, 237, 1, 235, 1, 237, 1, 238, 1, 235, 1, 238, 1, 239, 1, 235, 1, 239, 1, 117, 0, 239, 1, 125, 0, 117, 0, 239, 1, 129, 0, 125, 0, 239, 1, 207, 1, 129, 0, 207, 1, 6, 0, 129, 0, 239, 1, 163, 0, 207, 1, 207, 1, 163, 0, 132, 0, 13, 0, 4, 0, 9, 0, 4, 0, 126, 0, 130, 0, 13, 0, 126, 0, 4, 0, 126, 0, 110, 0, 118, 0, 13, 0, 110, 0, 126, 0, 110, 0, 94, 0, 102, 0, 110, 0, 78, 0, 94, 0, 13, 0, 78, 0, 110, 0, 94, 0, 78, 0, 86, 0, 78, 0, 69, 0, 74, 0, 78, 0, 61, 0, 69, 0, 78, 0, 45, 0, 61, 0, 78, 0, 13, 0, 45, 0, 61, 0, 45, 0, 53, 0, 45, 0, 13, 0, 29, 0, 29, 0, 13, 0, 21, 0, 45, 0, 29, 0, 37, 0, 255, 1, 254, 1, 0, 2, 252, 1, 254, 1, 253, 1, 251, 1, 254, 1, 252, 1, 250, 1, 254, 1, 251, 1, 250, 1, 247, 1, 254, 1, 249, 1, 247, 1, 250, 1, 248, 1, 247, 1, 249, 1, 245, 1, 247, 1, 246, 1, 244, 1, 247, 1, 245, 1, 244, 1, 242, 1, 247, 1, 243, 1, 242, 1, 244, 1, 247, 1, 6, 1, 0, 1, 247, 1, 16, 2, 6, 1, 247, 1, 0, 1, 15, 2, 242, 1, 16, 1, 16, 2, 242, 1, 22, 1, 16, 1, 173, 0, 168, 0, 16, 2, 180, 0, 173, 0, 15, 2, 242, 1, 17, 2, 22, 1, 17, 2, 30, 1, 22, 1, 240, 1, 17, 2, 168, 0, 240, 1, 242, 1, 241, 1, 164, 0, 17, 2, 240, 1, 254, 1, 15, 2, 246, 0, 254, 1, 246, 0, 244, 0, 254, 1, 244, 0, 242, 0, 254, 1, 242, 0, 70, 1, 0, 2, 254, 1, 70, 1, 0, 2, 70, 1, 68, 1, 0, 2, 68, 1, 66, 1, 5, 2, 0, 2, 66, 1, 5, 2, 66, 1, 64, 1, 5, 2, 64, 1, 60, 1, 5, 2, 60, 1, 58, 1, 5, 2, 58, 1, 54, 1, 1, 2, 0, 2, 2, 2, 2, 2, 0, 2, 5, 2, 2, 2, 5, 2, 3, 2, 3, 2, 5, 2, 4, 2, 9, 2, 5, 2, 54, 1, 6, 2, 5, 2, 9, 2, 9, 2, 54, 1, 52, 1, 6, 2, 9, 2, 7, 2, 7, 2, 9, 2, 8, 2, 9, 2, 52, 1, 48, 1, 9, 2, 48, 1, 46, 1, 9, 2, 46, 1, 42, 1, 10, 2, 9, 2, 42, 1, 10, 2, 42, 1, 40, 1, 12, 2, 10, 2, 40, 1, 11, 2, 10, 2, 12, 2, 12, 2, 40, 1, 38, 1, 12, 2, 38, 1, 36, 1, 14, 2, 12, 2, 36, 1, 13, 2, 12, 2, 14, 2, 14, 2, 36, 1, 32, 1, 18, 2, 14, 2, 32, 1, 14, 2, 18, 2, 165, 0, 18, 2, 32, 1, 31, 1, 245, 0, 241, 0, 243, 0, 241, 0, 69, 1, 71, 1, 245, 0, 69, 1, 241, 0, 69, 1, 65, 1, 67, 1, 69, 1, 59, 1, 65, 1, 245, 0, 59, 1, 69, 1, 65, 1, 59, 1, 61, 1, 255, 0, 245, 0, 249, 0, 11, 1, 245, 0, 255, 0, 11, 1, 255, 0, 5, 1, 245, 0, 37, 1, 59, 1, 37, 1, 245, 0, 11, 1, 21, 1, 11, 1, 15, 1, 37, 1, 11, 1, 21, 1, 37, 1, 21, 1, 29, 1, 37, 1, 29, 1, 33, 1, 59, 1, 53, 1, 55, 1, 59, 1, 47, 1, 53, 1, 59, 1, 37, 1, 47, 1, 53, 1, 47, 1, 49, 1, 47, 1, 37, 1, 41, 1, 41, 1, 37, 1, 39, 1, 47, 1, 41, 1, 43, 1), 0.154965, PackedByteArray(142, 1, 14, 0, 5, 0, 142, 1, 149, 1, 14, 0, 142, 1, 131, 0, 149, 1, 149, 1, 152, 1, 14, 0, 149, 1, 151, 1, 152, 1, 149, 1, 150, 1, 151, 1, 153, 1, 145, 1, 144, 1, 153, 1, 155, 1, 156, 1, 154, 1, 156, 1, 145, 1, 145, 1, 156, 1, 157, 1, 162, 1, 147, 1, 145, 1, 146, 1, 157, 1, 158, 1, 158, 1, 161, 1, 146, 1, 158, 1, 160, 1, 161, 1, 158, 1, 159, 1, 160, 1, 161, 1, 164, 1, 165, 1, 163, 1, 165, 1, 147, 1, 147, 1, 165, 1, 166, 1, 166, 1, 167, 1, 77, 0, 167, 1, 93, 0, 147, 1, 167, 1, 169, 1, 93, 0, 167, 1, 168, 1, 169, 1, 169, 1, 148, 1, 93, 0, 169, 1, 173, 1, 148, 1, 169, 1, 170, 1, 171, 1, 169, 1, 171, 1, 172, 1, 169, 1, 172, 1, 174, 1, 174, 1, 125, 0, 148, 1, 173, 1, 176, 1, 125, 0, 173, 1, 175, 1, 176, 1, 176, 1, 143, 1, 125, 0, 143, 1, 6, 0, 125, 0, 143, 1, 176, 1, 132, 0, 13, 0, 126, 0, 4, 0, 13, 0, 110, 0, 126, 0, 13, 0, 78, 0, 110, 0, 110, 0, 78, 0, 94, 0, 78, 0, 13, 0, 45, 0, 196, 0, 203, 1, 165, 0, 203, 1, 196, 0, 36, 1, 203, 1, 36, 1, 31, 1, 196, 0, 197, 1, 36, 1, 197, 1, 46, 1, 36, 1, 197, 1, 195, 1, 46, 1, 196, 1, 195, 1, 197, 1, 195, 1, 194, 1, 46, 1, 194, 1, 204, 1, 46, 1, 192, 1, 194, 1, 193, 1, 192, 1, 191, 1, 194, 1, 194, 1, 191, 1, 204, 1, 191, 1, 188, 1, 204, 1, 189, 1, 188, 1, 191, 1, 189, 1, 191, 1, 190, 1, 188, 1, 181, 0, 199, 1, 187, 1, 199, 1, 181, 0, 188, 1, 198, 1, 205, 1, 187, 1, 185, 1, 198, 1, 186, 1, 185, 1, 187, 1, 185, 1, 183, 1, 198, 1, 184, 1, 183, 1, 185, 1, 198, 1, 183, 1, 200, 1, 179, 1, 22, 1, 200, 1, 179, 1, 202, 1, 22, 1, 202, 1, 30, 1, 22, 1, 164, 0, 202, 1, 177, 1, 177, 1, 202, 1, 180, 1, 177, 1, 179, 1, 178, 1, 181, 1, 179, 1, 182, 1, 182, 1, 179, 1, 201, 1, 173, 0, 182, 1, 201, 1, 37, 1, 21, 1, 29, 1, 37, 1, 11, 1, 21, 1, 37, 1, 241, 0, 11, 1, 241, 0, 37, 1, 59, 1, 59, 1, 37, 1, 47, 1), 0.466953, PackedByteArray(99, 1, 101, 1, 5, 0, 99, 1, 134, 0, 101, 1, 99, 1, 131, 0, 134, 0, 134, 0, 108, 1, 101, 1, 101, 1, 108, 1, 109, 1, 109, 1, 110, 1, 102, 1, 110, 1, 103, 1, 102, 1, 110, 1, 112, 1, 106, 1, 112, 1, 113, 1, 114, 1, 114, 1, 107, 1, 106, 1, 100, 1, 6, 0, 107, 1, 115, 1, 100, 1, 107, 1, 100, 1, 115, 1, 132, 0, 111, 1, 105, 1, 104, 1, 152, 0, 161, 0, 105, 1, 13, 0, 126, 0, 4, 0, 13, 0, 94, 0, 126, 0, 13, 0, 78, 0, 94, 0, 127, 1, 134, 1, 165, 0, 127, 1, 126, 1, 138, 1, 126, 1, 125, 1, 139, 1, 125, 1, 140, 1, 138, 1, 125, 1, 124, 1, 141, 1, 124, 1, 122, 1, 140, 1, 122, 1, 129, 1, 140, 1, 135, 1, 138, 1, 137, 1, 135, 1, 128, 1, 138, 1, 121, 1, 119, 1, 129, 1, 129, 1, 119, 1, 131, 1, 123, 1, 121, 1, 130, 1, 133, 1, 136, 1, 131, 1, 117, 1, 133, 1, 131, 1, 116, 1, 133, 1, 117, 1, 164, 0, 133, 1, 116, 1, 120, 1, 118, 1, 132, 1, 47, 1, 11, 1, 29, 1, 47, 1, 241, 0, 11, 1, 241, 0, 47, 1, 59, 1), 0.972276, PackedByteArray(72, 1, 14, 0, 5, 0, 72, 1, 134, 0, 14, 0, 72, 1, 131, 0, 134, 0, 76, 1, 134, 0, 152, 0, 79, 1, 81, 1, 77, 1, 13, 0, 94, 0, 4, 0, 82, 1, 73, 1, 78, 1, 73, 1, 74, 1, 78, 1, 75, 1, 80, 1, 78, 1, 1, 0, 83, 1, 132, 0, 88, 1, 94, 1, 85, 1, 84, 1, 92, 1, 86, 1, 87, 1, 93, 1, 91, 1, 93, 1, 96, 1, 91, 1, 89, 1, 91, 1, 98, 1, 95, 1, 98, 1, 97, 1, 26, 1, 189, 0, 46, 1, 47, 1, 241, 0, 29, 1, 90, 1, 179, 0, 242, 0)], +"material": SubResource("StandardMaterial3D_xtwro"), +"primitive": 3, +"vertex_count": 531, +"vertex_data": PackedByteArray(0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 255, 127, 255, 63, 66, 250, 66, 186, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 255, 127, 255, 63, 133, 244, 221, 194, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 255, 127, 0, 0, 0, 0, 216, 156, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 255, 127, 255, 63, 66, 250, 66, 186, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 255, 127, 255, 63, 133, 244, 221, 194, 194, 197, 71, 62, 1, 0, 64, 64, 190, 20, 123, 63, 121, 139, 44, 69, 254, 255, 157, 202, 194, 197, 71, 62, 1, 0, 64, 64, 190, 20, 123, 63, 59, 149, 255, 127, 255, 255, 97, 181, 149, 203, 51, 62, 154, 153, 57, 64, 17, 249, 97, 63, 255, 127, 0, 0, 0, 0, 216, 156, 149, 203, 51, 62, 154, 153, 57, 64, 17, 249, 97, 63, 121, 139, 44, 69, 254, 255, 157, 202, 22, 239, 195, 62, 1, 0, 64, 64, 94, 131, 108, 63, 59, 149, 129, 72, 254, 255, 189, 210, 22, 239, 195, 62, 1, 0, 64, 64, 94, 131, 108, 63, 124, 165, 255, 127, 255, 255, 64, 173, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 255, 127, 0, 0, 0, 0, 216, 156, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 59, 149, 129, 72, 254, 255, 189, 210, 218, 57, 14, 63, 1, 0, 64, 64, 49, 219, 84, 63, 201, 157, 96, 74, 254, 255, 92, 166, 218, 57, 14, 63, 1, 0, 64, 64, 49, 219, 84, 63, 68, 179, 255, 127, 255, 255, 92, 166, 222, 0, 0, 63, 154, 153, 57, 64, 18, 146, 63, 63, 255, 127, 0, 0, 0, 0, 217, 156, 222, 0, 0, 63, 154, 153, 57, 64, 18, 146, 63, 63, 201, 157, 96, 74, 254, 255, 92, 166, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 63, 124, 165, 250, 74, 254, 255, 255, 159, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 63, 255, 191, 255, 127, 255, 255, 255, 159, 218, 234, 34, 63, 154, 153, 57, 64, 218, 234, 34, 63, 255, 127, 0, 0, 0, 0, 216, 156, 218, 234, 34, 63, 154, 153, 57, 64, 218, 234, 34, 63, 124, 165, 250, 74, 254, 255, 255, 159, 49, 219, 84, 63, 0, 0, 64, 64, 218, 57, 14, 63, 149, 172, 96, 74, 254, 255, 161, 153, 49, 219, 84, 63, 0, 0, 64, 64, 218, 57, 14, 63, 186, 204, 255, 127, 255, 255, 161, 153, 18, 146, 63, 63, 154, 153, 57, 64, 222, 0, 0, 63, 255, 127, 0, 0, 0, 0, 217, 156, 18, 146, 63, 63, 154, 153, 57, 64, 222, 0, 0, 63, 149, 172, 96, 74, 254, 255, 161, 153, 94, 131, 108, 63, 0, 0, 64, 64, 21, 239, 195, 62, 68, 179, 129, 72, 254, 255, 190, 146, 94, 131, 108, 63, 0, 0, 64, 64, 21, 239, 195, 62, 129, 218, 255, 127, 255, 255, 190, 146, 161, 220, 84, 63, 154, 153, 57, 64, 45, 87, 176, 62, 255, 127, 0, 0, 0, 0, 216, 156, 161, 220, 84, 63, 154, 153, 57, 64, 45, 87, 176, 62, 68, 179, 129, 72, 254, 255, 190, 146, 190, 20, 123, 63, 0, 0, 64, 64, 196, 197, 71, 62, 177, 185, 44, 69, 255, 255, 157, 138, 190, 20, 123, 63, 0, 0, 64, 64, 196, 197, 71, 62, 194, 234, 255, 127, 255, 255, 157, 138, 17, 249, 97, 63, 154, 153, 57, 64, 151, 203, 51, 62, 255, 127, 0, 0, 0, 0, 216, 156, 17, 249, 97, 63, 154, 153, 57, 64, 151, 203, 51, 62, 177, 185, 44, 69, 255, 255, 96, 245, 0, 0, 128, 63, 0, 0, 64, 64, 46, 189, 59, 179, 255, 191, 255, 63, 254, 255, 254, 255, 0, 0, 128, 63, 0, 0, 64, 64, 46, 189, 59, 179, 254, 255, 255, 127, 255, 255, 255, 255, 102, 102, 102, 63, 154, 153, 57, 64, 204, 57, 208, 178, 255, 127, 0, 0, 0, 0, 216, 156, 102, 102, 102, 63, 154, 153, 57, 64, 204, 57, 208, 178, 255, 191, 255, 63, 254, 255, 254, 255, 190, 20, 123, 63, 0, 0, 64, 64, 194, 197, 71, 190, 43, 197, 178, 57, 0, 0, 96, 245, 190, 20, 123, 63, 0, 0, 64, 64, 194, 197, 71, 190, 254, 255, 59, 149, 0, 0, 96, 245, 17, 249, 97, 63, 153, 153, 57, 64, 148, 203, 51, 190, 255, 127, 0, 0, 0, 0, 216, 156, 17, 249, 97, 63, 153, 153, 57, 64, 148, 203, 51, 190, 43, 197, 178, 57, 0, 0, 96, 245, 95, 131, 108, 63, 0, 0, 64, 64, 20, 239, 195, 190, 128, 200, 68, 51, 0, 0, 64, 237, 95, 131, 108, 63, 0, 0, 64, 64, 20, 239, 195, 190, 254, 255, 124, 165, 0, 0, 64, 237, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 255, 127, 0, 0, 0, 0, 216, 156, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 128, 200, 68, 51, 0, 0, 64, 237, 50, 219, 84, 63, 0, 0, 64, 64, 217, 57, 14, 191, 95, 202, 149, 44, 0, 0, 161, 153, 50, 219, 84, 63, 0, 0, 64, 64, 217, 57, 14, 191, 254, 255, 68, 179, 0, 0, 92, 230, 19, 146, 63, 63, 153, 153, 57, 64, 221, 0, 0, 191, 255, 127, 0, 0, 0, 0, 216, 156, 19, 146, 63, 63, 153, 153, 57, 64, 221, 0, 0, 191, 95, 202, 149, 44, 0, 0, 161, 153, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 191, 250, 202, 125, 37, 0, 0, 255, 223, 243, 4, 53, 63, 0, 0, 64, 64, 243, 4, 53, 191, 254, 255, 255, 63, 0, 0, 255, 223, 218, 234, 34, 63, 153, 153, 57, 64, 218, 234, 34, 191, 255, 127, 0, 0, 0, 0, 216, 156, 218, 234, 34, 63, 153, 153, 57, 64, 218, 234, 34, 191, 250, 202, 125, 37, 0, 0, 255, 159, 217, 57, 14, 63, 255, 255, 63, 64, 50, 219, 84, 191, 95, 202, 202, 29, 0, 0, 92, 166, 217, 57, 14, 63, 255, 255, 63, 64, 50, 219, 84, 191, 254, 255, 68, 51, 0, 0, 92, 166, 221, 0, 0, 63, 153, 153, 57, 64, 19, 146, 63, 191, 255, 127, 0, 0, 0, 0, 216, 156, 221, 0, 0, 63, 153, 153, 57, 64, 19, 146, 63, 191, 95, 202, 202, 29, 0, 0, 92, 166, 23, 239, 195, 62, 255, 255, 63, 64, 94, 131, 108, 191, 128, 200, 60, 21, 0, 0, 64, 173, 23, 239, 195, 62, 255, 255, 63, 64, 94, 131, 108, 191, 254, 255, 125, 37, 0, 0, 64, 173, 46, 87, 176, 62, 153, 153, 57, 64, 161, 220, 84, 191, 255, 127, 0, 0, 0, 0, 216, 156, 46, 87, 176, 62, 153, 153, 57, 64, 161, 220, 84, 191, 128, 200, 60, 21, 0, 0, 64, 173, 193, 197, 71, 62, 255, 255, 63, 64, 191, 20, 123, 191, 43, 197, 121, 11, 0, 0, 97, 181, 193, 197, 71, 62, 255, 255, 63, 64, 191, 20, 123, 191, 254, 255, 60, 21, 0, 0, 97, 181, 148, 203, 51, 62, 153, 153, 57, 64, 18, 249, 97, 191, 255, 127, 0, 0, 0, 0, 216, 156, 148, 203, 51, 62, 153, 153, 57, 64, 18, 249, 97, 191, 43, 197, 121, 11, 0, 0, 97, 181, 46, 189, 187, 179, 255, 255, 63, 64, 0, 0, 128, 191, 255, 63, 0, 0, 0, 0, 255, 191, 46, 189, 187, 179, 255, 255, 63, 64, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 255, 191, 16, 247, 168, 179, 153, 153, 57, 64, 102, 102, 102, 191, 255, 127, 0, 0, 0, 0, 216, 156, 16, 247, 168, 179, 153, 153, 57, 64, 102, 102, 102, 191, 255, 63, 0, 0, 0, 0, 255, 191, 189, 197, 71, 190, 255, 255, 63, 64, 191, 20, 123, 191, 0, 0, 60, 21, 60, 21, 255, 191, 189, 197, 71, 190, 255, 255, 63, 64, 191, 20, 123, 191, 211, 58, 121, 11, 60, 21, 255, 191, 144, 203, 51, 190, 153, 153, 57, 64, 18, 249, 97, 191, 211, 58, 121, 11, 60, 21, 255, 191, 144, 203, 51, 190, 153, 153, 57, 64, 18, 249, 97, 191, 255, 127, 0, 0, 0, 0, 217, 156, 21, 239, 195, 190, 255, 255, 63, 64, 94, 131, 108, 191, 0, 0, 125, 37, 125, 37, 255, 191, 21, 239, 195, 190, 255, 255, 63, 64, 94, 131, 108, 191, 126, 55, 60, 21, 125, 37, 255, 191, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 126, 55, 60, 21, 125, 37, 255, 191, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 255, 127, 0, 0, 0, 0, 216, 156, 219, 57, 14, 191, 255, 255, 63, 64, 48, 219, 84, 191, 0, 0, 68, 51, 68, 51, 255, 191, 219, 57, 14, 191, 255, 255, 63, 64, 48, 219, 84, 191, 159, 53, 202, 29, 68, 51, 255, 191, 222, 0, 0, 191, 153, 153, 57, 64, 17, 146, 63, 191, 159, 53, 202, 29, 68, 51, 255, 191, 222, 0, 0, 191, 153, 153, 57, 64, 17, 146, 63, 191, 255, 127, 0, 0, 0, 0, 216, 156, 242, 4, 53, 191, 0, 0, 64, 64, 244, 4, 53, 191, 0, 0, 255, 63, 255, 63, 255, 191, 242, 4, 53, 191, 0, 0, 64, 64, 244, 4, 53, 191, 4, 53, 125, 37, 255, 63, 255, 191, 218, 234, 34, 191, 153, 153, 57, 64, 219, 234, 34, 191, 4, 53, 125, 37, 255, 63, 255, 191, 218, 234, 34, 191, 153, 153, 57, 64, 219, 234, 34, 191, 255, 127, 0, 0, 0, 0, 216, 156, 47, 219, 84, 191, 0, 0, 64, 64, 221, 57, 14, 191, 0, 0, 186, 76, 186, 76, 255, 191, 47, 219, 84, 191, 0, 0, 64, 64, 221, 57, 14, 191, 159, 53, 149, 44, 186, 76, 255, 191, 16, 146, 63, 191, 153, 153, 57, 64, 224, 0, 0, 191, 159, 53, 149, 44, 186, 76, 255, 191, 16, 146, 63, 191, 153, 153, 57, 64, 224, 0, 0, 191, 255, 127, 0, 0, 0, 0, 217, 156, 94, 131, 108, 191, 0, 0, 64, 64, 26, 239, 195, 190, 0, 0, 130, 90, 130, 90, 255, 191, 94, 131, 108, 191, 0, 0, 64, 64, 26, 239, 195, 190, 126, 55, 68, 51, 130, 90, 255, 191, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 126, 55, 68, 51, 130, 90, 255, 191, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 255, 127, 0, 0, 0, 0, 216, 156, 190, 20, 123, 191, 0, 0, 64, 64, 198, 197, 71, 190, 0, 0, 195, 106, 195, 106, 255, 191, 190, 20, 123, 191, 0, 0, 64, 64, 198, 197, 71, 190, 211, 58, 178, 57, 195, 106, 255, 191, 17, 249, 97, 191, 153, 153, 57, 64, 151, 203, 51, 190, 211, 58, 178, 57, 195, 106, 255, 191, 17, 249, 97, 191, 153, 153, 57, 64, 151, 203, 51, 190, 255, 127, 0, 0, 0, 0, 216, 156, 0, 0, 128, 191, 0, 0, 64, 64, 46, 222, 76, 50, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 64, 64, 46, 222, 76, 50, 255, 63, 255, 63, 255, 127, 255, 191, 102, 102, 102, 191, 154, 153, 57, 64, 28, 229, 221, 50, 255, 63, 255, 63, 255, 127, 255, 191, 102, 102, 102, 191, 154, 153, 57, 64, 28, 229, 221, 50, 255, 127, 0, 0, 0, 0, 216, 156, 190, 20, 123, 191, 0, 0, 64, 64, 200, 197, 71, 62, 60, 21, 255, 127, 59, 149, 255, 191, 190, 20, 123, 191, 0, 0, 64, 64, 200, 197, 71, 62, 77, 70, 44, 69, 59, 149, 255, 191, 17, 249, 97, 191, 154, 153, 57, 64, 155, 203, 51, 62, 77, 70, 44, 69, 59, 149, 255, 191, 17, 249, 97, 191, 154, 153, 57, 64, 155, 203, 51, 62, 255, 127, 0, 0, 0, 0, 216, 156, 93, 131, 108, 191, 0, 0, 64, 64, 27, 239, 195, 62, 125, 37, 255, 127, 124, 165, 255, 191, 93, 131, 108, 191, 0, 0, 64, 64, 27, 239, 195, 62, 186, 76, 129, 72, 124, 165, 255, 191, 160, 220, 84, 191, 154, 153, 57, 64, 51, 87, 176, 62, 186, 76, 129, 72, 124, 165, 255, 191, 160, 220, 84, 191, 154, 153, 57, 64, 51, 87, 176, 62, 255, 127, 0, 0, 0, 0, 216, 156, 51, 219, 84, 191, 0, 0, 64, 64, 215, 57, 14, 63, 68, 51, 255, 127, 68, 179, 255, 191, 51, 219, 84, 191, 0, 0, 64, 64, 215, 57, 14, 63, 105, 83, 96, 74, 68, 179, 255, 191, 20, 146, 63, 191, 154, 153, 57, 64, 219, 0, 0, 63, 105, 83, 96, 74, 68, 179, 255, 191, 20, 146, 63, 191, 154, 153, 57, 64, 219, 0, 0, 63, 255, 127, 0, 0, 0, 0, 216, 156, 245, 4, 53, 191, 0, 0, 64, 64, 242, 4, 53, 63, 255, 63, 255, 127, 255, 191, 255, 191, 245, 4, 53, 191, 0, 0, 64, 64, 242, 4, 53, 63, 130, 90, 250, 74, 255, 191, 255, 191, 220, 234, 34, 191, 154, 153, 57, 64, 218, 234, 34, 63, 130, 90, 250, 74, 255, 191, 255, 191, 220, 234, 34, 191, 154, 153, 57, 64, 218, 234, 34, 63, 255, 127, 0, 0, 0, 0, 216, 156, 219, 57, 14, 191, 1, 0, 64, 64, 49, 219, 84, 63, 186, 76, 255, 127, 186, 204, 255, 191, 219, 57, 14, 191, 1, 0, 64, 64, 49, 219, 84, 63, 53, 98, 96, 74, 186, 204, 255, 191, 222, 0, 0, 191, 154, 153, 57, 64, 18, 146, 63, 63, 53, 98, 96, 74, 186, 204, 255, 191, 222, 0, 0, 191, 154, 153, 57, 64, 18, 146, 63, 63, 255, 127, 0, 0, 0, 0, 216, 156, 21, 239, 195, 190, 1, 0, 64, 64, 95, 131, 108, 63, 130, 90, 255, 127, 129, 218, 255, 191, 21, 239, 195, 190, 1, 0, 64, 64, 95, 131, 108, 63, 195, 106, 129, 72, 129, 218, 255, 191, 44, 87, 176, 190, 154, 153, 57, 64, 162, 220, 84, 63, 195, 106, 129, 72, 129, 218, 255, 191, 44, 87, 176, 190, 154, 153, 57, 64, 162, 220, 84, 63, 255, 127, 0, 0, 0, 0, 216, 156, 188, 197, 71, 190, 1, 0, 64, 64, 191, 20, 123, 63, 195, 106, 255, 127, 194, 234, 255, 191, 188, 197, 71, 190, 1, 0, 64, 64, 191, 20, 123, 63, 133, 116, 44, 69, 194, 234, 255, 191, 143, 203, 51, 190, 154, 153, 57, 64, 18, 249, 97, 63, 133, 116, 44, 69, 194, 234, 255, 191, 143, 203, 51, 190, 154, 153, 57, 64, 18, 249, 97, 63, 255, 127, 0, 0, 0, 0, 216, 156, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 255, 127, 255, 127, 255, 255, 255, 191, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 255, 127, 255, 127, 255, 255, 255, 191, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 59, 149, 255, 127, 255, 255, 97, 181, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 124, 165, 255, 127, 255, 255, 64, 173, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 68, 179, 255, 127, 255, 255, 92, 166, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 255, 191, 255, 127, 255, 255, 255, 159, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 186, 204, 255, 127, 255, 255, 161, 153, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 129, 218, 255, 127, 255, 255, 190, 146, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 194, 234, 255, 127, 255, 255, 157, 138, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 254, 255, 255, 127, 0, 0, 255, 255, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 254, 255, 59, 149, 0, 0, 96, 245, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 255, 255, 124, 165, 0, 0, 64, 237, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 255, 255, 68, 179, 0, 0, 92, 230, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 254, 255, 255, 63, 0, 0, 255, 223, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 254, 255, 68, 51, 0, 0, 161, 217, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 254, 255, 125, 37, 0, 0, 64, 173, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 254, 255, 60, 21, 0, 0, 157, 202, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 255, 191, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 0, 0, 60, 21, 60, 21, 255, 191, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 0, 0, 125, 37, 125, 37, 255, 191, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 0, 0, 68, 51, 68, 51, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 0, 0, 255, 63, 255, 63, 255, 191, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 0, 0, 186, 76, 186, 76, 255, 191, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 0, 0, 130, 90, 130, 90, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 0, 0, 195, 106, 195, 106, 255, 191, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 0, 0, 255, 127, 255, 127, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 60, 21, 255, 127, 59, 149, 255, 191, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 125, 37, 255, 127, 124, 165, 255, 191, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 68, 51, 255, 127, 68, 179, 255, 191, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 255, 63, 255, 127, 255, 191, 255, 191, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 186, 76, 255, 127, 186, 204, 255, 191, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 130, 90, 255, 127, 129, 218, 255, 191, 192, 197, 71, 190, 103, 102, 70, 64, 190, 20, 123, 63, 195, 106, 255, 127, 194, 234, 255, 191, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 255, 127, 255, 127, 255, 255, 255, 191, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 255, 127, 255, 127, 255, 255, 255, 191, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 59, 149, 255, 127, 255, 255, 157, 202, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 124, 165, 255, 127, 255, 255, 64, 173, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 68, 179, 255, 127, 255, 255, 92, 166, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 255, 191, 255, 127, 255, 255, 255, 159, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 186, 204, 255, 127, 255, 255, 92, 230, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 129, 218, 255, 127, 255, 255, 190, 146, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 194, 234, 255, 127, 255, 255, 96, 245, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 254, 255, 255, 127, 0, 0, 255, 127, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 255, 255, 195, 106, 0, 0, 157, 138, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 255, 255, 124, 165, 0, 0, 64, 237, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 255, 255, 186, 76, 0, 0, 161, 153, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 255, 255, 255, 63, 0, 0, 255, 223, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 255, 255, 186, 204, 0, 0, 161, 217, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 255, 255, 129, 218, 0, 0, 189, 210, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 254, 255, 194, 234, 0, 0, 157, 202, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 255, 191, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 0, 0, 60, 21, 60, 21, 255, 191, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 0, 0, 125, 37, 125, 37, 255, 191, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 0, 0, 68, 51, 68, 51, 255, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 0, 0, 255, 191, 255, 63, 255, 191, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 0, 0, 68, 179, 186, 76, 255, 191, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 0, 0, 124, 165, 130, 90, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 0, 0, 59, 149, 195, 106, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 0, 0, 255, 127, 255, 127, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 60, 21, 255, 127, 59, 149, 255, 191, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 125, 37, 255, 127, 124, 165, 255, 191, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 68, 51, 255, 127, 68, 179, 255, 191, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 255, 63, 255, 127, 255, 191, 255, 191, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 186, 76, 255, 127, 186, 204, 255, 191, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 130, 90, 255, 127, 129, 218, 255, 191, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 195, 106, 255, 127, 194, 234, 255, 191, 187, 197, 71, 62, 0, 0, 96, 64, 188, 20, 123, 63, 121, 139, 210, 186, 254, 255, 157, 202, 187, 197, 71, 62, 0, 0, 96, 64, 188, 20, 123, 63, 59, 149, 255, 127, 255, 255, 157, 202, 217, 57, 14, 63, 0, 0, 96, 64, 47, 219, 84, 63, 201, 157, 158, 181, 254, 255, 161, 217, 217, 57, 14, 63, 0, 0, 96, 64, 47, 219, 84, 63, 68, 179, 255, 127, 255, 255, 161, 217, 242, 4, 53, 63, 255, 255, 95, 64, 241, 4, 53, 63, 124, 165, 4, 181, 254, 255, 255, 223, 242, 4, 53, 63, 255, 255, 95, 64, 241, 4, 53, 63, 255, 191, 255, 127, 255, 255, 255, 223, 48, 219, 84, 63, 255, 255, 95, 64, 216, 57, 14, 63, 149, 172, 158, 181, 255, 255, 161, 153, 48, 219, 84, 63, 255, 255, 95, 64, 216, 57, 14, 63, 186, 204, 255, 127, 255, 255, 92, 230, 189, 20, 123, 63, 255, 255, 95, 64, 187, 197, 71, 62, 177, 185, 210, 186, 254, 255, 157, 138, 189, 20, 123, 63, 255, 255, 95, 64, 187, 197, 71, 62, 194, 234, 255, 127, 255, 255, 96, 245, 189, 20, 123, 63, 255, 255, 95, 64, 203, 197, 71, 190, 43, 197, 76, 198, 0, 0, 157, 138, 189, 20, 123, 63, 255, 255, 95, 64, 203, 197, 71, 190, 255, 255, 195, 106, 0, 0, 157, 138, 49, 219, 84, 63, 255, 255, 95, 64, 219, 57, 14, 191, 95, 202, 105, 211, 0, 0, 161, 153, 49, 219, 84, 63, 255, 255, 95, 64, 219, 57, 14, 191, 255, 255, 68, 179, 0, 0, 92, 230, 242, 4, 53, 63, 255, 255, 95, 64, 245, 4, 53, 191, 250, 202, 129, 218, 0, 0, 255, 223, 242, 4, 53, 63, 255, 255, 95, 64, 245, 4, 53, 191, 255, 255, 255, 191, 0, 0, 255, 223, 216, 57, 14, 63, 254, 255, 95, 64, 52, 219, 84, 191, 95, 202, 52, 226, 0, 0, 161, 217, 216, 57, 14, 63, 254, 255, 95, 64, 52, 219, 84, 191, 255, 255, 186, 204, 0, 0, 161, 217, 19, 239, 195, 62, 254, 255, 95, 64, 96, 131, 108, 191, 128, 200, 194, 234, 0, 0, 189, 210, 19, 239, 195, 62, 254, 255, 95, 64, 96, 131, 108, 191, 255, 255, 129, 218, 0, 0, 189, 210, 186, 197, 71, 62, 254, 255, 95, 64, 193, 20, 123, 191, 43, 197, 133, 244, 0, 0, 157, 202, 186, 197, 71, 62, 254, 255, 95, 64, 193, 20, 123, 191, 254, 255, 194, 234, 0, 0, 157, 202, 74, 105, 69, 180, 254, 255, 95, 64, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 255, 191, 74, 105, 69, 180, 254, 255, 95, 64, 0, 0, 128, 191, 255, 191, 254, 255, 0, 0, 255, 191, 196, 197, 71, 190, 254, 255, 95, 64, 193, 20, 123, 191, 0, 0, 60, 21, 60, 21, 255, 191, 196, 197, 71, 190, 254, 255, 95, 64, 193, 20, 123, 191, 211, 58, 133, 244, 60, 21, 255, 191, 25, 239, 195, 190, 254, 255, 95, 64, 96, 131, 108, 191, 0, 0, 129, 218, 125, 37, 255, 191, 25, 239, 195, 190, 254, 255, 95, 64, 96, 131, 108, 191, 126, 55, 194, 234, 125, 37, 255, 191, 220, 57, 14, 191, 254, 255, 95, 64, 50, 219, 84, 191, 0, 0, 186, 204, 68, 51, 255, 191, 220, 57, 14, 191, 254, 255, 95, 64, 50, 219, 84, 191, 159, 53, 52, 226, 68, 51, 255, 191, 48, 219, 84, 191, 255, 255, 95, 64, 223, 57, 14, 191, 0, 0, 68, 179, 186, 76, 255, 191, 48, 219, 84, 191, 255, 255, 95, 64, 223, 57, 14, 191, 159, 53, 105, 211, 186, 76, 255, 191, 191, 20, 123, 191, 255, 255, 95, 64, 207, 197, 71, 190, 0, 0, 59, 149, 195, 106, 255, 191, 191, 20, 123, 191, 255, 255, 95, 64, 207, 197, 71, 190, 211, 58, 76, 198, 195, 106, 255, 191, 191, 20, 123, 191, 255, 255, 95, 64, 191, 197, 71, 62, 60, 21, 255, 127, 59, 149, 255, 191, 191, 20, 123, 191, 255, 255, 95, 64, 191, 197, 71, 62, 77, 70, 210, 186, 59, 149, 255, 191, 52, 219, 84, 191, 255, 255, 95, 64, 213, 57, 14, 63, 68, 51, 255, 127, 68, 179, 255, 191, 52, 219, 84, 191, 255, 255, 95, 64, 213, 57, 14, 63, 105, 83, 158, 181, 68, 179, 255, 191, 246, 4, 53, 191, 255, 255, 95, 64, 240, 4, 53, 63, 255, 63, 255, 127, 255, 191, 255, 191, 246, 4, 53, 191, 255, 255, 95, 64, 240, 4, 53, 63, 130, 90, 4, 181, 255, 191, 255, 191, 220, 57, 14, 191, 0, 0, 96, 64, 47, 219, 84, 63, 186, 76, 255, 127, 186, 204, 255, 191, 220, 57, 14, 191, 0, 0, 96, 64, 47, 219, 84, 63, 53, 98, 158, 181, 186, 204, 255, 191, 195, 197, 71, 190, 0, 0, 96, 64, 189, 20, 123, 63, 195, 106, 255, 127, 194, 234, 255, 191, 195, 197, 71, 190, 0, 0, 96, 64, 189, 20, 123, 63, 133, 116, 210, 186, 194, 234, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 255, 127, 254, 255, 105, 83, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 255, 191, 254, 255, 0, 0, 255, 191, 149, 203, 51, 62, 102, 102, 102, 64, 17, 249, 97, 191, 255, 127, 254, 255, 106, 83, 255, 191, 149, 203, 51, 62, 102, 102, 102, 64, 17, 249, 97, 191, 43, 197, 133, 244, 0, 0, 157, 202, 45, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 191, 255, 127, 254, 255, 105, 83, 255, 191, 45, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 191, 128, 200, 194, 234, 0, 0, 64, 173, 222, 0, 0, 63, 102, 102, 102, 64, 18, 146, 63, 191, 255, 127, 254, 255, 104, 83, 255, 191, 222, 0, 0, 63, 102, 102, 102, 64, 18, 146, 63, 191, 95, 202, 52, 226, 0, 0, 161, 217, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 191, 255, 127, 254, 255, 105, 83, 255, 191, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 191, 250, 202, 129, 218, 0, 0, 255, 223, 18, 146, 63, 63, 102, 102, 102, 64, 222, 0, 0, 191, 255, 127, 254, 255, 106, 83, 255, 191, 18, 146, 63, 63, 102, 102, 102, 64, 222, 0, 0, 191, 95, 202, 105, 211, 0, 0, 161, 153, 94, 131, 108, 63, 0, 0, 96, 64, 21, 239, 195, 190, 128, 200, 186, 204, 0, 0, 190, 146, 94, 131, 108, 63, 0, 0, 96, 64, 21, 239, 195, 190, 254, 255, 124, 165, 0, 0, 64, 237, 161, 220, 84, 63, 102, 102, 102, 64, 44, 87, 176, 190, 255, 127, 254, 255, 105, 83, 255, 191, 161, 220, 84, 63, 102, 102, 102, 64, 44, 87, 176, 190, 128, 200, 186, 204, 0, 0, 190, 146, 17, 249, 97, 63, 102, 102, 102, 64, 150, 203, 51, 190, 255, 127, 254, 255, 105, 83, 255, 191, 17, 249, 97, 63, 102, 102, 102, 64, 150, 203, 51, 190, 43, 197, 76, 198, 0, 0, 157, 138, 0, 0, 128, 63, 0, 0, 96, 64, 46, 189, 59, 51, 255, 191, 255, 191, 0, 0, 255, 255, 0, 0, 128, 63, 0, 0, 96, 64, 46, 189, 59, 51, 254, 255, 255, 127, 255, 255, 255, 127, 102, 102, 102, 63, 102, 102, 102, 64, 16, 247, 40, 51, 255, 127, 254, 255, 105, 83, 255, 191, 102, 102, 102, 63, 102, 102, 102, 64, 16, 247, 40, 51, 255, 191, 255, 191, 0, 0, 254, 255, 17, 249, 97, 63, 102, 102, 102, 64, 149, 203, 51, 62, 255, 127, 254, 255, 105, 83, 255, 191, 17, 249, 97, 63, 102, 102, 102, 64, 149, 203, 51, 62, 177, 185, 210, 186, 254, 255, 157, 138, 95, 131, 108, 63, 0, 0, 96, 64, 20, 239, 195, 62, 68, 179, 125, 183, 255, 255, 64, 237, 95, 131, 108, 63, 0, 0, 96, 64, 20, 239, 195, 62, 129, 218, 255, 127, 255, 255, 190, 146, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 255, 127, 254, 255, 105, 83, 255, 191, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 68, 179, 125, 183, 254, 255, 64, 237, 19, 146, 63, 63, 102, 102, 102, 64, 221, 0, 0, 63, 255, 127, 254, 255, 105, 83, 255, 191, 19, 146, 63, 63, 102, 102, 102, 64, 221, 0, 0, 63, 149, 172, 158, 181, 255, 255, 92, 230, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 63, 255, 127, 254, 255, 105, 83, 255, 191, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 63, 124, 165, 4, 181, 254, 255, 255, 223, 221, 0, 0, 63, 102, 102, 102, 64, 19, 146, 63, 63, 255, 127, 254, 255, 105, 83, 255, 191, 221, 0, 0, 63, 102, 102, 102, 64, 19, 146, 63, 63, 201, 157, 158, 181, 254, 255, 161, 217, 23, 239, 195, 62, 0, 0, 96, 64, 94, 131, 108, 63, 59, 149, 125, 183, 254, 255, 189, 210, 23, 239, 195, 62, 0, 0, 96, 64, 94, 131, 108, 63, 124, 165, 255, 127, 255, 255, 64, 173, 46, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 63, 255, 127, 254, 255, 105, 83, 255, 191, 46, 87, 176, 62, 102, 102, 102, 64, 161, 220, 84, 63, 59, 149, 125, 183, 254, 255, 189, 210, 148, 203, 51, 62, 102, 102, 102, 64, 18, 249, 97, 63, 255, 127, 254, 255, 104, 83, 255, 191, 148, 203, 51, 62, 102, 102, 102, 64, 18, 249, 97, 63, 121, 139, 210, 186, 254, 255, 157, 202, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 255, 127, 255, 191, 66, 250, 188, 197, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 255, 127, 255, 191, 133, 244, 32, 189, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 255, 127, 255, 127, 255, 255, 255, 191, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 255, 127, 255, 127, 255, 255, 255, 191, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 255, 127, 254, 255, 105, 83, 255, 191, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 255, 127, 255, 191, 66, 250, 188, 197, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 255, 127, 255, 191, 133, 244, 32, 189, 144, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 63, 133, 116, 210, 186, 194, 234, 255, 191, 144, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 63, 255, 127, 254, 255, 103, 83, 255, 191, 21, 239, 195, 190, 0, 0, 96, 64, 94, 131, 108, 63, 130, 90, 255, 127, 129, 218, 255, 191, 21, 239, 195, 190, 0, 0, 96, 64, 94, 131, 108, 63, 195, 106, 125, 183, 129, 218, 255, 191, 44, 87, 176, 190, 102, 102, 102, 64, 161, 220, 84, 63, 195, 106, 125, 183, 129, 218, 255, 191, 44, 87, 176, 190, 102, 102, 102, 64, 161, 220, 84, 63, 255, 127, 254, 255, 105, 83, 255, 191, 222, 0, 0, 191, 102, 102, 102, 64, 17, 146, 63, 63, 53, 98, 158, 181, 186, 204, 255, 191, 222, 0, 0, 191, 102, 102, 102, 64, 17, 146, 63, 63, 255, 127, 254, 255, 106, 83, 255, 191, 218, 234, 34, 191, 102, 102, 102, 64, 219, 234, 34, 63, 130, 90, 4, 181, 255, 191, 255, 191, 218, 234, 34, 191, 102, 102, 102, 64, 219, 234, 34, 63, 255, 127, 254, 255, 105, 83, 255, 191, 16, 146, 63, 191, 102, 102, 102, 64, 224, 0, 0, 63, 105, 83, 158, 181, 68, 179, 255, 191, 16, 146, 63, 191, 102, 102, 102, 64, 224, 0, 0, 63, 255, 127, 254, 255, 105, 83, 255, 191, 94, 131, 108, 191, 0, 0, 96, 64, 26, 239, 195, 62, 125, 37, 255, 127, 124, 165, 255, 191, 94, 131, 108, 191, 0, 0, 96, 64, 26, 239, 195, 62, 186, 76, 125, 183, 124, 165, 255, 191, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 186, 76, 125, 183, 124, 165, 255, 191, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 255, 127, 254, 255, 105, 83, 255, 191, 17, 249, 97, 191, 102, 102, 102, 64, 152, 203, 51, 62, 77, 70, 210, 186, 59, 149, 255, 191, 17, 249, 97, 191, 102, 102, 102, 64, 152, 203, 51, 62, 255, 127, 254, 255, 105, 83, 255, 191, 0, 0, 128, 191, 0, 0, 96, 64, 46, 222, 76, 178, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 96, 64, 46, 222, 76, 178, 255, 63, 255, 191, 255, 127, 255, 191, 102, 102, 102, 191, 102, 102, 102, 64, 143, 97, 56, 178, 255, 63, 255, 191, 255, 127, 255, 191, 102, 102, 102, 191, 102, 102, 102, 64, 143, 97, 56, 178, 255, 127, 254, 255, 105, 83, 255, 191, 17, 249, 97, 191, 102, 102, 102, 64, 154, 203, 51, 190, 211, 58, 76, 198, 195, 106, 255, 191, 17, 249, 97, 191, 102, 102, 102, 64, 154, 203, 51, 190, 255, 127, 254, 255, 105, 83, 255, 191, 93, 131, 108, 191, 0, 0, 96, 64, 27, 239, 195, 190, 0, 0, 124, 165, 130, 90, 255, 191, 93, 131, 108, 191, 0, 0, 96, 64, 27, 239, 195, 190, 126, 55, 186, 204, 130, 90, 255, 191, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 126, 55, 186, 204, 130, 90, 255, 191, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 255, 127, 254, 255, 105, 83, 255, 191, 20, 146, 63, 191, 102, 102, 102, 64, 219, 0, 0, 191, 159, 53, 105, 211, 186, 76, 255, 191, 20, 146, 63, 191, 102, 102, 102, 64, 219, 0, 0, 191, 255, 127, 254, 255, 105, 83, 255, 191, 245, 4, 53, 191, 0, 0, 96, 64, 242, 4, 53, 191, 0, 0, 255, 191, 255, 63, 255, 191, 245, 4, 53, 191, 0, 0, 96, 64, 242, 4, 53, 191, 4, 53, 129, 218, 255, 63, 255, 191, 220, 234, 34, 191, 102, 102, 102, 64, 218, 234, 34, 191, 4, 53, 129, 218, 255, 63, 255, 191, 220, 234, 34, 191, 102, 102, 102, 64, 218, 234, 34, 191, 255, 127, 254, 255, 105, 83, 255, 191, 222, 0, 0, 191, 102, 102, 102, 64, 18, 146, 63, 191, 159, 53, 52, 226, 68, 51, 255, 191, 222, 0, 0, 191, 102, 102, 102, 64, 18, 146, 63, 191, 255, 127, 254, 255, 105, 83, 255, 191, 44, 87, 176, 190, 102, 102, 102, 64, 162, 220, 84, 191, 126, 55, 194, 234, 125, 37, 255, 191, 44, 87, 176, 190, 102, 102, 102, 64, 162, 220, 84, 191, 255, 127, 254, 255, 105, 83, 255, 191, 143, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 191, 211, 58, 133, 244, 60, 21, 255, 191, 143, 203, 51, 190, 102, 102, 102, 64, 18, 249, 97, 191, 255, 127, 254, 255, 105, 83, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 162, 138, 118, 93, 255, 255, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 224, 122, 31, 26, 255, 255, 255, 191, 0, 0, 0, 0, 154, 153, 57, 64, 102, 102, 102, 63, 29, 126, 130, 29, 133, 244, 221, 194, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 255, 127, 0, 0, 254, 255, 189, 210, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 9, 213, 212, 99, 254, 255, 189, 210, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 85, 38, 105, 63, 130, 90, 255, 191, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 74, 126, 87, 5, 130, 90, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 25, 9, 244, 80, 255, 63, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 255, 127, 0, 0, 255, 63, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 178, 10, 50, 100, 59, 149, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 152, 107, 198, 27, 59, 149, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 176, 81, 255, 127, 59, 149, 255, 191, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 195, 190, 255, 127, 255, 255, 255, 191, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 139, 90, 255, 127, 255, 255, 255, 191, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 123, 203, 255, 127, 0, 0, 189, 210, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 101, 138, 118, 253, 0, 0, 189, 210, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 230, 75, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 223, 114, 236, 243, 255, 127, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 0, 0, 204, 59, 255, 127, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 250, 150, 159, 225, 0, 0, 255, 191, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 43, 192, 255, 127, 66, 250, 188, 197, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 255, 153, 232, 210, 66, 250, 188, 197, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 20, 89, 255, 127, 133, 244, 32, 189, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 105, 122, 121, 206, 133, 244, 32, 189, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 61, 171, 45, 183, 66, 250, 188, 197, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 238, 124, 201, 225, 133, 244, 32, 189, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 162, 125, 63, 245, 124, 165, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 39, 140, 234, 88, 255, 255, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 77, 114, 34, 90, 255, 255, 255, 191, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 168, 152, 43, 73, 254, 255, 189, 210, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 255, 127, 0, 0, 254, 255, 189, 210, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 255, 127, 0, 0, 125, 37, 255, 191, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 0, 0, 45, 44, 125, 37, 255, 191, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 0, 0, 14, 78, 130, 90, 255, 191, 161, 220, 84, 191, 153, 153, 57, 64, 48, 87, 176, 190, 151, 95, 121, 16, 130, 90, 255, 191, 44, 87, 176, 190, 154, 153, 57, 64, 162, 220, 84, 63, 50, 115, 207, 56, 129, 218, 255, 191, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 115, 177, 14, 88, 255, 255, 190, 146, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 87, 155, 232, 35, 0, 0, 255, 255, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 70, 98, 59, 11, 0, 0, 255, 191, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 0, 0, 201, 44, 0, 0, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 167, 82, 221, 19, 255, 63, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 255, 127, 0, 0, 59, 149, 255, 191, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 190, 121, 108, 13, 186, 204, 255, 191, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 16, 100, 169, 113, 186, 204, 255, 191, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 86, 152, 67, 155, 255, 255, 64, 173, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 180, 166, 66, 172, 255, 255, 92, 230, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 242, 226, 167, 139, 255, 255, 92, 230, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 253, 170, 84, 237, 0, 0, 64, 237, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 102, 243, 161, 136, 0, 0, 64, 237, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 64, 224, 187, 235, 0, 0, 189, 210, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 189, 51, 163, 226, 125, 37, 255, 191, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 192, 12, 227, 247, 125, 37, 255, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 222, 19, 160, 192, 255, 63, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 19, 26, 149, 155, 255, 127, 255, 191, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 254, 63, 2, 147, 255, 191, 255, 191, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 87, 102, 229, 149, 194, 234, 255, 191, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 34, 113, 160, 180, 194, 234, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 116, 162, 247, 251, 0, 0, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 79, 225, 194, 254, 0, 0, 255, 191, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 43, 147, 207, 220, 254, 255, 64, 237, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 123, 205, 208, 163, 254, 255, 64, 237, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 173, 145, 167, 178, 66, 250, 188, 197, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 28, 120, 255, 127, 133, 244, 32, 189, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 138, 120, 215, 213, 133, 244, 32, 189, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 38, 131, 133, 219, 66, 250, 188, 197, 16, 247, 168, 179, 102, 102, 102, 64, 102, 102, 102, 63, 135, 126, 17, 247, 133, 244, 32, 189, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 23, 99, 98, 207, 124, 165, 255, 191, 161, 220, 84, 191, 102, 102, 102, 64, 49, 87, 176, 62, 42, 54, 242, 153, 124, 165, 255, 191, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 4, 70, 139, 219, 130, 90, 255, 191, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 77, 11, 33, 174, 130, 90, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 49, 135, 183, 93, 255, 255, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 119, 111, 184, 98, 255, 255, 255, 191, 45, 87, 176, 62, 154, 153, 57, 64, 161, 220, 84, 63, 253, 136, 78, 16, 254, 255, 189, 210, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 204, 163, 54, 38, 0, 0, 64, 237, 162, 220, 84, 63, 153, 153, 57, 64, 42, 87, 176, 190, 223, 214, 111, 58, 0, 0, 64, 237, 44, 87, 176, 190, 153, 153, 57, 64, 161, 220, 84, 191, 224, 65, 157, 13, 125, 37, 255, 191, 160, 220, 84, 191, 154, 153, 57, 64, 51, 87, 176, 62, 65, 63, 17, 75, 124, 165, 255, 191, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 137, 150, 79, 97, 255, 255, 97, 181, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 134, 148, 37, 72, 255, 255, 64, 173, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 9, 155, 156, 73, 255, 255, 92, 166, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 29, 165, 129, 94, 255, 255, 161, 153, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 76, 165, 2, 55, 255, 255, 161, 153, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 245, 190, 80, 83, 255, 255, 161, 153, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 3, 179, 108, 72, 255, 255, 190, 146, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 74, 193, 104, 78, 255, 255, 157, 138, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 118, 219, 170, 81, 0, 0, 255, 255, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 237, 217, 73, 56, 0, 0, 64, 237, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 97, 202, 191, 43, 0, 0, 92, 230, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 155, 202, 189, 39, 0, 0, 255, 223, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 98, 213, 136, 36, 0, 0, 64, 173, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 178, 138, 193, 0, 0, 0, 64, 173, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 206, 220, 7, 9, 0, 0, 64, 173, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 160, 197, 10, 13, 0, 0, 157, 202, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 248, 209, 49, 1, 0, 0, 255, 191, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 208, 26, 116, 20, 60, 21, 255, 191, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 28, 35, 141, 34, 125, 37, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 61, 53, 155, 35, 255, 63, 255, 191, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 14, 48, 113, 57, 186, 76, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 178, 57, 117, 55, 195, 106, 255, 191, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 45, 59, 144, 57, 255, 127, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 225, 70, 3, 59, 59, 149, 255, 191, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 203, 67, 62, 98, 68, 179, 255, 191, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 60, 84, 187, 66, 68, 179, 255, 191, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 121, 90, 234, 74, 255, 191, 255, 191, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 101, 92, 84, 102, 186, 204, 255, 191, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 239, 147, 39, 151, 255, 255, 157, 202, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 23, 152, 249, 182, 255, 255, 64, 173, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 154, 169, 233, 168, 255, 255, 255, 159, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 39, 162, 255, 127, 255, 255, 255, 159, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 153, 172, 220, 181, 255, 255, 92, 230, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 168, 194, 162, 158, 255, 255, 190, 146, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 1, 177, 32, 219, 0, 0, 255, 127, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 54, 200, 103, 204, 0, 0, 64, 237, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 230, 201, 77, 216, 0, 0, 161, 153, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 69, 202, 239, 224, 0, 0, 161, 217, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 41, 221, 201, 228, 0, 0, 189, 210, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 64, 44, 185, 227, 125, 37, 255, 191, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 156, 53, 17, 224, 68, 51, 255, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 53, 53, 225, 218, 255, 63, 255, 191, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 141, 42, 185, 203, 186, 76, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 158, 61, 52, 195, 195, 106, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 167, 63, 142, 192, 255, 127, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 146, 46, 64, 170, 59, 149, 255, 191, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 43, 75, 232, 163, 68, 179, 255, 191, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 78, 92, 62, 181, 255, 191, 255, 191, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 88, 93, 179, 165, 129, 218, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 139, 162, 188, 249, 0, 0, 255, 191, 0, 0, 0, 0, 102, 102, 102, 64, 102, 102, 102, 191, 227, 45, 61, 255, 0, 0, 255, 191, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 203, 151, 4, 215, 254, 255, 64, 237, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 60, 194, 113, 163, 254, 255, 64, 237, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 78, 144, 66, 156, 66, 250, 188, 197, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 200, 118, 192, 165, 133, 244, 32, 189, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 36, 45, 173, 194, 130, 90, 255, 191, 160, 220, 84, 191, 102, 102, 102, 64, 50, 87, 176, 190, 169, 85, 208, 239, 130, 90, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 24, 133, 199, 86, 255, 255, 255, 191, 0, 0, 0, 0, 1, 0, 64, 64, 0, 0, 128, 63, 124, 118, 231, 101, 255, 255, 255, 191, 102, 102, 102, 63, 154, 153, 57, 64, 204, 57, 208, 178, 16, 202, 119, 83, 254, 255, 254, 255, 218, 234, 34, 191, 153, 153, 57, 64, 219, 234, 34, 191, 23, 39, 125, 47, 255, 63, 255, 191, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 107, 146, 106, 90, 255, 255, 97, 181, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 205, 147, 250, 71, 255, 255, 64, 173, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 69, 150, 159, 72, 255, 255, 92, 166, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 112, 178, 124, 88, 255, 255, 255, 159, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 168, 171, 101, 74, 255, 255, 161, 153, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 53, 175, 116, 73, 255, 255, 190, 146, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 201, 179, 238, 71, 255, 255, 157, 138, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 180, 184, 31, 69, 0, 0, 255, 255, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 56, 213, 128, 68, 0, 0, 96, 245, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 152, 200, 186, 50, 0, 0, 64, 237, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 38, 201, 200, 48, 0, 0, 92, 230, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 236, 227, 231, 54, 0, 0, 255, 223, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 203, 233, 118, 45, 0, 0, 161, 217, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 194, 211, 10, 26, 0, 0, 64, 173, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 110, 197, 160, 12, 0, 0, 157, 202, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 230, 208, 17, 9, 0, 0, 255, 191, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 107, 30, 44, 20, 60, 21, 255, 191, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 120, 55, 181, 21, 125, 37, 255, 191, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 254, 34, 233, 36, 68, 51, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 32, 53, 135, 37, 255, 63, 255, 191, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 188, 26, 129, 55, 186, 76, 255, 191, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 2, 41, 131, 68, 130, 90, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 248, 58, 114, 57, 195, 106, 255, 191, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 183, 60, 206, 59, 255, 127, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 158, 63, 9, 63, 59, 149, 255, 191, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 162, 71, 103, 82, 124, 165, 255, 191, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 103, 83, 61, 74, 68, 179, 255, 191, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 105, 86, 136, 74, 255, 191, 255, 191, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 56, 92, 176, 74, 186, 204, 255, 191, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 211, 96, 222, 98, 129, 218, 255, 191, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 208, 146, 63, 151, 255, 255, 157, 202, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 145, 150, 61, 183, 255, 255, 64, 173, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 72, 162, 242, 175, 255, 255, 92, 166, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 188, 165, 34, 181, 255, 255, 255, 159, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 196, 173, 237, 182, 255, 255, 92, 230, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 34, 182, 19, 185, 255, 255, 190, 146, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 213, 184, 135, 186, 255, 255, 96, 245, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 80, 195, 30, 190, 0, 0, 255, 127, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 192, 196, 22, 198, 0, 0, 157, 138, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 177, 198, 190, 201, 0, 0, 64, 237, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 79, 195, 122, 215, 0, 0, 161, 153, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 99, 202, 29, 223, 0, 0, 255, 223, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 52, 201, 29, 231, 0, 0, 161, 217, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 102, 200, 150, 234, 0, 0, 189, 210, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 209, 203, 195, 239, 0, 0, 157, 202, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 3, 192, 196, 255, 0, 0, 255, 191, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 143, 44, 77, 235, 60, 21, 255, 191, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 159, 55, 205, 234, 125, 37, 255, 191, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 87, 54, 168, 225, 68, 51, 255, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 96, 53, 99, 215, 255, 63, 255, 191, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 188, 53, 31, 212, 186, 76, 255, 191, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 109, 41, 100, 199, 130, 90, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 251, 63, 202, 192, 195, 106, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 203, 67, 0, 189, 255, 127, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 71, 70, 10, 187, 59, 149, 255, 191, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 183, 58, 57, 169, 124, 165, 255, 191, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 105, 73, 213, 158, 68, 179, 255, 191, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 140, 90, 35, 181, 255, 191, 255, 191, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 165, 89, 151, 160, 186, 204, 255, 191, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 27, 106, 121, 183, 129, 218, 255, 191, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 189, 109, 76, 160, 194, 234, 255, 191, 218, 234, 34, 63, 102, 102, 102, 64, 218, 234, 34, 191, 81, 222, 2, 208, 0, 0, 255, 223, 162, 220, 84, 63, 102, 102, 102, 64, 43, 87, 176, 62, 120, 187, 26, 170, 254, 255, 64, 237, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 112, 141, 23, 159, 66, 250, 188, 197, 46, 189, 187, 179, 0, 0, 96, 64, 0, 0, 128, 63, 112, 122, 204, 166, 133, 244, 32, 189) +}, { +"aabb": AABB(-1, 3.1, -1, 2, 0.3, 2.00001), +"attribute_data": PackedByteArray(0, 0, 0, 0, 242, 255, 127, 63, 0, 0, 128, 63, 242, 255, 127, 63, 0, 0, 0, 61, 242, 255, 127, 63, 4, 0, 128, 61, 242, 255, 127, 63, 0, 0, 192, 61, 242, 255, 127, 63, 0, 0, 0, 62, 0, 0, 128, 63, 254, 255, 31, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 96, 62, 0, 0, 128, 63, 0, 0, 128, 62, 0, 0, 128, 63, 0, 0, 144, 62, 0, 0, 128, 63, 0, 0, 160, 62, 0, 0, 128, 63, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 208, 62, 6, 0, 128, 63, 0, 0, 224, 62, 6, 0, 128, 63, 0, 0, 240, 62, 6, 0, 128, 63, 0, 0, 0, 63, 6, 0, 128, 63, 0, 0, 8, 63, 6, 0, 128, 63, 0, 0, 16, 63, 6, 0, 128, 63, 0, 0, 24, 63, 6, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 40, 63, 0, 0, 128, 63, 0, 0, 48, 63, 0, 0, 128, 63, 0, 0, 56, 63, 0, 0, 128, 63, 0, 0, 64, 63, 0, 0, 128, 63, 0, 0, 72, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 88, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 104, 63, 242, 255, 127, 63, 0, 0, 112, 63, 242, 255, 127, 63, 0, 0, 120, 63, 242, 255, 127, 63, 0, 0, 0, 0, 0, 0, 64, 181, 0, 0, 128, 63, 0, 0, 64, 181, 0, 0, 0, 61, 0, 0, 128, 180, 4, 0, 128, 61, 0, 0, 64, 181, 0, 0, 192, 61, 0, 0, 64, 181, 0, 0, 0, 62, 0, 0, 0, 52, 2, 0, 32, 62, 0, 0, 0, 52, 0, 0, 64, 62, 0, 0, 0, 52, 0, 0, 96, 62, 0, 0, 0, 52, 0, 0, 128, 62, 0, 0, 0, 52, 0, 0, 144, 62, 0, 0, 0, 52, 0, 0, 160, 62, 0, 0, 0, 52, 0, 0, 176, 62, 0, 0, 0, 52, 0, 0, 192, 62, 0, 0, 0, 52, 0, 0, 208, 62, 0, 0, 128, 53, 0, 0, 224, 62, 0, 0, 128, 53, 0, 0, 240, 62, 0, 0, 128, 53, 0, 0, 0, 63, 0, 0, 128, 53, 0, 0, 8, 63, 0, 0, 128, 53, 0, 0, 16, 63, 0, 0, 128, 53, 0, 0, 24, 63, 0, 0, 128, 53, 0, 0, 32, 63, 0, 0, 0, 52, 255, 255, 39, 63, 0, 0, 0, 52, 0, 0, 48, 63, 0, 0, 0, 52, 0, 0, 56, 63, 0, 0, 0, 52, 0, 0, 64, 63, 0, 0, 0, 52, 0, 0, 72, 63, 0, 0, 0, 52, 0, 0, 80, 63, 0, 0, 0, 52, 255, 255, 87, 63, 0, 0, 0, 52, 255, 255, 95, 63, 0, 0, 0, 52, 0, 0, 104, 63, 0, 0, 64, 181, 0, 0, 112, 63, 0, 0, 64, 181, 0, 0, 120, 63, 0, 0, 64, 181, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 88, 63, 0, 0, 128, 63), +"format": 4119, "index_count": 192, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 66 -} - -[sub_resource type="ConvexPolygonShape" id=5] -points = PoolVector3Array( -0.000195742, 2.99997, -1, -0.000195742, 3.49996, -1, 0.194988, 2.99997, -0.980814, -0.000195742, 2.9, -0.900157, -0.195184, 2.99997, -0.980814, -0.195184, 3.49996, -0.980814, 0, 3.6, -0.900157, 0.194988, 3.49996, -0.980814, 0.382537, 2.99997, -0.924041, 0.344362, 2.9, -0.831637, 0.175411, 2.9, -0.882733, -0.175607, 2.9, -0.882733, -0.344558, 2.9, -0.831637, -0.382733, 2.99997, -0.924041, -0.382733, 3.49996, -0.924041, -0.344558, 3.6, -0.831637, -0.175607, 3.6, -0.882733, 0.175411, 3.6, -0.882733, 0.344362, 3.6, -0.831637, 0.382537, 3.49996, -0.924041, 0.555403, 2.99997, -0.831637, 0.5, 2.9, -0.748434, -0.500196, 2.9, -0.748434, -0.555599, 2.99997, -0.831637, -0.555599, 3.49996, -0.831637, -0.500196, 3.6, -0.748434, 0.5, 3.6, -0.748434, 0.555403, 3.49996, -0.831637, 0.70693, 2.99997, -0.707126, 0.636257, 2.9, -0.636453, -0.636453, 2.9, -0.636453, -0.707126, 2.99997, -0.707126, -0.707126, 3.49996, -0.707126, -0.636453, 3.6, -0.636453, 0.636257, 3.6, -0.636453, 0.70693, 3.49996, -0.707126, 0.831441, 2.99997, -0.555599, 0.748238, 2.9, -0.500196, -0.748434, 2.9, -0.500196, -0.831637, 2.99997, -0.555599, -0.831637, 3.49996, -0.555599, -0.748434, 3.6, -0.500196, 0.748238, 3.6, -0.500196, 0.831441, 3.49996, -0.555599, 0.923845, 2.99997, -0.382733, 0.831441, 2.9, -0.344558, -0.831637, 2.9, -0.344558, -0.924041, 2.99997, -0.382733, -0.831637, 3.6, -0.344558, -0.924041, 3.49996, -0.382733, 0.831441, 3.6, -0.344558, 0.923845, 3.49996, -0.382733, 0.980619, 2.99997, -0.195184, 0.882537, 2.9, -0.175607, -0.882733, 2.9, -0.175607, -0.980814, 2.99997, -0.195184, -0.980814, 3.49996, -0.195184, -0.882733, 3.6, -0.175607, 0.882537, 3.6, -0.175607, 0.980619, 3.49996, -0.195184, 1, 2.99997, -0.000195742, 0.899961, 2.9, 0, -0.900157, 2.9, 0, -1, 2.99997, 0, -1, 3.09994, -0.000195742, -1, 3.39999, -0.000195742, -1, 3.49996, 0, -0.900157, 3.6, 0, 0.899961, 3.6, 0, 1, 3.49996, 0, 1, 3.39999, -0.000195742, 0.980619, 2.99997, 0.194988, 0.882537, 2.9, 0.175411, -0.882733, 2.9, 0.175411, -0.980814, 2.99997, 0.194988, -0.980814, 3.49996, 0.194988, -0.882733, 3.6, 0.175411, 0.882537, 3.6, 0.175411, 0.980619, 3.49996, 0.194988, 0.923845, 2.99997, 0.382537, 0.831441, 2.9, 0.344362, -0.831637, 2.9, 0.344362, -0.924041, 2.99997, 0.382537, -0.924041, 3.49996, 0.382537, -0.831637, 3.6, 0.344362, 0.831441, 3.6, 0.344362, 0.923845, 3.49996, 0.382537, 0.831441, 2.99997, 0.555403, 0.748238, 2.9, 0.5, -0.748434, 2.9, 0.5, -0.831637, 2.99997, 0.555403, -0.831637, 3.49996, 0.555403, -0.748434, 3.6, 0.5, 0.748238, 3.6, 0.5, 0.831441, 3.49996, 0.555403, 0.70693, 2.99997, 0.70693, 0.636257, 2.9, 0.636257, -0.707126, 2.99997, 0.70693, -0.636453, 2.9, 0.636257, -0.707126, 3.49996, 0.70693, -0.636453, 3.6, 0.636257, 0.70693, 3.49996, 0.70693, 0.636257, 3.6, 0.636257, 0.555403, 2.99997, 0.831441, 0.5, 2.9, 0.748238, -0.500196, 2.9, 0.748238, -0.555599, 2.99997, 0.831441, -0.555599, 3.49996, 0.831441, -0.500196, 3.6, 0.748238, 0.5, 3.6, 0.748238, 0.555403, 3.49996, 0.831441, 0.382537, 2.99997, 0.923845, 0.344362, 2.9, 0.831441, -0.344558, 2.9, 0.831441, -0.382733, 2.99997, 0.923845, -0.382733, 3.49996, 0.923845, -0.344558, 3.6, 0.831441, 0.344362, 3.6, 0.831441, 0.382537, 3.49996, 0.923845, 0.194988, 2.99997, 0.980619, 0.175411, 2.9, 0.882537, -0.175607, 2.9, 0.882537, -0.195184, 2.99997, 0.980619, -0.195184, 3.49996, 0.980619, -0.175607, 3.6, 0.882537, 0.175411, 3.6, 0.882537, 0.194988, 3.49996, 0.980619, 0, 2.99997, 1, 0, 2.9, 0.899961, -0.000195742, 3.09994, 1, -0.000195742, 3.49996, 1, -0.000195742, 3.6, 0.899961 ) - -[sub_resource type="ArrayMesh" id=3] +"index_data": PackedByteArray(13, 0, 47, 0, 14, 0, 13, 0, 46, 0, 47, 0, 27, 0, 61, 0, 28, 0, 27, 0, 60, 0, 61, 0, 14, 0, 48, 0, 15, 0, 14, 0, 47, 0, 48, 0, 0, 0, 35, 0, 2, 0, 0, 0, 33, 0, 35, 0, 28, 0, 62, 0, 29, 0, 28, 0, 61, 0, 62, 0, 15, 0, 49, 0, 16, 0, 15, 0, 48, 0, 49, 0, 2, 0, 36, 0, 3, 0, 2, 0, 35, 0, 36, 0, 29, 0, 63, 0, 30, 0, 29, 0, 62, 0, 63, 0, 16, 0, 50, 0, 17, 0, 16, 0, 49, 0, 50, 0, 3, 0, 37, 0, 4, 0, 3, 0, 36, 0, 37, 0, 30, 0, 64, 0, 31, 0, 30, 0, 63, 0, 64, 0, 17, 0, 51, 0, 18, 0, 17, 0, 50, 0, 51, 0, 4, 0, 38, 0, 5, 0, 4, 0, 37, 0, 38, 0, 31, 0, 65, 0, 32, 0, 31, 0, 64, 0, 65, 0, 18, 0, 52, 0, 19, 0, 18, 0, 51, 0, 52, 0, 5, 0, 39, 0, 6, 0, 5, 0, 38, 0, 39, 0, 32, 0, 34, 0, 1, 0, 32, 0, 65, 0, 34, 0, 19, 0, 53, 0, 20, 0, 19, 0, 52, 0, 53, 0, 6, 0, 40, 0, 7, 0, 6, 0, 39, 0, 40, 0, 20, 0, 54, 0, 21, 0, 20, 0, 53, 0, 54, 0, 7, 0, 41, 0, 8, 0, 7, 0, 40, 0, 41, 0, 21, 0, 55, 0, 22, 0, 21, 0, 54, 0, 55, 0, 8, 0, 42, 0, 9, 0, 8, 0, 41, 0, 42, 0, 22, 0, 56, 0, 23, 0, 22, 0, 55, 0, 56, 0, 9, 0, 43, 0, 10, 0, 9, 0, 42, 0, 43, 0, 23, 0, 57, 0, 24, 0, 23, 0, 56, 0, 57, 0, 10, 0, 44, 0, 11, 0, 10, 0, 43, 0, 44, 0, 24, 0, 58, 0, 25, 0, 24, 0, 57, 0, 58, 0, 11, 0, 45, 0, 12, 0, 11, 0, 44, 0, 45, 0, 25, 0, 59, 0, 26, 0, 25, 0, 58, 0, 59, 0, 12, 0, 46, 0, 13, 0, 12, 0, 45, 0, 46, 0, 26, 0, 60, 0, 27, 0, 26, 0, 59, 0, 60, 0), +"lods": [0.0279969, PackedByteArray(0, 0, 37, 0, 3, 0, 0, 0, 33, 0, 37, 0, 3, 0, 37, 0, 39, 0, 3, 0, 39, 0, 7, 0, 7, 0, 39, 0, 41, 0, 7, 0, 41, 0, 9, 0, 9, 0, 41, 0, 43, 0, 9, 0, 43, 0, 11, 0, 11, 0, 43, 0, 45, 0, 11, 0, 45, 0, 12, 0, 12, 0, 45, 0, 48, 0, 12, 0, 48, 0, 14, 0, 14, 0, 48, 0, 50, 0, 14, 0, 50, 0, 18, 0, 18, 0, 50, 0, 52, 0, 18, 0, 52, 0, 20, 0, 20, 0, 52, 0, 54, 0, 20, 0, 54, 0, 22, 0, 22, 0, 54, 0, 56, 0, 22, 0, 56, 0, 24, 0, 24, 0, 56, 0, 58, 0, 24, 0, 58, 0, 26, 0, 26, 0, 58, 0, 62, 0, 26, 0, 62, 0, 28, 0, 28, 0, 62, 0, 64, 0, 28, 0, 64, 0, 32, 0, 32, 0, 64, 0, 34, 0, 32, 0, 34, 0, 1, 0), 0.105563, PackedByteArray(0, 0, 37, 0, 7, 0, 0, 0, 33, 0, 37, 0, 7, 0, 37, 0, 45, 0, 7, 0, 45, 0, 11, 0, 11, 0, 45, 0, 48, 0, 11, 0, 48, 0, 18, 0, 18, 0, 48, 0, 56, 0, 18, 0, 56, 0, 22, 0, 22, 0, 56, 0, 58, 0, 22, 0, 58, 0, 26, 0, 26, 0, 58, 0, 62, 0, 26, 0, 62, 0, 28, 0, 28, 0, 62, 0, 34, 0, 28, 0, 34, 0, 1, 0), 0.486893, PackedByteArray(0, 0, 37, 0, 66, 0, 0, 0, 33, 0, 37, 0, 66, 0, 37, 0, 48, 0, 7, 0, 48, 0, 28, 0, 28, 0, 48, 0, 62, 0, 67, 0, 62, 0, 34, 0, 67, 0, 34, 0, 1, 0)], +"material": SubResource("StandardMaterial3D_2ke00"), +"primitive": 3, +"vertex_count": 68, +"vertex_data": PackedByteArray(63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 255, 127, 255, 127, 254, 255, 255, 191, 63, 150, 99, 179, 103, 102, 70, 64, 255, 255, 127, 63, 255, 127, 255, 127, 255, 255, 255, 191, 190, 197, 71, 62, 103, 102, 70, 64, 189, 20, 123, 63, 59, 149, 255, 127, 254, 255, 97, 181, 20, 239, 195, 62, 103, 102, 70, 64, 93, 131, 108, 63, 124, 165, 255, 127, 255, 255, 64, 173, 217, 57, 14, 63, 103, 102, 70, 64, 48, 219, 84, 63, 68, 179, 255, 127, 255, 255, 161, 217, 242, 4, 53, 63, 102, 102, 70, 64, 242, 4, 53, 63, 255, 191, 255, 127, 255, 255, 255, 223, 48, 219, 84, 63, 102, 102, 70, 64, 217, 57, 14, 63, 186, 204, 255, 127, 255, 255, 161, 153, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 129, 218, 255, 127, 255, 255, 190, 146, 189, 20, 123, 63, 102, 102, 70, 64, 192, 197, 71, 62, 194, 234, 255, 127, 255, 255, 157, 138, 255, 255, 127, 63, 102, 102, 70, 64, 22, 35, 218, 179, 254, 255, 255, 127, 0, 0, 255, 127, 189, 20, 123, 63, 102, 102, 70, 64, 198, 197, 71, 190, 254, 255, 59, 149, 0, 0, 96, 245, 94, 131, 108, 63, 102, 102, 70, 64, 22, 239, 195, 190, 255, 255, 124, 165, 0, 0, 64, 237, 49, 219, 84, 63, 102, 102, 70, 64, 218, 57, 14, 191, 255, 255, 68, 179, 0, 0, 92, 230, 242, 4, 53, 63, 102, 102, 70, 64, 244, 4, 53, 191, 254, 255, 255, 63, 0, 0, 255, 159, 216, 57, 14, 63, 101, 102, 70, 64, 51, 219, 84, 191, 254, 255, 68, 51, 0, 0, 92, 166, 21, 239, 195, 62, 101, 102, 70, 64, 95, 131, 108, 191, 254, 255, 125, 37, 0, 0, 64, 173, 189, 197, 71, 62, 101, 102, 70, 64, 192, 20, 123, 191, 254, 255, 60, 21, 0, 0, 97, 181, 39, 196, 22, 180, 101, 102, 70, 64, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 255, 191, 193, 197, 71, 190, 101, 102, 70, 64, 192, 20, 123, 191, 0, 0, 60, 21, 60, 21, 255, 191, 23, 239, 195, 190, 101, 102, 70, 64, 95, 131, 108, 191, 0, 0, 125, 37, 125, 37, 255, 191, 220, 57, 14, 191, 101, 102, 70, 64, 49, 219, 84, 191, 0, 0, 68, 51, 68, 51, 255, 191, 243, 4, 53, 191, 102, 102, 70, 64, 245, 4, 53, 191, 0, 0, 255, 63, 255, 63, 255, 191, 48, 219, 84, 191, 102, 102, 70, 64, 222, 57, 14, 191, 0, 0, 186, 76, 186, 76, 255, 191, 95, 131, 108, 191, 102, 102, 70, 64, 28, 239, 195, 190, 0, 0, 130, 90, 130, 90, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 202, 197, 71, 190, 0, 0, 195, 106, 195, 106, 255, 191, 0, 0, 128, 191, 102, 102, 70, 64, 116, 81, 69, 179, 0, 0, 255, 127, 255, 127, 255, 191, 191, 20, 123, 191, 102, 102, 70, 64, 196, 197, 71, 62, 60, 21, 255, 127, 59, 149, 255, 191, 94, 131, 108, 191, 102, 102, 70, 64, 25, 239, 195, 62, 125, 37, 255, 127, 124, 165, 255, 191, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 68, 51, 255, 127, 68, 179, 255, 191, 246, 4, 53, 191, 102, 102, 70, 64, 241, 4, 53, 63, 255, 63, 255, 127, 255, 191, 255, 191, 220, 57, 14, 191, 103, 102, 70, 64, 48, 219, 84, 63, 186, 76, 255, 127, 186, 204, 255, 191, 23, 239, 195, 190, 103, 102, 70, 64, 94, 131, 108, 63, 130, 90, 255, 127, 129, 218, 255, 191, 192, 197, 71, 190, 103, 102, 70, 64, 190, 20, 123, 63, 195, 106, 255, 127, 194, 234, 255, 191, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 255, 127, 255, 127, 254, 255, 255, 191, 98, 198, 153, 179, 154, 153, 89, 64, 254, 255, 127, 63, 255, 127, 255, 127, 255, 255, 255, 191, 189, 197, 71, 62, 154, 153, 89, 64, 188, 20, 123, 63, 59, 149, 255, 127, 254, 255, 97, 181, 19, 239, 195, 62, 154, 153, 89, 64, 92, 131, 108, 63, 124, 165, 255, 127, 254, 255, 64, 173, 217, 57, 14, 63, 154, 153, 89, 64, 47, 219, 84, 63, 68, 179, 255, 127, 255, 255, 161, 217, 242, 4, 53, 63, 153, 153, 89, 64, 241, 4, 53, 63, 255, 191, 255, 127, 255, 255, 255, 223, 48, 219, 84, 63, 153, 153, 89, 64, 216, 57, 14, 63, 186, 204, 255, 127, 255, 255, 161, 153, 93, 131, 108, 63, 153, 153, 89, 64, 17, 239, 195, 62, 129, 218, 255, 127, 255, 255, 64, 237, 189, 20, 123, 63, 153, 153, 89, 64, 188, 197, 71, 62, 194, 234, 255, 127, 255, 255, 96, 245, 255, 255, 127, 63, 153, 153, 89, 64, 203, 51, 43, 180, 254, 255, 255, 127, 0, 0, 255, 255, 189, 20, 123, 63, 153, 153, 89, 64, 202, 197, 71, 190, 255, 255, 195, 106, 0, 0, 157, 138, 94, 131, 108, 63, 153, 153, 89, 64, 24, 239, 195, 190, 255, 255, 124, 165, 0, 0, 64, 237, 49, 219, 84, 63, 153, 153, 89, 64, 219, 57, 14, 191, 255, 255, 186, 76, 0, 0, 161, 153, 242, 4, 53, 63, 153, 153, 89, 64, 245, 4, 53, 191, 255, 255, 255, 63, 0, 0, 255, 223, 216, 57, 14, 63, 152, 153, 89, 64, 52, 219, 84, 191, 255, 255, 186, 204, 0, 0, 161, 217, 20, 239, 195, 62, 152, 153, 89, 64, 96, 131, 108, 191, 255, 255, 129, 218, 0, 0, 189, 210, 188, 197, 71, 62, 152, 153, 89, 64, 193, 20, 123, 191, 254, 255, 194, 234, 0, 0, 157, 202, 200, 193, 42, 180, 152, 153, 89, 64, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 255, 191, 194, 197, 71, 190, 152, 153, 89, 64, 193, 20, 123, 191, 0, 0, 60, 21, 60, 21, 255, 191, 24, 239, 195, 190, 152, 153, 89, 64, 96, 131, 108, 191, 0, 0, 125, 37, 125, 37, 255, 191, 220, 57, 14, 191, 152, 153, 89, 64, 50, 219, 84, 191, 0, 0, 68, 51, 68, 51, 255, 191, 243, 4, 53, 191, 153, 153, 89, 64, 246, 4, 53, 191, 0, 0, 255, 191, 255, 63, 255, 191, 48, 219, 84, 191, 153, 153, 89, 64, 223, 57, 14, 191, 0, 0, 68, 179, 186, 76, 255, 191, 95, 131, 108, 191, 153, 153, 89, 64, 30, 239, 195, 190, 0, 0, 124, 165, 130, 90, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 206, 197, 71, 190, 0, 0, 59, 149, 195, 106, 255, 191, 0, 0, 128, 191, 153, 153, 89, 64, 58, 237, 222, 179, 0, 0, 255, 127, 255, 127, 255, 191, 191, 20, 123, 191, 153, 153, 89, 64, 192, 197, 71, 62, 60, 21, 255, 127, 59, 149, 255, 191, 94, 131, 108, 191, 153, 153, 89, 64, 23, 239, 195, 62, 125, 37, 255, 127, 124, 165, 255, 191, 52, 219, 84, 191, 153, 153, 89, 64, 213, 57, 14, 63, 68, 51, 255, 127, 68, 179, 255, 191, 246, 4, 53, 191, 153, 153, 89, 64, 240, 4, 53, 63, 255, 63, 255, 127, 255, 191, 255, 191, 220, 57, 14, 191, 154, 153, 89, 64, 47, 219, 84, 63, 186, 76, 255, 127, 186, 204, 255, 191, 24, 239, 195, 190, 154, 153, 89, 64, 93, 131, 108, 63, 130, 90, 255, 127, 129, 218, 255, 191, 193, 197, 71, 190, 154, 153, 89, 64, 189, 20, 123, 63, 195, 106, 255, 127, 194, 234, 255, 191, 93, 131, 108, 63, 102, 102, 70, 64, 19, 239, 195, 62, 208, 203, 255, 127, 255, 255, 190, 146, 52, 219, 84, 191, 102, 102, 70, 64, 214, 57, 14, 63, 138, 75, 255, 127, 68, 179, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_kdkqu") + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_dma6l"] +points = PackedVector3Array(-0.000195742, 2.99997, -1, -0.000195742, 3.49996, -1, 0.194988, 2.99997, -0.980814, -0.000195742, 2.9, -0.900157, -0.195184, 2.99997, -0.980814, -0.195184, 3.49996, -0.980814, 0, 3.6, -0.900157, 0.194988, 3.49996, -0.980814, 0.382537, 2.99997, -0.924041, 0.344362, 2.9, -0.831637, 0.175411, 2.9, -0.882733, -0.175607, 2.9, -0.882733, -0.344558, 2.9, -0.831637, -0.382733, 2.99997, -0.924041, -0.175607, 3.6, -0.882733, -0.382733, 3.49996, -0.924041, -0.344558, 3.6, -0.831637, 0.175411, 3.6, -0.882733, 0.344362, 3.6, -0.831637, 0.382537, 3.49996, -0.924041, 0.555403, 2.99997, -0.831637, 0.5, 2.9, -0.748434, -0.500196, 2.9, -0.748434, -0.555599, 2.99997, -0.831637, -0.555599, 3.49996, -0.831637, -0.500196, 3.6, -0.748434, 0.5, 3.6, -0.748434, 0.555403, 3.49996, -0.831637, 0.70693, 2.99997, -0.707126, 0.636257, 2.9, -0.636453, -0.636453, 2.9, -0.636453, -0.707126, 2.99997, -0.707126, -0.707126, 3.49996, -0.707126, -0.636453, 3.6, -0.636453, 0.636257, 3.6, -0.636453, 0.70693, 3.49996, -0.707126, 0.831441, 2.99997, -0.555599, 0.748238, 2.9, -0.500196, -0.748434, 2.9, -0.500196, -0.831637, 2.99997, -0.555599, -0.831637, 3.49996, -0.555599, -0.748434, 3.6, -0.500196, 0.748238, 3.6, -0.500196, 0.831441, 3.49996, -0.555599, 0.923845, 2.99997, -0.382733, 0.831441, 2.9, -0.344558, -0.831637, 2.9, -0.344558, -0.924041, 2.99997, -0.382733, -0.831637, 3.6, -0.344558, -0.924041, 3.49996, -0.382733, 0.831441, 3.6, -0.344558, 0.923845, 3.49996, -0.382733, 0.980619, 2.99997, -0.195184, 0.882537, 2.9, -0.175607, -0.882733, 2.9, -0.175607, -0.980814, 2.99997, -0.195184, -0.980814, 3.49996, -0.195184, -0.882733, 3.6, -0.175607, 0.882537, 3.6, -0.175607, 0.980619, 3.49996, -0.195184, 1, 2.99997, -0.000195742, 0.899961, 2.9, 0, -0.900157, 2.9, 0, -1, 2.99997, 0, -1, 3.09994, -0.000195742, -1, 3.39999, -0.000195742, -1, 3.49996, 0, -0.900157, 3.6, 0, 0.899961, 3.6, 0, 1, 3.49996, 0, 1, 3.39999, -0.000195742, 0.980619, 2.99997, 0.194988, 0.882537, 2.9, 0.175411, -0.882733, 2.9, 0.175411, -0.980814, 2.99997, 0.194988, -0.980814, 3.49996, 0.194988, -0.882733, 3.6, 0.175411, 0.882537, 3.6, 0.175411, 0.980619, 3.49996, 0.194988, 0.923845, 2.99997, 0.382537, 0.831441, 2.9, 0.344362, -0.831637, 2.9, 0.344362, -0.924041, 2.99997, 0.382537, -0.924041, 3.49996, 0.382537, -0.831637, 3.6, 0.344362, 0.831441, 3.6, 0.344362, 0.923845, 3.49996, 0.382537, 0.831441, 2.99997, 0.555403, 0.748238, 2.9, 0.5, -0.748434, 2.9, 0.5, -0.831637, 2.99997, 0.555403, -0.831637, 3.49996, 0.555403, -0.748434, 3.6, 0.5, 0.748238, 3.6, 0.5, 0.831441, 3.49996, 0.555403, 0.70693, 2.99997, 0.70693, 0.636257, 2.9, 0.636257, -0.707126, 2.99997, 0.70693, -0.636453, 2.9, 0.636257, -0.707126, 3.49996, 0.70693, -0.636453, 3.6, 0.636257, 0.70693, 3.49996, 0.70693, 0.636257, 3.6, 0.636257, 0.555403, 2.99997, 0.831441, 0.5, 2.9, 0.748238, -0.500196, 2.9, 0.748238, -0.555599, 2.99997, 0.831441, -0.555599, 3.49996, 0.831441, -0.500196, 3.6, 0.748238, 0.5, 3.6, 0.748238, 0.555403, 3.49996, 0.831441, 0.382537, 2.99997, 0.923845, 0.344362, 2.9, 0.831441, -0.344558, 2.9, 0.831441, -0.382733, 2.99997, 0.923845, -0.382733, 3.49996, 0.923845, -0.344558, 3.6, 0.831441, 0.344362, 3.6, 0.831441, 0.382537, 3.49996, 0.923845, 0.194988, 2.99997, 0.980619, 0.175411, 2.9, 0.882537, -0.175607, 2.9, 0.882537, -0.195184, 2.99997, 0.980619, -0.195184, 3.49996, 0.980619, -0.175607, 3.6, 0.882537, 0.175411, 3.6, 0.882537, 0.194988, 3.49996, 0.980619, 0, 2.99997, 1, 0, 2.9, 0.899961, -0.000195742, 3.09994, 1, -0.000195742, 3.49996, 1, -0.000195742, 3.6, 0.899961) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_37d4w"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_4xmya"] +_surfaces = [{ +"aabb": AABB(-0.85, -1.4, -0.85, 1.7, 2.8, 1.7), +"format": 4097, +"index_count": 192, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 35, 0, 33, 0, 32, 0, 34, 0, 35, 0, 34, 0, 37, 0, 35, 0, 34, 0, 36, 0, 37, 0, 36, 0, 39, 0, 37, 0, 36, 0, 38, 0, 39, 0, 38, 0, 41, 0, 39, 0, 38, 0, 40, 0, 41, 0, 40, 0, 43, 0, 41, 0, 40, 0, 42, 0, 43, 0, 42, 0, 45, 0, 43, 0, 42, 0, 44, 0, 45, 0, 44, 0, 47, 0, 45, 0, 44, 0, 46, 0, 47, 0, 46, 0, 49, 0, 47, 0, 46, 0, 48, 0, 49, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 50, 0, 53, 0, 51, 0, 50, 0, 52, 0, 53, 0, 52, 0, 55, 0, 53, 0, 52, 0, 54, 0, 55, 0, 54, 0, 57, 0, 55, 0, 54, 0, 56, 0, 57, 0, 56, 0, 59, 0, 57, 0, 56, 0, 58, 0, 59, 0, 58, 0, 61, 0, 59, 0, 58, 0, 60, 0, 61, 0, 60, 0, 63, 0, 61, 0, 60, 0, 62, 0, 63, 0, 62, 0, 1, 0, 63, 0, 62, 0, 0, 0, 1, 0), +"lods": [0.0371179, PackedByteArray(2, 0, 9, 0, 5, 0, 2, 0, 10, 0, 9, 0, 62, 0, 2, 0, 5, 0, 10, 0, 13, 0, 9, 0, 62, 0, 5, 0, 63, 0, 10, 0, 14, 0, 13, 0, 60, 0, 62, 0, 63, 0, 14, 0, 17, 0, 13, 0, 60, 0, 63, 0, 59, 0, 14, 0, 18, 0, 17, 0, 56, 0, 60, 0, 59, 0, 18, 0, 21, 0, 17, 0, 56, 0, 59, 0, 55, 0, 18, 0, 22, 0, 21, 0, 52, 0, 56, 0, 55, 0, 22, 0, 25, 0, 21, 0, 52, 0, 55, 0, 51, 0, 22, 0, 26, 0, 25, 0, 48, 0, 52, 0, 51, 0, 26, 0, 29, 0, 25, 0, 48, 0, 51, 0, 47, 0, 26, 0, 30, 0, 29, 0, 30, 0, 33, 0, 29, 0, 30, 0, 32, 0, 33, 0, 44, 0, 48, 0, 47, 0, 44, 0, 47, 0, 43, 0, 40, 0, 44, 0, 43, 0, 40, 0, 43, 0, 39, 0, 36, 0, 40, 0, 39, 0, 36, 0, 39, 0, 35, 0, 32, 0, 36, 0, 35, 0, 32, 0, 35, 0, 33, 0), 0.139951, PackedByteArray(10, 0, 21, 0, 5, 0, 10, 0, 18, 0, 21, 0, 18, 0, 29, 0, 21, 0, 18, 0, 26, 0, 29, 0, 26, 0, 33, 0, 29, 0, 26, 0, 32, 0, 33, 0, 60, 0, 10, 0, 5, 0, 60, 0, 5, 0, 63, 0, 52, 0, 60, 0, 63, 0, 52, 0, 63, 0, 55, 0, 44, 0, 52, 0, 55, 0, 44, 0, 55, 0, 47, 0, 36, 0, 44, 0, 47, 0, 36, 0, 47, 0, 39, 0, 32, 0, 36, 0, 39, 0, 32, 0, 39, 0, 33, 0), 0.399284, PackedByteArray(10, 0, 21, 0, 5, 0, 10, 0, 26, 0, 21, 0, 26, 0, 32, 0, 33, 0, 26, 0, 33, 0, 21, 0, 32, 0, 39, 0, 33, 0, 32, 0, 44, 0, 39, 0, 44, 0, 5, 0, 39, 0, 44, 0, 10, 0, 5, 0), 0.844305, PackedByteArray(10, 0, 33, 0, 39, 0, 10, 0, 32, 0, 33, 0, 32, 0, 39, 0, 33, 0, 32, 0, 10, 0, 39, 0)], +"primitive": 3, +"vertex_count": 64, +"vertex_data": PackedByteArray(0, 0, 0, 0, 51, 51, 179, 191, 154, 153, 89, 191, 0, 0, 0, 0, 51, 51, 179, 63, 154, 153, 89, 191, 127, 206, 41, 62, 51, 51, 179, 191, 59, 107, 85, 191, 127, 206, 41, 62, 51, 51, 179, 63, 59, 107, 85, 191, 57, 139, 166, 62, 51, 51, 179, 191, 67, 9, 73, 191, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 192, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 191, 192, 200, 241, 62, 51, 51, 179, 63, 132, 237, 52, 191, 207, 221, 25, 63, 51, 51, 179, 191, 207, 221, 25, 191, 207, 221, 25, 63, 51, 51, 179, 63, 207, 221, 25, 191, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 132, 237, 52, 63, 51, 51, 179, 63, 192, 200, 241, 190, 67, 9, 73, 63, 51, 51, 179, 191, 57, 139, 166, 190, 67, 9, 73, 63, 51, 51, 179, 63, 57, 139, 166, 190, 59, 107, 85, 63, 51, 51, 179, 191, 129, 206, 41, 190, 59, 107, 85, 63, 51, 51, 179, 63, 129, 206, 41, 190, 154, 153, 89, 63, 51, 51, 179, 191, 1, 148, 31, 51, 154, 153, 89, 63, 51, 51, 179, 63, 1, 148, 31, 51, 59, 107, 85, 63, 51, 51, 179, 191, 127, 206, 41, 62, 59, 107, 85, 63, 51, 51, 179, 63, 127, 206, 41, 62, 68, 9, 73, 63, 51, 51, 179, 191, 56, 139, 166, 62, 68, 9, 73, 63, 51, 51, 179, 63, 56, 139, 166, 62, 132, 237, 52, 63, 51, 51, 179, 191, 190, 200, 241, 62, 132, 237, 52, 63, 51, 51, 179, 63, 190, 200, 241, 62, 207, 221, 25, 63, 51, 51, 179, 191, 207, 221, 25, 63, 207, 221, 25, 63, 51, 51, 179, 63, 207, 221, 25, 63, 190, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 63, 190, 200, 241, 62, 51, 51, 179, 63, 132, 237, 52, 63, 58, 139, 166, 62, 51, 51, 179, 191, 67, 9, 73, 63, 58, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 63, 126, 206, 41, 62, 51, 51, 179, 191, 60, 107, 85, 63, 126, 206, 41, 62, 51, 51, 179, 63, 60, 107, 85, 63, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 123, 206, 41, 190, 51, 51, 179, 191, 60, 107, 85, 63, 123, 206, 41, 190, 51, 51, 179, 63, 60, 107, 85, 63, 57, 139, 166, 190, 51, 51, 179, 191, 67, 9, 73, 63, 57, 139, 166, 190, 51, 51, 179, 63, 67, 9, 73, 63, 194, 200, 241, 190, 51, 51, 179, 191, 131, 237, 52, 63, 194, 200, 241, 190, 51, 51, 179, 63, 131, 237, 52, 63, 206, 221, 25, 191, 51, 51, 179, 191, 208, 221, 25, 63, 206, 221, 25, 191, 51, 51, 179, 63, 208, 221, 25, 63, 130, 237, 52, 191, 51, 51, 179, 191, 197, 200, 241, 62, 130, 237, 52, 191, 51, 51, 179, 63, 197, 200, 241, 62, 67, 9, 73, 191, 51, 51, 179, 191, 61, 139, 166, 62, 67, 9, 73, 191, 51, 51, 179, 63, 61, 139, 166, 62, 59, 107, 85, 191, 51, 51, 179, 191, 130, 206, 41, 62, 59, 107, 85, 191, 51, 51, 179, 63, 130, 206, 41, 62, 154, 153, 89, 191, 51, 51, 179, 191, 65, 35, 46, 178, 154, 153, 89, 191, 51, 51, 179, 63, 65, 35, 46, 178, 59, 107, 85, 191, 51, 51, 179, 191, 132, 206, 41, 190, 59, 107, 85, 191, 51, 51, 179, 63, 132, 206, 41, 190, 67, 9, 73, 191, 51, 51, 179, 191, 62, 139, 166, 190, 67, 9, 73, 191, 51, 51, 179, 63, 62, 139, 166, 190, 133, 237, 52, 191, 51, 51, 179, 191, 187, 200, 241, 190, 133, 237, 52, 191, 51, 51, 179, 63, 187, 200, 241, 190, 209, 221, 25, 191, 51, 51, 179, 191, 206, 221, 25, 191, 209, 221, 25, 191, 51, 51, 179, 63, 206, 221, 25, 191, 194, 200, 241, 190, 51, 51, 179, 191, 132, 237, 52, 191, 194, 200, 241, 190, 51, 51, 179, 63, 132, 237, 52, 191, 57, 139, 166, 190, 51, 51, 179, 191, 68, 9, 73, 191, 57, 139, 166, 190, 51, 51, 179, 63, 68, 9, 73, 191, 122, 206, 41, 190, 51, 51, 179, 191, 60, 107, 85, 191, 122, 206, 41, 190, 51, 51, 179, 63, 60, 107, 85, 191) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_b4xkm"] resource_name = "teleport_Cylinder" -surfaces/0 = { -"aabb": AABB( -0.85, -1.4, -0.85, 1.7, 2.8, 1.7 ), -"array_data": PoolByteArray( 0, 0, 0, 0, 51, 51, 179, 191, 154, 153, 89, 191, 127, 126, 129, 63, 0, 56, 0, 60, 0, 0, 0, 0, 51, 51, 179, 63, 154, 153, 89, 191, 127, 126, 129, 63, 0, 56, 0, 0, 127, 206, 41, 62, 51, 51, 179, 191, 59, 107, 85, 191, 127, 105, 129, 74, 128, 55, 0, 60, 127, 206, 41, 62, 51, 51, 179, 63, 59, 107, 85, 191, 127, 105, 129, 74, 128, 55, 0, 0, 57, 139, 166, 62, 51, 51, 179, 191, 67, 9, 73, 191, 127, 89, 129, 82, 0, 55, 0, 60, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 127, 89, 129, 82, 0, 55, 0, 0, 192, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 191, 127, 76, 129, 88, 128, 54, 0, 60, 192, 200, 241, 62, 51, 51, 179, 63, 132, 237, 52, 191, 127, 76, 129, 88, 128, 54, 0, 0, 207, 221, 25, 63, 51, 51, 179, 191, 207, 221, 25, 191, 127, 63, 129, 95, 0, 54, 0, 60, 207, 221, 25, 63, 51, 51, 179, 63, 207, 221, 25, 191, 127, 63, 129, 95, 0, 54, 0, 0, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 127, 50, 129, 101, 128, 53, 0, 60, 132, 237, 52, 63, 51, 51, 179, 63, 192, 200, 241, 190, 127, 50, 129, 101, 128, 53, 0, 0, 67, 9, 73, 63, 51, 51, 179, 191, 57, 139, 166, 190, 127, 37, 129, 108, 0, 53, 0, 60, 67, 9, 73, 63, 51, 51, 179, 63, 57, 139, 166, 190, 127, 37, 129, 108, 0, 53, 0, 0, 59, 107, 85, 63, 51, 51, 179, 191, 129, 206, 41, 190, 127, 21, 129, 116, 128, 52, 0, 60, 59, 107, 85, 63, 51, 51, 179, 63, 129, 206, 41, 190, 127, 21, 129, 116, 128, 52, 0, 0, 154, 153, 89, 63, 51, 51, 179, 191, 1, 148, 31, 51, 127, 0, 127, 127, 0, 52, 0, 60, 154, 153, 89, 63, 51, 51, 179, 63, 1, 148, 31, 51, 127, 0, 127, 127, 0, 52, 0, 0, 59, 107, 85, 63, 51, 51, 179, 191, 127, 206, 41, 62, 105, 0, 127, 116, 0, 51, 0, 60, 59, 107, 85, 63, 51, 51, 179, 63, 127, 206, 41, 62, 105, 0, 127, 116, 0, 51, 0, 0, 68, 9, 73, 63, 51, 51, 179, 191, 56, 139, 166, 62, 89, 0, 127, 108, 0, 50, 0, 60, 68, 9, 73, 63, 51, 51, 179, 63, 56, 139, 166, 62, 89, 0, 127, 108, 0, 50, 0, 0, 132, 237, 52, 63, 51, 51, 179, 191, 190, 200, 241, 62, 76, 0, 127, 101, 0, 49, 0, 60, 132, 237, 52, 63, 51, 51, 179, 63, 190, 200, 241, 62, 76, 0, 127, 101, 0, 49, 0, 0, 207, 221, 25, 63, 51, 51, 179, 191, 207, 221, 25, 63, 63, 0, 127, 95, 0, 48, 0, 60, 207, 221, 25, 63, 51, 51, 179, 63, 207, 221, 25, 63, 63, 0, 127, 95, 0, 48, 0, 0, 190, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 63, 50, 0, 127, 88, 0, 46, 0, 60, 190, 200, 241, 62, 51, 51, 179, 63, 132, 237, 52, 63, 50, 0, 127, 88, 0, 46, 0, 0, 58, 139, 166, 62, 51, 51, 179, 191, 67, 9, 73, 63, 37, 0, 127, 82, 0, 44, 0, 60, 58, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 63, 37, 0, 127, 82, 0, 44, 0, 0, 126, 206, 41, 62, 51, 51, 179, 191, 60, 107, 85, 63, 21, 0, 127, 74, 0, 40, 0, 60, 126, 206, 41, 62, 51, 51, 179, 63, 60, 107, 85, 63, 21, 0, 127, 74, 0, 40, 0, 0, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 0, 0, 127, 63, 0, 0, 0, 60, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 0, 0, 126, 63, 0, 60, 0, 60, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 0, 0, 127, 63, 0, 0, 0, 0, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 0, 0, 126, 63, 0, 60, 0, 0, 123, 206, 41, 190, 51, 51, 179, 191, 60, 107, 85, 63, 235, 0, 105, 63, 192, 59, 0, 60, 123, 206, 41, 190, 51, 51, 179, 63, 60, 107, 85, 63, 235, 0, 105, 63, 192, 59, 0, 0, 57, 139, 166, 190, 51, 51, 179, 191, 67, 9, 73, 63, 219, 0, 89, 63, 128, 59, 0, 60, 57, 139, 166, 190, 51, 51, 179, 63, 67, 9, 73, 63, 219, 0, 89, 63, 128, 59, 0, 0, 194, 200, 241, 190, 51, 51, 179, 191, 131, 237, 52, 63, 206, 0, 76, 63, 64, 59, 0, 60, 194, 200, 241, 190, 51, 51, 179, 63, 131, 237, 52, 63, 206, 0, 76, 63, 64, 59, 0, 0, 206, 221, 25, 191, 51, 51, 179, 191, 208, 221, 25, 63, 193, 0, 63, 63, 0, 59, 0, 60, 206, 221, 25, 191, 51, 51, 179, 63, 208, 221, 25, 63, 193, 0, 63, 63, 0, 59, 0, 0, 130, 237, 52, 191, 51, 51, 179, 191, 197, 200, 241, 62, 180, 0, 50, 63, 192, 58, 0, 60, 130, 237, 52, 191, 51, 51, 179, 63, 197, 200, 241, 62, 180, 0, 50, 63, 192, 58, 0, 0, 67, 9, 73, 191, 51, 51, 179, 191, 61, 139, 166, 62, 167, 0, 37, 63, 128, 58, 0, 60, 67, 9, 73, 191, 51, 51, 179, 63, 61, 139, 166, 62, 167, 0, 37, 63, 128, 58, 0, 0, 59, 107, 85, 191, 51, 51, 179, 191, 130, 206, 41, 62, 151, 0, 21, 63, 64, 58, 0, 60, 59, 107, 85, 191, 51, 51, 179, 63, 130, 206, 41, 62, 151, 0, 21, 63, 64, 58, 0, 0, 154, 153, 89, 191, 51, 51, 179, 191, 65, 35, 46, 178, 129, 0, 0, 63, 0, 58, 0, 60, 154, 153, 89, 191, 51, 51, 179, 63, 65, 35, 46, 178, 129, 0, 0, 63, 0, 58, 0, 0, 59, 107, 85, 191, 51, 51, 179, 191, 132, 206, 41, 190, 129, 21, 235, 63, 192, 57, 0, 60, 59, 107, 85, 191, 51, 51, 179, 63, 132, 206, 41, 190, 129, 21, 235, 63, 192, 57, 0, 0, 67, 9, 73, 191, 51, 51, 179, 191, 62, 139, 166, 190, 129, 37, 219, 63, 127, 57, 0, 60, 67, 9, 73, 191, 51, 51, 179, 63, 62, 139, 166, 190, 129, 37, 219, 63, 127, 57, 0, 0, 133, 237, 52, 191, 51, 51, 179, 191, 187, 200, 241, 190, 129, 50, 206, 63, 64, 57, 0, 60, 133, 237, 52, 191, 51, 51, 179, 63, 187, 200, 241, 190, 129, 50, 206, 63, 64, 57, 0, 0, 209, 221, 25, 191, 51, 51, 179, 191, 206, 221, 25, 191, 129, 63, 193, 63, 0, 57, 0, 60, 209, 221, 25, 191, 51, 51, 179, 63, 206, 221, 25, 191, 129, 63, 193, 63, 0, 57, 0, 0, 194, 200, 241, 190, 51, 51, 179, 191, 132, 237, 52, 191, 129, 76, 180, 63, 192, 56, 0, 60, 194, 200, 241, 190, 51, 51, 179, 63, 132, 237, 52, 191, 129, 76, 180, 63, 192, 56, 0, 0, 57, 139, 166, 190, 51, 51, 179, 191, 68, 9, 73, 191, 129, 89, 167, 63, 128, 56, 0, 60, 57, 139, 166, 190, 51, 51, 179, 63, 68, 9, 73, 191, 129, 89, 167, 63, 128, 56, 0, 0, 122, 206, 41, 190, 51, 51, 179, 191, 60, 107, 85, 191, 129, 105, 151, 63, 64, 56, 0, 60, 122, 206, 41, 190, 51, 51, 179, 63, 60, 107, 85, 191, 129, 105, 151, 63, 64, 56, 0, 0 ), -"array_index_data": PoolByteArray( 0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 34, 0, 31, 0, 30, 0, 32, 0, 34, 0, 33, 0, 37, 0, 35, 0, 33, 0, 36, 0, 37, 0, 36, 0, 39, 0, 37, 0, 36, 0, 38, 0, 39, 0, 38, 0, 41, 0, 39, 0, 38, 0, 40, 0, 41, 0, 40, 0, 43, 0, 41, 0, 40, 0, 42, 0, 43, 0, 42, 0, 45, 0, 43, 0, 42, 0, 44, 0, 45, 0, 44, 0, 47, 0, 45, 0, 44, 0, 46, 0, 47, 0, 46, 0, 49, 0, 47, 0, 46, 0, 48, 0, 49, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 50, 0, 53, 0, 51, 0, 50, 0, 52, 0, 53, 0, 52, 0, 55, 0, 53, 0, 52, 0, 54, 0, 55, 0, 54, 0, 57, 0, 55, 0, 54, 0, 56, 0, 57, 0, 56, 0, 59, 0, 57, 0, 56, 0, 58, 0, 59, 0, 58, 0, 61, 0, 59, 0, 58, 0, 60, 0, 61, 0, 60, 0, 63, 0, 61, 0, 60, 0, 62, 0, 63, 0, 62, 0, 65, 0, 63, 0, 62, 0, 64, 0, 65, 0, 64, 0, 1, 0, 65, 0, 64, 0, 0, 0, 1, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.85, -1.4, -0.85, 1.7, 2.8, 1.7), +"attribute_data": PackedByteArray(0, 0, 0, 63, 0, 0, 128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 240, 62, 0, 0, 128, 63, 0, 0, 240, 62, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 208, 62, 0, 0, 128, 63, 0, 0, 208, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 176, 62, 0, 0, 0, 0, 0, 0, 160, 62, 0, 0, 128, 63, 0, 0, 160, 62, 0, 0, 0, 0, 0, 0, 144, 62, 0, 0, 128, 63, 0, 0, 144, 62, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 128, 63, 0, 0, 128, 62, 0, 0, 0, 0, 0, 0, 96, 62, 0, 0, 128, 63, 0, 0, 96, 62, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 0, 0, 2, 0, 32, 62, 0, 0, 128, 63, 2, 0, 32, 62, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 128, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 192, 61, 0, 0, 128, 63, 0, 0, 192, 61, 0, 0, 0, 0, 4, 0, 128, 61, 0, 0, 128, 63, 4, 0, 128, 61, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 128, 63, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 120, 63, 0, 0, 128, 63, 0, 0, 120, 63, 0, 0, 0, 0, 0, 0, 112, 63, 0, 0, 128, 63, 0, 0, 112, 63, 0, 0, 0, 0, 0, 0, 104, 63, 0, 0, 128, 63, 0, 0, 104, 63, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 0, 0, 0, 0, 88, 63, 0, 0, 128, 63, 0, 0, 88, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 72, 63, 0, 0, 128, 63, 0, 0, 72, 63, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 128, 63, 0, 0, 64, 63, 0, 0, 0, 0, 0, 0, 56, 63, 0, 0, 128, 63, 0, 0, 56, 63, 0, 0, 0, 0, 255, 255, 47, 63, 0, 0, 128, 63, 255, 255, 47, 63, 0, 0, 0, 0, 0, 0, 40, 63, 0, 0, 128, 63, 0, 0, 40, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 24, 63, 0, 0, 128, 63, 0, 0, 24, 63, 0, 0, 0, 0, 0, 0, 16, 63, 0, 0, 128, 63, 0, 0, 16, 63, 0, 0, 0, 0, 0, 0, 8, 63, 0, 0, 128, 63, 0, 0, 8, 63, 0, 0, 0, 0, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 63, 0, 0, 0, 0, 0, 0, 104, 63, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 0, 0, 0, 0, 192, 61, 0, 0, 128, 63, 0, 0, 104, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 176, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 0, 0), +"format": 4119, "index_count": 192, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 66 -} - -[sub_resource type="CylinderShape" id=6] +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 34, 0, 31, 0, 30, 0, 32, 0, 34, 0, 33, 0, 37, 0, 35, 0, 33, 0, 36, 0, 37, 0, 36, 0, 39, 0, 37, 0, 36, 0, 38, 0, 39, 0, 38, 0, 41, 0, 39, 0, 38, 0, 40, 0, 41, 0, 40, 0, 43, 0, 41, 0, 40, 0, 42, 0, 43, 0, 42, 0, 45, 0, 43, 0, 42, 0, 44, 0, 45, 0, 44, 0, 47, 0, 45, 0, 44, 0, 46, 0, 47, 0, 46, 0, 49, 0, 47, 0, 46, 0, 48, 0, 49, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 50, 0, 53, 0, 51, 0, 50, 0, 52, 0, 53, 0, 52, 0, 55, 0, 53, 0, 52, 0, 54, 0, 55, 0, 54, 0, 57, 0, 55, 0, 54, 0, 56, 0, 57, 0, 56, 0, 59, 0, 57, 0, 56, 0, 58, 0, 59, 0, 58, 0, 61, 0, 59, 0, 58, 0, 60, 0, 61, 0, 60, 0, 63, 0, 61, 0, 60, 0, 62, 0, 63, 0, 62, 0, 65, 0, 63, 0, 62, 0, 64, 0, 65, 0, 64, 0, 1, 0, 65, 0, 64, 0, 0, 0, 1, 0), +"lods": [0.0371179, PackedByteArray(2, 0, 9, 0, 5, 0, 2, 0, 10, 0, 9, 0, 64, 0, 2, 0, 5, 0, 10, 0, 13, 0, 9, 0, 64, 0, 5, 0, 65, 0, 10, 0, 14, 0, 13, 0, 62, 0, 64, 0, 65, 0, 14, 0, 17, 0, 13, 0, 62, 0, 65, 0, 61, 0, 14, 0, 18, 0, 17, 0, 58, 0, 62, 0, 61, 0, 18, 0, 21, 0, 17, 0, 58, 0, 61, 0, 57, 0, 18, 0, 22, 0, 21, 0, 54, 0, 58, 0, 57, 0, 22, 0, 25, 0, 21, 0, 54, 0, 57, 0, 53, 0, 22, 0, 26, 0, 25, 0, 50, 0, 54, 0, 53, 0, 26, 0, 29, 0, 25, 0, 50, 0, 53, 0, 49, 0, 26, 0, 30, 0, 29, 0, 30, 0, 34, 0, 29, 0, 30, 0, 32, 0, 34, 0, 46, 0, 50, 0, 49, 0, 46, 0, 49, 0, 45, 0, 42, 0, 46, 0, 45, 0, 42, 0, 45, 0, 41, 0, 38, 0, 42, 0, 41, 0, 38, 0, 41, 0, 37, 0, 33, 0, 38, 0, 37, 0, 33, 0, 37, 0, 35, 0), 0.139951, PackedByteArray(88, 0, 90, 0, 86, 0, 88, 0, 18, 0, 90, 0, 18, 0, 29, 0, 90, 0, 18, 0, 26, 0, 29, 0, 26, 0, 34, 0, 29, 0, 26, 0, 32, 0, 34, 0, 62, 0, 89, 0, 86, 0, 62, 0, 87, 0, 65, 0, 54, 0, 62, 0, 65, 0, 54, 0, 65, 0, 57, 0, 46, 0, 54, 0, 57, 0, 46, 0, 57, 0, 49, 0, 38, 0, 46, 0, 49, 0, 38, 0, 49, 0, 41, 0, 33, 0, 38, 0, 41, 0, 33, 0, 41, 0, 35, 0), 0.399284, PackedByteArray(77, 0, 79, 0, 74, 0, 77, 0, 81, 0, 79, 0, 81, 0, 32, 0, 34, 0, 81, 0, 34, 0, 80, 0, 33, 0, 41, 0, 35, 0, 33, 0, 83, 0, 41, 0, 84, 0, 75, 0, 82, 0, 85, 0, 78, 0, 76, 0), 0.844305, PackedByteArray(10, 0, 70, 0, 72, 0, 66, 0, 68, 0, 71, 0, 33, 0, 41, 0, 35, 0, 69, 0, 67, 0, 73, 0)], +"material": SubResource("StandardMaterial3D_37d4w"), +"primitive": 3, +"vertex_count": 91, +"vertex_data": PackedByteArray(0, 0, 0, 0, 51, 51, 179, 191, 154, 153, 89, 191, 255, 255, 254, 255, 0, 0, 255, 191, 0, 0, 0, 0, 51, 51, 179, 63, 154, 153, 89, 191, 255, 255, 254, 255, 0, 0, 255, 191, 127, 206, 41, 62, 51, 51, 179, 191, 59, 107, 85, 191, 255, 255, 194, 234, 0, 0, 157, 202, 127, 206, 41, 62, 51, 51, 179, 63, 59, 107, 85, 191, 255, 255, 194, 234, 0, 0, 157, 202, 57, 139, 166, 62, 51, 51, 179, 191, 67, 9, 73, 191, 255, 255, 129, 218, 0, 0, 189, 210, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 255, 255, 129, 218, 0, 0, 189, 210, 192, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 191, 255, 255, 186, 204, 0, 0, 161, 217, 192, 200, 241, 62, 51, 51, 179, 63, 132, 237, 52, 191, 255, 255, 186, 204, 0, 0, 161, 217, 207, 221, 25, 63, 51, 51, 179, 191, 207, 221, 25, 191, 255, 255, 255, 191, 0, 0, 255, 223, 207, 221, 25, 63, 51, 51, 179, 63, 207, 221, 25, 191, 255, 255, 255, 191, 0, 0, 255, 223, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 255, 255, 68, 179, 0, 0, 92, 230, 132, 237, 52, 63, 51, 51, 179, 63, 192, 200, 241, 190, 255, 255, 68, 179, 0, 0, 92, 230, 67, 9, 73, 63, 51, 51, 179, 191, 57, 139, 166, 190, 255, 255, 124, 165, 0, 0, 64, 237, 67, 9, 73, 63, 51, 51, 179, 63, 57, 139, 166, 190, 255, 255, 124, 165, 0, 0, 64, 237, 59, 107, 85, 63, 51, 51, 179, 191, 129, 206, 41, 190, 255, 255, 59, 149, 0, 0, 96, 245, 59, 107, 85, 63, 51, 51, 179, 63, 129, 206, 41, 190, 255, 255, 59, 149, 0, 0, 96, 245, 154, 153, 89, 63, 51, 51, 179, 191, 1, 148, 31, 51, 255, 255, 255, 127, 255, 255, 255, 255, 154, 153, 89, 63, 51, 51, 179, 63, 1, 148, 31, 51, 255, 255, 255, 127, 255, 255, 255, 255, 59, 107, 85, 63, 51, 51, 179, 191, 127, 206, 41, 62, 194, 234, 255, 127, 255, 255, 96, 245, 59, 107, 85, 63, 51, 51, 179, 63, 127, 206, 41, 62, 194, 234, 255, 127, 255, 255, 96, 245, 68, 9, 73, 63, 51, 51, 179, 191, 56, 139, 166, 62, 129, 218, 255, 127, 255, 255, 64, 237, 68, 9, 73, 63, 51, 51, 179, 63, 56, 139, 166, 62, 129, 218, 255, 127, 255, 255, 64, 237, 132, 237, 52, 63, 51, 51, 179, 191, 190, 200, 241, 62, 186, 204, 255, 127, 255, 255, 92, 230, 132, 237, 52, 63, 51, 51, 179, 63, 190, 200, 241, 62, 186, 204, 255, 127, 255, 255, 92, 230, 207, 221, 25, 63, 51, 51, 179, 191, 207, 221, 25, 63, 255, 191, 255, 127, 255, 255, 255, 223, 207, 221, 25, 63, 51, 51, 179, 63, 207, 221, 25, 63, 255, 191, 255, 127, 255, 255, 255, 223, 190, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 63, 68, 179, 255, 127, 255, 255, 161, 217, 190, 200, 241, 62, 51, 51, 179, 63, 132, 237, 52, 63, 68, 179, 255, 127, 255, 255, 161, 217, 58, 139, 166, 62, 51, 51, 179, 191, 67, 9, 73, 63, 124, 165, 255, 127, 255, 255, 189, 210, 58, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 63, 124, 165, 255, 127, 255, 255, 189, 210, 126, 206, 41, 62, 51, 51, 179, 191, 60, 107, 85, 63, 59, 149, 255, 127, 255, 255, 157, 202, 126, 206, 41, 62, 51, 51, 179, 63, 60, 107, 85, 63, 59, 149, 255, 127, 255, 255, 157, 202, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 255, 127, 255, 127, 255, 255, 255, 191, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 255, 127, 255, 127, 254, 255, 255, 191, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 255, 127, 255, 127, 255, 255, 255, 191, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 255, 127, 255, 127, 254, 255, 255, 191, 123, 206, 41, 190, 51, 51, 179, 191, 60, 107, 85, 63, 195, 106, 255, 127, 194, 234, 255, 191, 123, 206, 41, 190, 51, 51, 179, 63, 60, 107, 85, 63, 195, 106, 255, 127, 194, 234, 255, 191, 57, 139, 166, 190, 51, 51, 179, 191, 67, 9, 73, 63, 130, 90, 255, 127, 129, 218, 255, 191, 57, 139, 166, 190, 51, 51, 179, 63, 67, 9, 73, 63, 130, 90, 255, 127, 129, 218, 255, 191, 194, 200, 241, 190, 51, 51, 179, 191, 131, 237, 52, 63, 186, 76, 255, 127, 186, 204, 255, 191, 194, 200, 241, 190, 51, 51, 179, 63, 131, 237, 52, 63, 186, 76, 255, 127, 186, 204, 255, 191, 206, 221, 25, 191, 51, 51, 179, 191, 208, 221, 25, 63, 255, 63, 255, 127, 255, 191, 255, 191, 206, 221, 25, 191, 51, 51, 179, 63, 208, 221, 25, 63, 255, 63, 255, 127, 255, 191, 255, 191, 130, 237, 52, 191, 51, 51, 179, 191, 197, 200, 241, 62, 68, 51, 255, 127, 68, 179, 255, 191, 130, 237, 52, 191, 51, 51, 179, 63, 197, 200, 241, 62, 68, 51, 255, 127, 68, 179, 255, 191, 67, 9, 73, 191, 51, 51, 179, 191, 61, 139, 166, 62, 125, 37, 255, 127, 124, 165, 255, 191, 67, 9, 73, 191, 51, 51, 179, 63, 61, 139, 166, 62, 125, 37, 255, 127, 124, 165, 255, 191, 59, 107, 85, 191, 51, 51, 179, 191, 130, 206, 41, 62, 60, 21, 255, 127, 59, 149, 255, 191, 59, 107, 85, 191, 51, 51, 179, 63, 130, 206, 41, 62, 60, 21, 255, 127, 59, 149, 255, 191, 154, 153, 89, 191, 51, 51, 179, 191, 65, 35, 46, 178, 0, 0, 255, 127, 255, 127, 255, 191, 154, 153, 89, 191, 51, 51, 179, 63, 65, 35, 46, 178, 0, 0, 255, 127, 255, 127, 255, 191, 59, 107, 85, 191, 51, 51, 179, 191, 132, 206, 41, 190, 0, 0, 59, 149, 195, 106, 255, 191, 59, 107, 85, 191, 51, 51, 179, 63, 132, 206, 41, 190, 0, 0, 59, 149, 195, 106, 255, 191, 67, 9, 73, 191, 51, 51, 179, 191, 62, 139, 166, 190, 0, 0, 124, 165, 130, 90, 255, 191, 67, 9, 73, 191, 51, 51, 179, 63, 62, 139, 166, 190, 0, 0, 124, 165, 130, 90, 255, 191, 133, 237, 52, 191, 51, 51, 179, 191, 187, 200, 241, 190, 0, 0, 68, 179, 186, 76, 255, 191, 133, 237, 52, 191, 51, 51, 179, 63, 187, 200, 241, 190, 0, 0, 68, 179, 186, 76, 255, 191, 209, 221, 25, 191, 51, 51, 179, 191, 206, 221, 25, 191, 0, 0, 255, 191, 255, 63, 255, 191, 209, 221, 25, 191, 51, 51, 179, 63, 206, 221, 25, 191, 0, 0, 255, 191, 255, 63, 255, 191, 194, 200, 241, 190, 51, 51, 179, 191, 132, 237, 52, 191, 0, 0, 186, 204, 68, 51, 255, 191, 194, 200, 241, 190, 51, 51, 179, 63, 132, 237, 52, 191, 0, 0, 186, 204, 68, 51, 255, 191, 57, 139, 166, 190, 51, 51, 179, 191, 68, 9, 73, 191, 0, 0, 129, 218, 125, 37, 255, 191, 57, 139, 166, 190, 51, 51, 179, 63, 68, 9, 73, 191, 0, 0, 129, 218, 125, 37, 255, 191, 122, 206, 41, 190, 51, 51, 179, 191, 60, 107, 85, 191, 0, 0, 194, 234, 60, 21, 255, 191, 122, 206, 41, 190, 51, 51, 179, 63, 60, 107, 85, 191, 0, 0, 194, 234, 60, 21, 255, 191, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 59, 212, 255, 127, 0, 0, 92, 230, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 0, 0, 98, 155, 0, 0, 92, 230, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 139, 185, 255, 127, 255, 255, 255, 191, 1, 148, 159, 179, 51, 51, 179, 191, 154, 153, 89, 63, 0, 0, 180, 137, 254, 255, 255, 191, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 255, 255, 113, 198, 255, 255, 255, 191, 1, 148, 159, 179, 51, 51, 179, 63, 154, 153, 89, 63, 250, 181, 255, 127, 255, 255, 255, 191, 194, 200, 241, 190, 51, 51, 179, 63, 131, 237, 52, 63, 255, 255, 93, 201, 186, 204, 255, 191, 194, 200, 241, 190, 51, 51, 179, 63, 131, 237, 52, 63, 0, 0, 47, 135, 186, 204, 255, 191, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 255, 255, 109, 179, 0, 0, 189, 210, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 0, 0, 200, 167, 0, 0, 189, 210, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 0, 0, 83, 234, 0, 0, 189, 210, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 255, 255, 168, 154, 0, 0, 92, 230, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 0, 0, 4, 244, 0, 0, 92, 230, 68, 9, 73, 63, 51, 51, 179, 63, 56, 139, 166, 62, 255, 255, 64, 131, 255, 255, 64, 237, 68, 9, 73, 63, 51, 51, 179, 63, 56, 139, 166, 62, 115, 188, 255, 127, 255, 255, 64, 237, 190, 200, 241, 62, 51, 51, 179, 191, 132, 237, 52, 63, 132, 186, 255, 127, 255, 255, 161, 217, 194, 200, 241, 190, 51, 51, 179, 63, 131, 237, 52, 63, 0, 0, 8, 133, 186, 204, 255, 191, 67, 9, 73, 191, 51, 51, 179, 191, 61, 139, 166, 62, 219, 69, 255, 127, 124, 165, 255, 191, 67, 9, 73, 191, 51, 51, 179, 191, 61, 139, 166, 62, 0, 0, 201, 132, 124, 165, 255, 191, 67, 9, 73, 191, 51, 51, 179, 191, 61, 139, 166, 62, 0, 0, 177, 207, 124, 165, 255, 191, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 255, 255, 65, 204, 0, 0, 189, 210, 57, 139, 166, 62, 51, 51, 179, 63, 67, 9, 73, 191, 0, 0, 206, 248, 0, 0, 189, 210, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 255, 255, 204, 153, 0, 0, 92, 230, 132, 237, 52, 63, 51, 51, 179, 191, 192, 200, 241, 190, 255, 255, 46, 224, 0, 0, 92, 230, 68, 9, 73, 63, 51, 51, 179, 63, 56, 139, 166, 62, 85, 241, 255, 127, 255, 255, 64, 237) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_4xmya") + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_bekon"] height = 2.8 radius = 0.85 -[node name="Teleport" type="Spatial"] -script = ExtResource( 1 ) +[node name="Teleport" type="Node3D"] +script = ExtResource("1_mkuv0") -[node name="TeleportBody" type="StaticBody" parent="."] +[node name="TeleportBody" type="StaticBody3D" parent="."] -[node name="Base" type="MeshInstance" parent="TeleportBody"] -mesh = SubResource( 1 ) -skeleton = NodePath("../..") -material/0 = ExtResource( 3 ) +[node name="Base" type="MeshInstance3D" parent="TeleportBody"] +gi_mode = 0 +mesh = SubResource("ArrayMesh_6x10k") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("2_0kehv") -[node name="BaseCollisionShape" type="CollisionShape" parent="TeleportBody"] -shape = SubResource( 7 ) +[node name="BaseCollisionShape" type="CollisionShape3D" parent="TeleportBody"] +shape = SubResource("ConvexPolygonShape3D_4fsqc") -[node name="Top" type="MeshInstance" parent="TeleportBody"] -mesh = SubResource( 2 ) -skeleton = NodePath("../..") -material/0 = ExtResource( 3 ) -material/1 = ExtResource( 4 ) +[node name="Top" type="MeshInstance3D" parent="TeleportBody"] +gi_mode = 0 +mesh = SubResource("ArrayMesh_20bhj") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("2_0kehv") +surface_material_override/1 = ExtResource("3_sl3q4") -[node name="TopCollisionShape" type="CollisionShape" parent="TeleportBody"] -shape = SubResource( 5 ) +[node name="TopCollisionShape" type="CollisionShape3D" parent="TeleportBody"] +shape = SubResource("ConvexPolygonShape3D_dma6l") -[node name="TeleportArea" type="Area" parent="."] +[node name="TeleportArea" type="Area3D" parent="."] collision_layer = 0 collision_mask = 524288 -[node name="Cylinder" type="MeshInstance" parent="TeleportArea"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0 ) -mesh = SubResource( 3 ) -skeleton = NodePath("../..") -material/0 = ExtResource( 2 ) +[node name="Cylinder" type="MeshInstance3D" parent="TeleportArea"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +gi_mode = 0 +mesh = SubResource("ArrayMesh_b4xkm") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("4_2bbe5") -[node name="CollisionShape" type="CollisionShape" parent="TeleportArea"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0 ) -shape = SubResource( 6 ) +[node name="CollisionShape3d" type="CollisionShape3D" parent="TeleportArea"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +shape = SubResource("CylinderShape3D_bekon") [connection signal="body_entered" from="TeleportArea" to="." method="_on_TeleportArea_body_entered"] diff --git a/assets/meshes/teleport/teleport_area_shader.tres b/assets/meshes/teleport/teleport_area_shader.tres index 1547b15a..9ac17c1b 100644 --- a/assets/meshes/teleport/teleport_area_shader.tres +++ b/assets/meshes/teleport/teleport_area_shader.tres @@ -1,146 +1,152 @@ -[gd_resource type="ShaderMaterial" load_steps=14 format=2] +[gd_resource type="ShaderMaterial" load_steps=14 format=3 uid="uid://d4nr1joloeff8"] -[sub_resource type="VisualShaderNodeScalarFunc" id=8] +[sub_resource type="VisualShaderNodeFloatFunc" id="8"] output_port_for_preview = 0 function = 17 -[sub_resource type="VisualShaderNodeColorConstant" id=13] -constant = Color( 0.169944, 0.249712, 0.97294, 1 ) +[sub_resource type="VisualShaderNodeColorConstant" id="13"] +constant = Color(0.169944, 0.249712, 0.97294, 1) -[sub_resource type="VisualShaderNodeInput" id=14] +[sub_resource type="VisualShaderNodeInput" id="14"] input_name = "time" -[sub_resource type="VisualShaderNodeScalarOp" id=19] -default_input_values = [ 0, 0.0, 1, 0.8 ] +[sub_resource type="VisualShaderNodeFloatOp" id="19"] +default_input_values = [0, 0.0, 1, 0.8] operator = 2 -[sub_resource type="VisualShaderNodeVectorOp" id=23] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 4, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="23"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(1.25, 0)] +op_type = 0 operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=24] +[sub_resource type="VisualShaderNodeFloatOp" id="24"] -[sub_resource type="VisualShaderNodeVectorOp" id=25] +[sub_resource type="VisualShaderNodeVectorOp" id="25"] operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=31] -default_input_values = [ 0, 0.0, 1, 0.8 ] -operator = 2 - -[sub_resource type="VisualShaderNodeInput" id=21] +[sub_resource type="VisualShaderNodeSmoothStep" id="28"] output_port_for_preview = 0 -input_name = "uv" +default_input_values = [0, 0.4, 1, 0.5, 2, 0.0] -[sub_resource type="VisualShaderNodeScalarSmoothStep" id=32] +[sub_resource type="VisualShaderNodeSmoothStep" id="29"] output_port_for_preview = 0 -default_input_values = [ 0, 0.4, 1, 0.5, 2, 0.0 ] +default_input_values = [0, 1.0, 1, 0.4, 2, 0.0] -[sub_resource type="VisualShaderNodeScalarSmoothStep" id=33] -output_port_for_preview = 0 -default_input_values = [ 0, 1.0, 1, 0.4, 2, 0.0 ] - -[sub_resource type="VisualShaderNodeScalarOp" id=34] +[sub_resource type="VisualShaderNodeFloatOp" id="30"] output_port_for_preview = 0 operator = 7 -[sub_resource type="VisualShader" id=22] -code = "shader_type spatial; -render_mode blend_add, cull_disabled, specular_schlick_ggx, unshaded; +[sub_resource type="VisualShaderNodeFloatOp" id="31"] +default_input_values = [0, 0.0, 1, 0.8] +operator = 2 +[sub_resource type="VisualShaderNodeInput" id="21"] +output_port_for_preview = 0 +expanded_output_ports = [0] +input_name = "uv" +[sub_resource type="VisualShader" id="22"] +code = "shader_type spatial; +render_mode blend_add, cull_disabled, unshaded; -void vertex() { -// Output:0 -} void fragment() { -// Color:19 - vec3 n_out19p0 = vec3(0.169944, 0.249712, 0.972940); - float n_out19p1 = 1.000000; +// ColorConstant:19 + vec4 n_out19p0 = vec4(0.169944, 0.249712, 0.972940, 1.000000); + // Input:2 float n_out2p0 = TIME; -// ScalarOp:25 + +// FloatOp:25 float n_in25p1 = 0.80000; float n_out25p0 = n_out2p0 * n_in25p1; + // Input:5 - vec3 n_out5p0 = vec3(UV, 0.0); + vec2 n_out5p0 = UV; + float n_out5p2 = n_out5p0.g; + // VectorOp:26 - vec3 n_in26p1 = vec3(0.00000, 4.00000, 0.00000); - vec3 n_out26p0 = n_out5p0 * n_in26p1; + vec2 n_in26p1 = vec2(1.25000, 0.00000); + vec2 n_out26p0 = vec2(n_out5p2) * n_in26p1; + + +// FloatOp:27 + float n_out27p0 = n_out25p0 + n_out26p0.x; -// ScalarOp:27 - float n_out27p0 = n_out25p0 + dot(n_out26p0, vec3(0.333333, 0.333333, 0.333333)); -// ScalarFunc:12 +// FloatFunc:12 float n_out12p0 = fract(n_out27p0); -// ScalarSmoothStep:50 - float n_in50p0 = 0.40000; - float n_in50p1 = 0.50000; - float n_out50p0 = smoothstep(n_in50p0, n_in50p1, n_out12p0); -// ScalarSmoothStep:51 - float n_in51p0 = 1.00000; - float n_in51p1 = 0.40000; - float n_out51p0 = smoothstep(n_in51p0, n_in51p1, n_out12p0); +// SmoothStep:46 + float n_in46p0 = 0.40000; + float n_in46p1 = 0.50000; + float n_out46p0 = smoothstep(n_in46p0, n_in46p1, n_out12p0); + + +// SmoothStep:47 + float n_in47p0 = 1.00000; + float n_in47p1 = 0.40000; + float n_out47p0 = smoothstep(n_in47p0, n_in47p1, n_out12p0); + -// ScalarOp:52 - float n_out52p0 = min(n_out50p0, n_out51p0); +// FloatOp:48 + float n_out48p0 = min(n_out46p0, n_out47p0); -// ScalarOp:49 + +// FloatOp:49 float n_in49p1 = 0.80000; - float n_out49p0 = n_out52p0 * n_in49p1; + float n_out49p0 = n_out48p0 * n_in49p1; + // VectorOp:40 - vec3 n_out40p0 = n_out19p0 * vec3(n_out49p0); + vec3 n_out40p0 = vec3(n_out19p0.xyz) * vec3(n_out49p0); + // Output:0 ALBEDO = n_out40p0; ALPHA = n_out49p0; -} - -void light() { -// Output:0 } " -graph_offset = Vector2( 736.672, -32.0883 ) +graph_offset = Vector2(-491.978, 45.2689) modes/blend = 1 modes/cull = 2 flags/unshaded = true -nodes/fragment/0/position = Vector2( 1820, 0 ) -nodes/fragment/2/node = SubResource( 14 ) -nodes/fragment/2/position = Vector2( -360, 0 ) -nodes/fragment/5/node = SubResource( 21 ) -nodes/fragment/5/position = Vector2( -360, 160 ) -nodes/fragment/12/node = SubResource( 8 ) -nodes/fragment/12/position = Vector2( 340, 60 ) -nodes/fragment/19/node = SubResource( 13 ) -nodes/fragment/19/position = Vector2( 1365, -84 ) -nodes/fragment/25/node = SubResource( 19 ) -nodes/fragment/25/position = Vector2( -140, -20 ) -nodes/fragment/26/node = SubResource( 23 ) -nodes/fragment/26/position = Vector2( -140, 140 ) -nodes/fragment/27/node = SubResource( 24 ) -nodes/fragment/27/position = Vector2( 100, 40 ) -nodes/fragment/40/node = SubResource( 25 ) -nodes/fragment/40/position = Vector2( 1617, -84 ) -nodes/fragment/49/node = SubResource( 31 ) -nodes/fragment/49/position = Vector2( 1302, 84 ) -nodes/fragment/50/node = SubResource( 32 ) -nodes/fragment/50/position = Vector2( 640, -100 ) -nodes/fragment/51/node = SubResource( 33 ) -nodes/fragment/51/position = Vector2( 640, 140 ) -nodes/fragment/52/node = SubResource( 34 ) -nodes/fragment/52/position = Vector2( 980, 40 ) -nodes/fragment/connections = PoolIntArray( 2, 0, 25, 0, 5, 0, 26, 0, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 12, 0, 49, 0, 0, 1, 40, 0, 0, 0, 49, 0, 40, 1, 19, 0, 40, 0, 12, 0, 50, 2, 12, 0, 51, 2, 50, 0, 52, 0, 51, 0, 52, 1, 52, 0, 49, 0 ) +nodes/fragment/0/position = Vector2(1820, 0) +nodes/fragment/2/node = SubResource("14") +nodes/fragment/2/position = Vector2(-520, 40) +nodes/fragment/5/node = SubResource("21") +nodes/fragment/5/position = Vector2(-580, 280) +nodes/fragment/12/node = SubResource("8") +nodes/fragment/12/position = Vector2(360, 160) +nodes/fragment/19/node = SubResource("13") +nodes/fragment/19/position = Vector2(1365, -84) +nodes/fragment/25/node = SubResource("19") +nodes/fragment/25/position = Vector2(-80, 20) +nodes/fragment/26/node = SubResource("23") +nodes/fragment/26/position = Vector2(-220, 280) +nodes/fragment/27/node = SubResource("24") +nodes/fragment/27/position = Vector2(126, 105) +nodes/fragment/40/node = SubResource("25") +nodes/fragment/40/position = Vector2(1617, -84) +nodes/fragment/46/node = SubResource("28") +nodes/fragment/46/position = Vector2(800, -100) +nodes/fragment/47/node = SubResource("29") +nodes/fragment/47/position = Vector2(800, 400) +nodes/fragment/48/node = SubResource("30") +nodes/fragment/48/position = Vector2(1071, 42) +nodes/fragment/49/node = SubResource("31") +nodes/fragment/49/position = Vector2(1302, 84) +nodes/fragment/connections = PackedInt32Array(2, 0, 25, 0, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 12, 0, 12, 0, 47, 2, 46, 0, 48, 0, 47, 0, 48, 1, 48, 0, 49, 0, 49, 0, 0, 1, 40, 0, 0, 0, 49, 0, 40, 1, 19, 0, 40, 0, 5, 2, 26, 0, 12, 0, 46, 2) [resource] -shader = SubResource( 22 ) +render_priority = 0 +shader = SubResource("22") diff --git a/assets/meshes/teleport/teleport_body_material.tres b/assets/meshes/teleport/teleport_body_material.tres index 1db0001f..106efa22 100644 --- a/assets/meshes/teleport/teleport_body_material.tres +++ b/assets/meshes/teleport/teleport_body_material.tres @@ -1,6 +1,6 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] -[ext_resource path="res://assets/wahooney.itch.io/white_grid.png" type="Texture" id=1] +[ext_resource path="res://assets/wahooney.itch.io/white_grid.png" type="Texture2D" id=1] [resource] albedo_texture = ExtResource( 1 ) diff --git a/assets/meshes/teleport/teleport_title_material.tres b/assets/meshes/teleport/teleport_title_material.tres index df105e2a..c30c5047 100644 --- a/assets/meshes/teleport/teleport_title_material.tres +++ b/assets/meshes/teleport/teleport_title_material.tres @@ -1,103 +1,124 @@ -[gd_resource type="ShaderMaterial" load_steps=9 format=2] +[gd_resource type="ShaderMaterial" load_steps=13 format=3 uid="uid://c26e12f2whdrj"] -[sub_resource type="VisualShaderNodeTextureUniform" id=5] -uniform_name = "Title" +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_t4y4m"] +size = Vector2(690.6, 253) +title = "Scroll UV Generator" +description = "These nodes generate a UV offset which scrolls to the left over 5 seconds then repeats" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_f47k3"] +size = Vector2(579, 259.6) +title = "2x Image UV Scale" +description = "These nodes scale the UV by 2 in the X axis, which results in the texture to tile twice in the X axis." + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_ptj6p"] +size = Vector2(752.088, 525.832) +title = "Scrolling Texture" +description = "These nodes add the image and scrolling UVs to sample the title texture. The output is the color of the scrolling texture." + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="5"] +parameter_name = "Title" texture_type = 1 +texture_repeat = 1 -[sub_resource type="VisualShaderNodeInput" id=7] +[sub_resource type="VisualShaderNodeInput" id="7"] input_name = "uv" -[sub_resource type="VisualShaderNodeInput" id=8] +[sub_resource type="VisualShaderNodeInput" id="8"] input_name = "time" -[sub_resource type="VisualShaderNodeVectorOp" id=9] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0.2, 0, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="9"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.2, 0, 0)] operator = 2 -[sub_resource type="VisualShaderNodeVectorOp" id=10] +[sub_resource type="VisualShaderNodeVectorOp" id="10"] output_port_for_preview = 0 -[sub_resource type="VisualShaderNodeVectorOp" id=11] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 2, 1, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="11"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(2, 1, 0)] operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=12] -default_input_values = [ 0, 0.0, 1, 5.0 ] +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_3qe54"] +source = 5 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_spdkt"] +default_input_values = [0, 0.0, 1, 5.0] operator = 4 -[sub_resource type="VisualShader" id=6] +[sub_resource type="VisualShader" id="6"] code = "shader_type spatial; -render_mode specular_schlick_ggx, unshaded; +render_mode unshaded; -uniform sampler2D Title : hint_albedo; +uniform sampler2D Title : source_color, repeat_enable; -void vertex() { -// Output:0 - -} - void fragment() { // Input:4 float n_out4p0 = TIME; -// ScalarOp:8 - float n_in8p1 = 5.00000; - float n_out8p0 = mod(n_out4p0, n_in8p1); + +// FloatOp:9 + float n_in9p1 = 5.00000; + float n_out9p0 = mod(n_out4p0, n_in9p1); + // VectorOp:5 vec3 n_in5p1 = vec3(0.20000, 0.00000, 0.00000); - vec3 n_out5p0 = vec3(n_out8p0) * n_in5p1; + vec3 n_out5p0 = vec3(n_out9p0) * n_in5p1; + // Input:3 - vec3 n_out3p0 = vec3(UV, 0.0); + vec2 n_out3p0 = UV; + // VectorOp:7 vec3 n_in7p1 = vec3(2.00000, 1.00000, 0.00000); - vec3 n_out7p0 = n_out3p0 * n_in7p1; + vec3 n_out7p0 = vec3(n_out3p0, 0.0) * n_in7p1; + // VectorOp:6 vec3 n_out6p0 = n_out5p0 + n_out7p0; -// TextureUniform:2 - vec3 n_out2p0; - float n_out2p1; - { - vec4 n_tex_read = texture(Title, n_out6p0.xy); - n_out2p0 = n_tex_read.rgb; - n_out2p1 = n_tex_read.a; - } -// Output:0 - ALBEDO = n_out2p0; + vec4 n_out8p0; +// Texture2D:8 + n_out8p0 = texture(Title, vec2(n_out6p0.xy)); -} -void light() { // Output:0 + ALBEDO = vec3(n_out8p0.xyz); + } " -graph_offset = Vector2( -921.082, 269.413 ) +graph_offset = Vector2(-508.681, 463.806) flags/unshaded = true -nodes/fragment/0/position = Vector2( 798, 252 ) -nodes/fragment/2/node = SubResource( 5 ) -nodes/fragment/2/position = Vector2( 378, 315 ) -nodes/fragment/3/node = SubResource( 7 ) -nodes/fragment/3/position = Vector2( -378, 567 ) -nodes/fragment/4/node = SubResource( 8 ) -nodes/fragment/4/position = Vector2( -640, 320 ) -nodes/fragment/5/node = SubResource( 9 ) -nodes/fragment/5/position = Vector2( -189, 294 ) -nodes/fragment/6/node = SubResource( 10 ) -nodes/fragment/6/position = Vector2( 84, 378 ) -nodes/fragment/7/node = SubResource( 11 ) -nodes/fragment/7/position = Vector2( -189, 546 ) -nodes/fragment/8/node = SubResource( 12 ) -nodes/fragment/8/position = Vector2( -400, 300 ) -nodes/fragment/connections = PoolIntArray( 5, 0, 6, 0, 6, 0, 2, 0, 3, 0, 7, 0, 7, 0, 6, 1, 2, 0, 0, 0, 8, 0, 5, 0, 4, 0, 8, 0 ) +nodes/fragment/0/position = Vector2(798, 252) +nodes/fragment/2/node = SubResource("5") +nodes/fragment/2/position = Vector2(120, 500) +nodes/fragment/3/node = SubResource("7") +nodes/fragment/3/position = Vector2(-1080, 640) +nodes/fragment/4/node = SubResource("8") +nodes/fragment/4/position = Vector2(-1120, 260) +nodes/fragment/5/node = SubResource("9") +nodes/fragment/5/position = Vector2(-600, 220) +nodes/fragment/6/node = SubResource("10") +nodes/fragment/6/position = Vector2(-120, 340) +nodes/fragment/7/node = SubResource("11") +nodes/fragment/7/position = Vector2(-620, 600) +nodes/fragment/8/node = SubResource("VisualShaderNodeTexture_3qe54") +nodes/fragment/8/position = Vector2(500, 360) +nodes/fragment/9/node = SubResource("VisualShaderNodeFloatOp_spdkt") +nodes/fragment/9/position = Vector2(-780, 240) +nodes/fragment/10/node = SubResource("VisualShaderNodeComment_t4y4m") +nodes/fragment/10/position = Vector2(-1140, 140) +nodes/fragment/11/node = SubResource("VisualShaderNodeComment_f47k3") +nodes/fragment/11/position = Vector2(-1120, 520) +nodes/fragment/12/node = SubResource("VisualShaderNodeComment_ptj6p") +nodes/fragment/12/position = Vector2(-140, 240) +nodes/fragment/connections = PackedInt32Array(5, 0, 6, 0, 3, 0, 7, 0, 7, 0, 6, 1, 2, 0, 8, 2, 8, 0, 0, 0, 6, 0, 8, 0, 4, 0, 9, 0, 9, 0, 5, 0) [resource] resource_local_to_scene = true -shader = SubResource( 6 ) +render_priority = 0 +shader = SubResource("6") diff --git a/assets/meshes/tube/tube.glb.import b/assets/meshes/tube/tube.glb.import index 0e6e902f..5203212d 100644 --- a/assets/meshes/tube/tube.glb.import +++ b/assets/meshes/tube/tube.glb.import @@ -1,1065 +1,32 @@ [remap] importer="scene" +importer_version=1 type="PackedScene" -path="res://.import/tube.glb-e622891a55884bdb253119e7ceb148f0.scn" +uid="uid://b6ooxhmtqv5hs" +path="res://.godot/imported/tube.glb-e622891a55884bdb253119e7ceb148f0.scn" [deps] source_file="res://assets/meshes/tube/tube.glb" -dest_files=[ "res://.import/tube.glb-e622891a55884bdb253119e7ceb148f0.scn" ] +dest_files=["res://.godot/imported/tube.glb-e622891a55884bdb253119e7ceb148f0.scn"] [params] nodes/root_type="Spatial" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 -nodes/custom_script="" -nodes/storage=0 -nodes/use_legacy_names=false -materials/location=1 -materials/storage=1 -materials/keep_on_reimport=true -meshes/octahedral_compression=true -meshes/compress=4286 meshes/ensure_tangents=true -meshes/storage=0 +meshes/generate_lods=true +meshes/create_shadow_meshes=true meshes/light_baking=0 meshes/lightmap_texel_size=0.1 skins/use_named_skins=true -external_files/store_in_subdir=false animation/import=true animation/fps=15 -animation/filter_script="" -animation/storage=false -animation/keep_custom_tracks=false -animation/optimizer/enabled=true -animation/optimizer/max_linear_error=0.05 -animation/optimizer/max_angular_error=0.01 -animation/optimizer/max_angle=22 -animation/optimizer/remove_unused_tracks=true -animation/clips/amount=0 -animation/clip_1/name="" -animation/clip_1/start_frame=0 -animation/clip_1/end_frame=0 -animation/clip_1/loops=false -animation/clip_2/name="" -animation/clip_2/start_frame=0 -animation/clip_2/end_frame=0 -animation/clip_2/loops=false -animation/clip_3/name="" -animation/clip_3/start_frame=0 -animation/clip_3/end_frame=0 -animation/clip_3/loops=false -animation/clip_4/name="" -animation/clip_4/start_frame=0 -animation/clip_4/end_frame=0 -animation/clip_4/loops=false -animation/clip_5/name="" -animation/clip_5/start_frame=0 -animation/clip_5/end_frame=0 -animation/clip_5/loops=false -animation/clip_6/name="" -animation/clip_6/start_frame=0 -animation/clip_6/end_frame=0 -animation/clip_6/loops=false -animation/clip_7/name="" -animation/clip_7/start_frame=0 -animation/clip_7/end_frame=0 -animation/clip_7/loops=false -animation/clip_8/name="" -animation/clip_8/start_frame=0 -animation/clip_8/end_frame=0 -animation/clip_8/loops=false -animation/clip_9/name="" -animation/clip_9/start_frame=0 -animation/clip_9/end_frame=0 -animation/clip_9/loops=false -animation/clip_10/name="" -animation/clip_10/start_frame=0 -animation/clip_10/end_frame=0 -animation/clip_10/loops=false -animation/clip_11/name="" -animation/clip_11/start_frame=0 -animation/clip_11/end_frame=0 -animation/clip_11/loops=false -animation/clip_12/name="" -animation/clip_12/start_frame=0 -animation/clip_12/end_frame=0 -animation/clip_12/loops=false -animation/clip_13/name="" -animation/clip_13/start_frame=0 -animation/clip_13/end_frame=0 -animation/clip_13/loops=false -animation/clip_14/name="" -animation/clip_14/start_frame=0 -animation/clip_14/end_frame=0 -animation/clip_14/loops=false -animation/clip_15/name="" -animation/clip_15/start_frame=0 -animation/clip_15/end_frame=0 -animation/clip_15/loops=false -animation/clip_16/name="" -animation/clip_16/start_frame=0 -animation/clip_16/end_frame=0 -animation/clip_16/loops=false -animation/clip_17/name="" -animation/clip_17/start_frame=0 -animation/clip_17/end_frame=0 -animation/clip_17/loops=false -animation/clip_18/name="" -animation/clip_18/start_frame=0 -animation/clip_18/end_frame=0 -animation/clip_18/loops=false -animation/clip_19/name="" -animation/clip_19/start_frame=0 -animation/clip_19/end_frame=0 -animation/clip_19/loops=false -animation/clip_20/name="" -animation/clip_20/start_frame=0 -animation/clip_20/end_frame=0 -animation/clip_20/loops=false -animation/clip_21/name="" -animation/clip_21/start_frame=0 -animation/clip_21/end_frame=0 -animation/clip_21/loops=false -animation/clip_22/name="" -animation/clip_22/start_frame=0 -animation/clip_22/end_frame=0 -animation/clip_22/loops=false -animation/clip_23/name="" -animation/clip_23/start_frame=0 -animation/clip_23/end_frame=0 -animation/clip_23/loops=false -animation/clip_24/name="" -animation/clip_24/start_frame=0 -animation/clip_24/end_frame=0 -animation/clip_24/loops=false -animation/clip_25/name="" -animation/clip_25/start_frame=0 -animation/clip_25/end_frame=0 -animation/clip_25/loops=false -animation/clip_26/name="" -animation/clip_26/start_frame=0 -animation/clip_26/end_frame=0 -animation/clip_26/loops=false -animation/clip_27/name="" -animation/clip_27/start_frame=0 -animation/clip_27/end_frame=0 -animation/clip_27/loops=false -animation/clip_28/name="" -animation/clip_28/start_frame=0 -animation/clip_28/end_frame=0 -animation/clip_28/loops=false -animation/clip_29/name="" -animation/clip_29/start_frame=0 -animation/clip_29/end_frame=0 -animation/clip_29/loops=false -animation/clip_30/name="" -animation/clip_30/start_frame=0 -animation/clip_30/end_frame=0 -animation/clip_30/loops=false -animation/clip_31/name="" -animation/clip_31/start_frame=0 -animation/clip_31/end_frame=0 -animation/clip_31/loops=false -animation/clip_32/name="" -animation/clip_32/start_frame=0 -animation/clip_32/end_frame=0 -animation/clip_32/loops=false -animation/clip_33/name="" -animation/clip_33/start_frame=0 -animation/clip_33/end_frame=0 -animation/clip_33/loops=false -animation/clip_34/name="" -animation/clip_34/start_frame=0 -animation/clip_34/end_frame=0 -animation/clip_34/loops=false -animation/clip_35/name="" -animation/clip_35/start_frame=0 -animation/clip_35/end_frame=0 -animation/clip_35/loops=false -animation/clip_36/name="" -animation/clip_36/start_frame=0 -animation/clip_36/end_frame=0 -animation/clip_36/loops=false -animation/clip_37/name="" -animation/clip_37/start_frame=0 -animation/clip_37/end_frame=0 -animation/clip_37/loops=false -animation/clip_38/name="" -animation/clip_38/start_frame=0 -animation/clip_38/end_frame=0 -animation/clip_38/loops=false -animation/clip_39/name="" -animation/clip_39/start_frame=0 -animation/clip_39/end_frame=0 -animation/clip_39/loops=false -animation/clip_40/name="" -animation/clip_40/start_frame=0 -animation/clip_40/end_frame=0 -animation/clip_40/loops=false -animation/clip_41/name="" -animation/clip_41/start_frame=0 -animation/clip_41/end_frame=0 -animation/clip_41/loops=false -animation/clip_42/name="" -animation/clip_42/start_frame=0 -animation/clip_42/end_frame=0 -animation/clip_42/loops=false -animation/clip_43/name="" -animation/clip_43/start_frame=0 -animation/clip_43/end_frame=0 -animation/clip_43/loops=false -animation/clip_44/name="" -animation/clip_44/start_frame=0 -animation/clip_44/end_frame=0 -animation/clip_44/loops=false -animation/clip_45/name="" -animation/clip_45/start_frame=0 -animation/clip_45/end_frame=0 -animation/clip_45/loops=false -animation/clip_46/name="" -animation/clip_46/start_frame=0 -animation/clip_46/end_frame=0 -animation/clip_46/loops=false -animation/clip_47/name="" -animation/clip_47/start_frame=0 -animation/clip_47/end_frame=0 -animation/clip_47/loops=false -animation/clip_48/name="" -animation/clip_48/start_frame=0 -animation/clip_48/end_frame=0 -animation/clip_48/loops=false -animation/clip_49/name="" -animation/clip_49/start_frame=0 -animation/clip_49/end_frame=0 -animation/clip_49/loops=false -animation/clip_50/name="" -animation/clip_50/start_frame=0 -animation/clip_50/end_frame=0 -animation/clip_50/loops=false -animation/clip_51/name="" -animation/clip_51/start_frame=0 -animation/clip_51/end_frame=0 -animation/clip_51/loops=false -animation/clip_52/name="" -animation/clip_52/start_frame=0 -animation/clip_52/end_frame=0 -animation/clip_52/loops=false -animation/clip_53/name="" -animation/clip_53/start_frame=0 -animation/clip_53/end_frame=0 -animation/clip_53/loops=false -animation/clip_54/name="" -animation/clip_54/start_frame=0 -animation/clip_54/end_frame=0 -animation/clip_54/loops=false -animation/clip_55/name="" -animation/clip_55/start_frame=0 -animation/clip_55/end_frame=0 -animation/clip_55/loops=false -animation/clip_56/name="" -animation/clip_56/start_frame=0 -animation/clip_56/end_frame=0 -animation/clip_56/loops=false -animation/clip_57/name="" -animation/clip_57/start_frame=0 -animation/clip_57/end_frame=0 -animation/clip_57/loops=false -animation/clip_58/name="" -animation/clip_58/start_frame=0 -animation/clip_58/end_frame=0 -animation/clip_58/loops=false -animation/clip_59/name="" -animation/clip_59/start_frame=0 -animation/clip_59/end_frame=0 -animation/clip_59/loops=false -animation/clip_60/name="" -animation/clip_60/start_frame=0 -animation/clip_60/end_frame=0 -animation/clip_60/loops=false -animation/clip_61/name="" -animation/clip_61/start_frame=0 -animation/clip_61/end_frame=0 -animation/clip_61/loops=false -animation/clip_62/name="" -animation/clip_62/start_frame=0 -animation/clip_62/end_frame=0 -animation/clip_62/loops=false -animation/clip_63/name="" -animation/clip_63/start_frame=0 -animation/clip_63/end_frame=0 -animation/clip_63/loops=false -animation/clip_64/name="" -animation/clip_64/start_frame=0 -animation/clip_64/end_frame=0 -animation/clip_64/loops=false -animation/clip_65/name="" -animation/clip_65/start_frame=0 -animation/clip_65/end_frame=0 -animation/clip_65/loops=false -animation/clip_66/name="" -animation/clip_66/start_frame=0 -animation/clip_66/end_frame=0 -animation/clip_66/loops=false -animation/clip_67/name="" -animation/clip_67/start_frame=0 -animation/clip_67/end_frame=0 -animation/clip_67/loops=false -animation/clip_68/name="" -animation/clip_68/start_frame=0 -animation/clip_68/end_frame=0 -animation/clip_68/loops=false -animation/clip_69/name="" -animation/clip_69/start_frame=0 -animation/clip_69/end_frame=0 -animation/clip_69/loops=false -animation/clip_70/name="" -animation/clip_70/start_frame=0 -animation/clip_70/end_frame=0 -animation/clip_70/loops=false -animation/clip_71/name="" -animation/clip_71/start_frame=0 -animation/clip_71/end_frame=0 -animation/clip_71/loops=false -animation/clip_72/name="" -animation/clip_72/start_frame=0 -animation/clip_72/end_frame=0 -animation/clip_72/loops=false -animation/clip_73/name="" -animation/clip_73/start_frame=0 -animation/clip_73/end_frame=0 -animation/clip_73/loops=false -animation/clip_74/name="" -animation/clip_74/start_frame=0 -animation/clip_74/end_frame=0 -animation/clip_74/loops=false -animation/clip_75/name="" -animation/clip_75/start_frame=0 -animation/clip_75/end_frame=0 -animation/clip_75/loops=false -animation/clip_76/name="" -animation/clip_76/start_frame=0 -animation/clip_76/end_frame=0 -animation/clip_76/loops=false -animation/clip_77/name="" -animation/clip_77/start_frame=0 -animation/clip_77/end_frame=0 -animation/clip_77/loops=false -animation/clip_78/name="" -animation/clip_78/start_frame=0 -animation/clip_78/end_frame=0 -animation/clip_78/loops=false -animation/clip_79/name="" -animation/clip_79/start_frame=0 -animation/clip_79/end_frame=0 -animation/clip_79/loops=false -animation/clip_80/name="" -animation/clip_80/start_frame=0 -animation/clip_80/end_frame=0 -animation/clip_80/loops=false -animation/clip_81/name="" -animation/clip_81/start_frame=0 -animation/clip_81/end_frame=0 -animation/clip_81/loops=false -animation/clip_82/name="" -animation/clip_82/start_frame=0 -animation/clip_82/end_frame=0 -animation/clip_82/loops=false -animation/clip_83/name="" -animation/clip_83/start_frame=0 -animation/clip_83/end_frame=0 -animation/clip_83/loops=false -animation/clip_84/name="" -animation/clip_84/start_frame=0 -animation/clip_84/end_frame=0 -animation/clip_84/loops=false -animation/clip_85/name="" -animation/clip_85/start_frame=0 -animation/clip_85/end_frame=0 -animation/clip_85/loops=false -animation/clip_86/name="" -animation/clip_86/start_frame=0 -animation/clip_86/end_frame=0 -animation/clip_86/loops=false -animation/clip_87/name="" -animation/clip_87/start_frame=0 -animation/clip_87/end_frame=0 -animation/clip_87/loops=false -animation/clip_88/name="" -animation/clip_88/start_frame=0 -animation/clip_88/end_frame=0 -animation/clip_88/loops=false -animation/clip_89/name="" -animation/clip_89/start_frame=0 -animation/clip_89/end_frame=0 -animation/clip_89/loops=false -animation/clip_90/name="" -animation/clip_90/start_frame=0 -animation/clip_90/end_frame=0 -animation/clip_90/loops=false -animation/clip_91/name="" -animation/clip_91/start_frame=0 -animation/clip_91/end_frame=0 -animation/clip_91/loops=false -animation/clip_92/name="" -animation/clip_92/start_frame=0 -animation/clip_92/end_frame=0 -animation/clip_92/loops=false -animation/clip_93/name="" -animation/clip_93/start_frame=0 -animation/clip_93/end_frame=0 -animation/clip_93/loops=false -animation/clip_94/name="" -animation/clip_94/start_frame=0 -animation/clip_94/end_frame=0 -animation/clip_94/loops=false -animation/clip_95/name="" -animation/clip_95/start_frame=0 -animation/clip_95/end_frame=0 -animation/clip_95/loops=false -animation/clip_96/name="" -animation/clip_96/start_frame=0 -animation/clip_96/end_frame=0 -animation/clip_96/loops=false -animation/clip_97/name="" -animation/clip_97/start_frame=0 -animation/clip_97/end_frame=0 -animation/clip_97/loops=false -animation/clip_98/name="" -animation/clip_98/start_frame=0 -animation/clip_98/end_frame=0 -animation/clip_98/loops=false -animation/clip_99/name="" -animation/clip_99/start_frame=0 -animation/clip_99/end_frame=0 -animation/clip_99/loops=false -animation/clip_100/name="" -animation/clip_100/start_frame=0 -animation/clip_100/end_frame=0 -animation/clip_100/loops=false -animation/clip_101/name="" -animation/clip_101/start_frame=0 -animation/clip_101/end_frame=0 -animation/clip_101/loops=false -animation/clip_102/name="" -animation/clip_102/start_frame=0 -animation/clip_102/end_frame=0 -animation/clip_102/loops=false -animation/clip_103/name="" -animation/clip_103/start_frame=0 -animation/clip_103/end_frame=0 -animation/clip_103/loops=false -animation/clip_104/name="" -animation/clip_104/start_frame=0 -animation/clip_104/end_frame=0 -animation/clip_104/loops=false -animation/clip_105/name="" -animation/clip_105/start_frame=0 -animation/clip_105/end_frame=0 -animation/clip_105/loops=false -animation/clip_106/name="" -animation/clip_106/start_frame=0 -animation/clip_106/end_frame=0 -animation/clip_106/loops=false -animation/clip_107/name="" -animation/clip_107/start_frame=0 -animation/clip_107/end_frame=0 -animation/clip_107/loops=false -animation/clip_108/name="" -animation/clip_108/start_frame=0 -animation/clip_108/end_frame=0 -animation/clip_108/loops=false -animation/clip_109/name="" -animation/clip_109/start_frame=0 -animation/clip_109/end_frame=0 -animation/clip_109/loops=false -animation/clip_110/name="" -animation/clip_110/start_frame=0 -animation/clip_110/end_frame=0 -animation/clip_110/loops=false -animation/clip_111/name="" -animation/clip_111/start_frame=0 -animation/clip_111/end_frame=0 -animation/clip_111/loops=false -animation/clip_112/name="" -animation/clip_112/start_frame=0 -animation/clip_112/end_frame=0 -animation/clip_112/loops=false -animation/clip_113/name="" -animation/clip_113/start_frame=0 -animation/clip_113/end_frame=0 -animation/clip_113/loops=false -animation/clip_114/name="" -animation/clip_114/start_frame=0 -animation/clip_114/end_frame=0 -animation/clip_114/loops=false -animation/clip_115/name="" -animation/clip_115/start_frame=0 -animation/clip_115/end_frame=0 -animation/clip_115/loops=false -animation/clip_116/name="" -animation/clip_116/start_frame=0 -animation/clip_116/end_frame=0 -animation/clip_116/loops=false -animation/clip_117/name="" -animation/clip_117/start_frame=0 -animation/clip_117/end_frame=0 -animation/clip_117/loops=false -animation/clip_118/name="" -animation/clip_118/start_frame=0 -animation/clip_118/end_frame=0 -animation/clip_118/loops=false -animation/clip_119/name="" -animation/clip_119/start_frame=0 -animation/clip_119/end_frame=0 -animation/clip_119/loops=false -animation/clip_120/name="" -animation/clip_120/start_frame=0 -animation/clip_120/end_frame=0 -animation/clip_120/loops=false -animation/clip_121/name="" -animation/clip_121/start_frame=0 -animation/clip_121/end_frame=0 -animation/clip_121/loops=false -animation/clip_122/name="" -animation/clip_122/start_frame=0 -animation/clip_122/end_frame=0 -animation/clip_122/loops=false -animation/clip_123/name="" -animation/clip_123/start_frame=0 -animation/clip_123/end_frame=0 -animation/clip_123/loops=false -animation/clip_124/name="" -animation/clip_124/start_frame=0 -animation/clip_124/end_frame=0 -animation/clip_124/loops=false -animation/clip_125/name="" -animation/clip_125/start_frame=0 -animation/clip_125/end_frame=0 -animation/clip_125/loops=false -animation/clip_126/name="" -animation/clip_126/start_frame=0 -animation/clip_126/end_frame=0 -animation/clip_126/loops=false -animation/clip_127/name="" -animation/clip_127/start_frame=0 -animation/clip_127/end_frame=0 -animation/clip_127/loops=false -animation/clip_128/name="" -animation/clip_128/start_frame=0 -animation/clip_128/end_frame=0 -animation/clip_128/loops=false -animation/clip_129/name="" -animation/clip_129/start_frame=0 -animation/clip_129/end_frame=0 -animation/clip_129/loops=false -animation/clip_130/name="" -animation/clip_130/start_frame=0 -animation/clip_130/end_frame=0 -animation/clip_130/loops=false -animation/clip_131/name="" -animation/clip_131/start_frame=0 -animation/clip_131/end_frame=0 -animation/clip_131/loops=false -animation/clip_132/name="" -animation/clip_132/start_frame=0 -animation/clip_132/end_frame=0 -animation/clip_132/loops=false -animation/clip_133/name="" -animation/clip_133/start_frame=0 -animation/clip_133/end_frame=0 -animation/clip_133/loops=false -animation/clip_134/name="" -animation/clip_134/start_frame=0 -animation/clip_134/end_frame=0 -animation/clip_134/loops=false -animation/clip_135/name="" -animation/clip_135/start_frame=0 -animation/clip_135/end_frame=0 -animation/clip_135/loops=false -animation/clip_136/name="" -animation/clip_136/start_frame=0 -animation/clip_136/end_frame=0 -animation/clip_136/loops=false -animation/clip_137/name="" -animation/clip_137/start_frame=0 -animation/clip_137/end_frame=0 -animation/clip_137/loops=false -animation/clip_138/name="" -animation/clip_138/start_frame=0 -animation/clip_138/end_frame=0 -animation/clip_138/loops=false -animation/clip_139/name="" -animation/clip_139/start_frame=0 -animation/clip_139/end_frame=0 -animation/clip_139/loops=false -animation/clip_140/name="" -animation/clip_140/start_frame=0 -animation/clip_140/end_frame=0 -animation/clip_140/loops=false -animation/clip_141/name="" -animation/clip_141/start_frame=0 -animation/clip_141/end_frame=0 -animation/clip_141/loops=false -animation/clip_142/name="" -animation/clip_142/start_frame=0 -animation/clip_142/end_frame=0 -animation/clip_142/loops=false -animation/clip_143/name="" -animation/clip_143/start_frame=0 -animation/clip_143/end_frame=0 -animation/clip_143/loops=false -animation/clip_144/name="" -animation/clip_144/start_frame=0 -animation/clip_144/end_frame=0 -animation/clip_144/loops=false -animation/clip_145/name="" -animation/clip_145/start_frame=0 -animation/clip_145/end_frame=0 -animation/clip_145/loops=false -animation/clip_146/name="" -animation/clip_146/start_frame=0 -animation/clip_146/end_frame=0 -animation/clip_146/loops=false -animation/clip_147/name="" -animation/clip_147/start_frame=0 -animation/clip_147/end_frame=0 -animation/clip_147/loops=false -animation/clip_148/name="" -animation/clip_148/start_frame=0 -animation/clip_148/end_frame=0 -animation/clip_148/loops=false -animation/clip_149/name="" -animation/clip_149/start_frame=0 -animation/clip_149/end_frame=0 -animation/clip_149/loops=false -animation/clip_150/name="" -animation/clip_150/start_frame=0 -animation/clip_150/end_frame=0 -animation/clip_150/loops=false -animation/clip_151/name="" -animation/clip_151/start_frame=0 -animation/clip_151/end_frame=0 -animation/clip_151/loops=false -animation/clip_152/name="" -animation/clip_152/start_frame=0 -animation/clip_152/end_frame=0 -animation/clip_152/loops=false -animation/clip_153/name="" -animation/clip_153/start_frame=0 -animation/clip_153/end_frame=0 -animation/clip_153/loops=false -animation/clip_154/name="" -animation/clip_154/start_frame=0 -animation/clip_154/end_frame=0 -animation/clip_154/loops=false -animation/clip_155/name="" -animation/clip_155/start_frame=0 -animation/clip_155/end_frame=0 -animation/clip_155/loops=false -animation/clip_156/name="" -animation/clip_156/start_frame=0 -animation/clip_156/end_frame=0 -animation/clip_156/loops=false -animation/clip_157/name="" -animation/clip_157/start_frame=0 -animation/clip_157/end_frame=0 -animation/clip_157/loops=false -animation/clip_158/name="" -animation/clip_158/start_frame=0 -animation/clip_158/end_frame=0 -animation/clip_158/loops=false -animation/clip_159/name="" -animation/clip_159/start_frame=0 -animation/clip_159/end_frame=0 -animation/clip_159/loops=false -animation/clip_160/name="" -animation/clip_160/start_frame=0 -animation/clip_160/end_frame=0 -animation/clip_160/loops=false -animation/clip_161/name="" -animation/clip_161/start_frame=0 -animation/clip_161/end_frame=0 -animation/clip_161/loops=false -animation/clip_162/name="" -animation/clip_162/start_frame=0 -animation/clip_162/end_frame=0 -animation/clip_162/loops=false -animation/clip_163/name="" -animation/clip_163/start_frame=0 -animation/clip_163/end_frame=0 -animation/clip_163/loops=false -animation/clip_164/name="" -animation/clip_164/start_frame=0 -animation/clip_164/end_frame=0 -animation/clip_164/loops=false -animation/clip_165/name="" -animation/clip_165/start_frame=0 -animation/clip_165/end_frame=0 -animation/clip_165/loops=false -animation/clip_166/name="" -animation/clip_166/start_frame=0 -animation/clip_166/end_frame=0 -animation/clip_166/loops=false -animation/clip_167/name="" -animation/clip_167/start_frame=0 -animation/clip_167/end_frame=0 -animation/clip_167/loops=false -animation/clip_168/name="" -animation/clip_168/start_frame=0 -animation/clip_168/end_frame=0 -animation/clip_168/loops=false -animation/clip_169/name="" -animation/clip_169/start_frame=0 -animation/clip_169/end_frame=0 -animation/clip_169/loops=false -animation/clip_170/name="" -animation/clip_170/start_frame=0 -animation/clip_170/end_frame=0 -animation/clip_170/loops=false -animation/clip_171/name="" -animation/clip_171/start_frame=0 -animation/clip_171/end_frame=0 -animation/clip_171/loops=false -animation/clip_172/name="" -animation/clip_172/start_frame=0 -animation/clip_172/end_frame=0 -animation/clip_172/loops=false -animation/clip_173/name="" -animation/clip_173/start_frame=0 -animation/clip_173/end_frame=0 -animation/clip_173/loops=false -animation/clip_174/name="" -animation/clip_174/start_frame=0 -animation/clip_174/end_frame=0 -animation/clip_174/loops=false -animation/clip_175/name="" -animation/clip_175/start_frame=0 -animation/clip_175/end_frame=0 -animation/clip_175/loops=false -animation/clip_176/name="" -animation/clip_176/start_frame=0 -animation/clip_176/end_frame=0 -animation/clip_176/loops=false -animation/clip_177/name="" -animation/clip_177/start_frame=0 -animation/clip_177/end_frame=0 -animation/clip_177/loops=false -animation/clip_178/name="" -animation/clip_178/start_frame=0 -animation/clip_178/end_frame=0 -animation/clip_178/loops=false -animation/clip_179/name="" -animation/clip_179/start_frame=0 -animation/clip_179/end_frame=0 -animation/clip_179/loops=false -animation/clip_180/name="" -animation/clip_180/start_frame=0 -animation/clip_180/end_frame=0 -animation/clip_180/loops=false -animation/clip_181/name="" -animation/clip_181/start_frame=0 -animation/clip_181/end_frame=0 -animation/clip_181/loops=false -animation/clip_182/name="" -animation/clip_182/start_frame=0 -animation/clip_182/end_frame=0 -animation/clip_182/loops=false -animation/clip_183/name="" -animation/clip_183/start_frame=0 -animation/clip_183/end_frame=0 -animation/clip_183/loops=false -animation/clip_184/name="" -animation/clip_184/start_frame=0 -animation/clip_184/end_frame=0 -animation/clip_184/loops=false -animation/clip_185/name="" -animation/clip_185/start_frame=0 -animation/clip_185/end_frame=0 -animation/clip_185/loops=false -animation/clip_186/name="" -animation/clip_186/start_frame=0 -animation/clip_186/end_frame=0 -animation/clip_186/loops=false -animation/clip_187/name="" -animation/clip_187/start_frame=0 -animation/clip_187/end_frame=0 -animation/clip_187/loops=false -animation/clip_188/name="" -animation/clip_188/start_frame=0 -animation/clip_188/end_frame=0 -animation/clip_188/loops=false -animation/clip_189/name="" -animation/clip_189/start_frame=0 -animation/clip_189/end_frame=0 -animation/clip_189/loops=false -animation/clip_190/name="" -animation/clip_190/start_frame=0 -animation/clip_190/end_frame=0 -animation/clip_190/loops=false -animation/clip_191/name="" -animation/clip_191/start_frame=0 -animation/clip_191/end_frame=0 -animation/clip_191/loops=false -animation/clip_192/name="" -animation/clip_192/start_frame=0 -animation/clip_192/end_frame=0 -animation/clip_192/loops=false -animation/clip_193/name="" -animation/clip_193/start_frame=0 -animation/clip_193/end_frame=0 -animation/clip_193/loops=false -animation/clip_194/name="" -animation/clip_194/start_frame=0 -animation/clip_194/end_frame=0 -animation/clip_194/loops=false -animation/clip_195/name="" -animation/clip_195/start_frame=0 -animation/clip_195/end_frame=0 -animation/clip_195/loops=false -animation/clip_196/name="" -animation/clip_196/start_frame=0 -animation/clip_196/end_frame=0 -animation/clip_196/loops=false -animation/clip_197/name="" -animation/clip_197/start_frame=0 -animation/clip_197/end_frame=0 -animation/clip_197/loops=false -animation/clip_198/name="" -animation/clip_198/start_frame=0 -animation/clip_198/end_frame=0 -animation/clip_198/loops=false -animation/clip_199/name="" -animation/clip_199/start_frame=0 -animation/clip_199/end_frame=0 -animation/clip_199/loops=false -animation/clip_200/name="" -animation/clip_200/start_frame=0 -animation/clip_200/end_frame=0 -animation/clip_200/loops=false -animation/clip_201/name="" -animation/clip_201/start_frame=0 -animation/clip_201/end_frame=0 -animation/clip_201/loops=false -animation/clip_202/name="" -animation/clip_202/start_frame=0 -animation/clip_202/end_frame=0 -animation/clip_202/loops=false -animation/clip_203/name="" -animation/clip_203/start_frame=0 -animation/clip_203/end_frame=0 -animation/clip_203/loops=false -animation/clip_204/name="" -animation/clip_204/start_frame=0 -animation/clip_204/end_frame=0 -animation/clip_204/loops=false -animation/clip_205/name="" -animation/clip_205/start_frame=0 -animation/clip_205/end_frame=0 -animation/clip_205/loops=false -animation/clip_206/name="" -animation/clip_206/start_frame=0 -animation/clip_206/end_frame=0 -animation/clip_206/loops=false -animation/clip_207/name="" -animation/clip_207/start_frame=0 -animation/clip_207/end_frame=0 -animation/clip_207/loops=false -animation/clip_208/name="" -animation/clip_208/start_frame=0 -animation/clip_208/end_frame=0 -animation/clip_208/loops=false -animation/clip_209/name="" -animation/clip_209/start_frame=0 -animation/clip_209/end_frame=0 -animation/clip_209/loops=false -animation/clip_210/name="" -animation/clip_210/start_frame=0 -animation/clip_210/end_frame=0 -animation/clip_210/loops=false -animation/clip_211/name="" -animation/clip_211/start_frame=0 -animation/clip_211/end_frame=0 -animation/clip_211/loops=false -animation/clip_212/name="" -animation/clip_212/start_frame=0 -animation/clip_212/end_frame=0 -animation/clip_212/loops=false -animation/clip_213/name="" -animation/clip_213/start_frame=0 -animation/clip_213/end_frame=0 -animation/clip_213/loops=false -animation/clip_214/name="" -animation/clip_214/start_frame=0 -animation/clip_214/end_frame=0 -animation/clip_214/loops=false -animation/clip_215/name="" -animation/clip_215/start_frame=0 -animation/clip_215/end_frame=0 -animation/clip_215/loops=false -animation/clip_216/name="" -animation/clip_216/start_frame=0 -animation/clip_216/end_frame=0 -animation/clip_216/loops=false -animation/clip_217/name="" -animation/clip_217/start_frame=0 -animation/clip_217/end_frame=0 -animation/clip_217/loops=false -animation/clip_218/name="" -animation/clip_218/start_frame=0 -animation/clip_218/end_frame=0 -animation/clip_218/loops=false -animation/clip_219/name="" -animation/clip_219/start_frame=0 -animation/clip_219/end_frame=0 -animation/clip_219/loops=false -animation/clip_220/name="" -animation/clip_220/start_frame=0 -animation/clip_220/end_frame=0 -animation/clip_220/loops=false -animation/clip_221/name="" -animation/clip_221/start_frame=0 -animation/clip_221/end_frame=0 -animation/clip_221/loops=false -animation/clip_222/name="" -animation/clip_222/start_frame=0 -animation/clip_222/end_frame=0 -animation/clip_222/loops=false -animation/clip_223/name="" -animation/clip_223/start_frame=0 -animation/clip_223/end_frame=0 -animation/clip_223/loops=false -animation/clip_224/name="" -animation/clip_224/start_frame=0 -animation/clip_224/end_frame=0 -animation/clip_224/loops=false -animation/clip_225/name="" -animation/clip_225/start_frame=0 -animation/clip_225/end_frame=0 -animation/clip_225/loops=false -animation/clip_226/name="" -animation/clip_226/start_frame=0 -animation/clip_226/end_frame=0 -animation/clip_226/loops=false -animation/clip_227/name="" -animation/clip_227/start_frame=0 -animation/clip_227/end_frame=0 -animation/clip_227/loops=false -animation/clip_228/name="" -animation/clip_228/start_frame=0 -animation/clip_228/end_frame=0 -animation/clip_228/loops=false -animation/clip_229/name="" -animation/clip_229/start_frame=0 -animation/clip_229/end_frame=0 -animation/clip_229/loops=false -animation/clip_230/name="" -animation/clip_230/start_frame=0 -animation/clip_230/end_frame=0 -animation/clip_230/loops=false -animation/clip_231/name="" -animation/clip_231/start_frame=0 -animation/clip_231/end_frame=0 -animation/clip_231/loops=false -animation/clip_232/name="" -animation/clip_232/start_frame=0 -animation/clip_232/end_frame=0 -animation/clip_232/loops=false -animation/clip_233/name="" -animation/clip_233/start_frame=0 -animation/clip_233/end_frame=0 -animation/clip_233/loops=false -animation/clip_234/name="" -animation/clip_234/start_frame=0 -animation/clip_234/end_frame=0 -animation/clip_234/loops=false -animation/clip_235/name="" -animation/clip_235/start_frame=0 -animation/clip_235/end_frame=0 -animation/clip_235/loops=false -animation/clip_236/name="" -animation/clip_236/start_frame=0 -animation/clip_236/end_frame=0 -animation/clip_236/loops=false -animation/clip_237/name="" -animation/clip_237/start_frame=0 -animation/clip_237/end_frame=0 -animation/clip_237/loops=false -animation/clip_238/name="" -animation/clip_238/start_frame=0 -animation/clip_238/end_frame=0 -animation/clip_238/loops=false -animation/clip_239/name="" -animation/clip_239/start_frame=0 -animation/clip_239/end_frame=0 -animation/clip_239/loops=false -animation/clip_240/name="" -animation/clip_240/start_frame=0 -animation/clip_240/end_frame=0 -animation/clip_240/loops=false -animation/clip_241/name="" -animation/clip_241/start_frame=0 -animation/clip_241/end_frame=0 -animation/clip_241/loops=false -animation/clip_242/name="" -animation/clip_242/start_frame=0 -animation/clip_242/end_frame=0 -animation/clip_242/loops=false -animation/clip_243/name="" -animation/clip_243/start_frame=0 -animation/clip_243/end_frame=0 -animation/clip_243/loops=false -animation/clip_244/name="" -animation/clip_244/start_frame=0 -animation/clip_244/end_frame=0 -animation/clip_244/loops=false -animation/clip_245/name="" -animation/clip_245/start_frame=0 -animation/clip_245/end_frame=0 -animation/clip_245/loops=false -animation/clip_246/name="" -animation/clip_246/start_frame=0 -animation/clip_246/end_frame=0 -animation/clip_246/loops=false -animation/clip_247/name="" -animation/clip_247/start_frame=0 -animation/clip_247/end_frame=0 -animation/clip_247/loops=false -animation/clip_248/name="" -animation/clip_248/start_frame=0 -animation/clip_248/end_frame=0 -animation/clip_248/loops=false -animation/clip_249/name="" -animation/clip_249/start_frame=0 -animation/clip_249/end_frame=0 -animation/clip_249/loops=false -animation/clip_250/name="" -animation/clip_250/start_frame=0 -animation/clip_250/end_frame=0 -animation/clip_250/loops=false -animation/clip_251/name="" -animation/clip_251/start_frame=0 -animation/clip_251/end_frame=0 -animation/clip_251/loops=false -animation/clip_252/name="" -animation/clip_252/start_frame=0 -animation/clip_252/end_frame=0 -animation/clip_252/loops=false -animation/clip_253/name="" -animation/clip_253/start_frame=0 -animation/clip_253/end_frame=0 -animation/clip_253/loops=false -animation/clip_254/name="" -animation/clip_254/start_frame=0 -animation/clip_254/end_frame=0 -animation/clip_254/loops=false -animation/clip_255/name="" -animation/clip_255/start_frame=0 -animation/clip_255/end_frame=0 -animation/clip_255/loops=false -animation/clip_256/name="" -animation/clip_256/start_frame=0 -animation/clip_256/end_frame=0 -animation/clip_256/loops=false +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/assets/meshes/tube/tube.tscn b/assets/meshes/tube/tube.tscn new file mode 100644 index 00000000..65cb71f5 --- /dev/null +++ b/assets/meshes/tube/tube.tscn @@ -0,0 +1,5 @@ +[gd_scene load_steps=2 format=3 uid="uid://dv5fw4334rjng"] + +[ext_resource type="PackedScene" uid="uid://b6ooxhmtqv5hs" path="res://assets/meshes/tube/tube.glb" id="1_2ic3o"] + +[node name="Tube" instance=ExtResource("1_2ic3o")] diff --git a/assets/meshes/tube/tube_mesh.tres b/assets/meshes/tube/tube_mesh.tres index 0f960f2d..c0fa0a05 100644 --- a/assets/meshes/tube/tube_mesh.tres +++ b/assets/meshes/tube/tube_mesh.tres @@ -1,15 +1,33 @@ -[gd_resource type="ArrayMesh" format=2] +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://u5c1y27oj00t"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_63gm4"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_hgony"] +_surfaces = [{ +"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1), +"format": 4097, +"index_count": 96, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 1, 0, 31, 0, 30, 0, 0, 0, 1, 0), +"lods": [0.0672776, PackedByteArray(2, 0, 9, 0, 5, 0, 2, 0, 10, 0, 9, 0, 30, 0, 2, 0, 5, 0, 10, 0, 13, 0, 9, 0, 30, 0, 5, 0, 31, 0, 10, 0, 14, 0, 13, 0, 14, 0, 17, 0, 13, 0, 14, 0, 16, 0, 17, 0, 28, 0, 30, 0, 31, 0, 28, 0, 31, 0, 27, 0, 24, 0, 28, 0, 27, 0, 24, 0, 27, 0, 23, 0, 20, 0, 24, 0, 23, 0, 20, 0, 23, 0, 19, 0, 16, 0, 20, 0, 19, 0, 16, 0, 19, 0, 17, 0), 0.164049, PackedByteArray(2, 0, 13, 0, 5, 0, 2, 0, 10, 0, 13, 0, 10, 0, 17, 0, 13, 0, 10, 0, 16, 0, 17, 0, 16, 0, 23, 0, 17, 0, 16, 0, 20, 0, 23, 0, 20, 0, 2, 0, 23, 0, 2, 0, 5, 0, 23, 0), 0.399072, PackedByteArray(20, 0, 17, 0, 5, 0, 20, 0, 16, 0, 17, 0, 16, 0, 5, 0, 17, 0, 16, 0, 20, 0, 5, 0)], +"primitive": 3, +"vertex_count": 32, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 22, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 190, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 190, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 94, 131, 236, 62, 0, 0, 0, 191, 21, 239, 67, 190, 94, 131, 236, 62, 0, 0, 0, 63, 21, 239, 67, 190, 0, 0, 0, 63, 0, 0, 0, 191, 46, 189, 187, 50, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 95, 131, 236, 62, 0, 0, 0, 63, 20, 239, 67, 62, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 62, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 23, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 62, 23, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 62, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 21, 239, 67, 190, 0, 0, 0, 191, 94, 131, 236, 62, 21, 239, 67, 190, 0, 0, 0, 63, 94, 131, 236, 62, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 242, 4, 181, 190, 0, 0, 0, 63, 244, 4, 181, 62, 94, 131, 236, 190, 0, 0, 0, 191, 26, 239, 67, 62, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 0, 0, 0, 191, 0, 0, 0, 191, 46, 222, 204, 177, 0, 0, 0, 191, 0, 0, 0, 63, 46, 222, 204, 177, 93, 131, 236, 190, 0, 0, 0, 191, 27, 239, 67, 190, 93, 131, 236, 190, 0, 0, 0, 63, 27, 239, 67, 190, 245, 4, 181, 190, 0, 0, 0, 191, 242, 4, 181, 190, 245, 4, 181, 190, 0, 0, 0, 63, 242, 4, 181, 190, 21, 239, 67, 190, 0, 0, 0, 191, 95, 131, 236, 190, 21, 239, 67, 190, 0, 0, 0, 63, 95, 131, 236, 190) +}] +blend_shape_mode = 0 [resource] resource_name = "tube_Cylinder" -surfaces/0 = { -"aabb": AABB( -0.5, -0.5, -0.5, 1, 1, 1 ), -"array_data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 127, 126, 129, 63, 0, 56, 0, 60, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 127, 126, 129, 63, 0, 56, 0, 0, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 127, 89, 129, 82, 0, 55, 0, 60, 22, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 190, 127, 89, 129, 82, 0, 55, 0, 0, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 190, 127, 63, 129, 95, 0, 54, 0, 60, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 127, 63, 129, 95, 0, 54, 0, 0, 94, 131, 236, 62, 0, 0, 0, 191, 21, 239, 67, 190, 127, 37, 129, 108, 0, 53, 0, 60, 94, 131, 236, 62, 0, 0, 0, 63, 21, 239, 67, 190, 127, 37, 129, 108, 0, 53, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 46, 189, 187, 50, 127, 0, 129, 127, 0, 52, 0, 60, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 127, 0, 129, 127, 0, 52, 0, 0, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 89, 0, 127, 108, 0, 50, 0, 60, 95, 131, 236, 62, 0, 0, 0, 63, 20, 239, 67, 62, 89, 0, 127, 108, 0, 50, 0, 0, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 62, 63, 0, 127, 95, 0, 48, 0, 60, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 63, 0, 127, 95, 0, 48, 0, 0, 23, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 62, 37, 0, 127, 82, 0, 44, 0, 60, 23, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 62, 37, 0, 127, 82, 0, 44, 0, 0, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 0, 0, 126, 63, 0, 0, 0, 60, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 0, 0, 126, 63, 0, 60, 0, 60, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 126, 63, 0, 0, 0, 0, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 126, 63, 0, 60, 0, 0, 21, 239, 67, 190, 0, 0, 0, 191, 94, 131, 236, 62, 219, 0, 89, 63, 128, 59, 0, 60, 21, 239, 67, 190, 0, 0, 0, 63, 94, 131, 236, 62, 219, 0, 89, 63, 128, 59, 0, 0, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 193, 0, 63, 63, 0, 59, 0, 60, 242, 4, 181, 190, 0, 0, 0, 63, 244, 4, 181, 62, 193, 0, 63, 63, 0, 59, 0, 0, 94, 131, 236, 190, 0, 0, 0, 191, 26, 239, 67, 62, 167, 0, 37, 63, 128, 58, 0, 60, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 167, 0, 37, 63, 128, 58, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 46, 222, 204, 177, 129, 0, 0, 63, 0, 58, 0, 60, 0, 0, 0, 191, 0, 0, 0, 63, 46, 222, 204, 177, 129, 0, 0, 63, 0, 58, 0, 0, 93, 131, 236, 190, 0, 0, 0, 191, 27, 239, 67, 190, 129, 37, 219, 63, 127, 57, 0, 60, 93, 131, 236, 190, 0, 0, 0, 63, 27, 239, 67, 190, 129, 37, 219, 63, 127, 57, 0, 0, 245, 4, 181, 190, 0, 0, 0, 191, 242, 4, 181, 190, 129, 63, 193, 63, 0, 57, 0, 60, 245, 4, 181, 190, 0, 0, 0, 63, 242, 4, 181, 190, 129, 63, 193, 63, 0, 57, 0, 0, 21, 239, 67, 190, 0, 0, 0, 191, 95, 131, 236, 190, 129, 89, 167, 63, 128, 56, 0, 60, 21, 239, 67, 190, 0, 0, 0, 63, 95, 131, 236, 190, 129, 89, 167, 63, 128, 56, 0, 0 ), -"array_index_data": PoolByteArray( 0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 18, 0, 15, 0, 14, 0, 16, 0, 18, 0, 17, 0, 21, 0, 19, 0, 17, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 1, 0, 33, 0, 32, 0, 0, 0, 1, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1), +"attribute_data": PackedByteArray(0, 0, 0, 63, 0, 0, 128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 160, 62, 0, 0, 128, 63, 0, 0, 160, 62, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 128, 63, 0, 0, 128, 62, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 128, 63, 0, 0, 0, 62, 0, 0, 0, 0, 4, 0, 128, 61, 0, 0, 128, 63, 4, 0, 128, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 112, 63, 0, 0, 128, 63, 0, 0, 112, 63, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 128, 63, 0, 0, 64, 63, 0, 0, 0, 0, 255, 255, 47, 63, 0, 0, 128, 63, 255, 255, 47, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 16, 63, 0, 0, 128, 63, 0, 0, 16, 63, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 0, 0), +"format": 4119, "index_count": 96, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 34 -} +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 18, 0, 15, 0, 14, 0, 16, 0, 18, 0, 17, 0, 21, 0, 19, 0, 17, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 1, 0, 33, 0, 32, 0, 0, 0, 1, 0), +"lods": [0.0672776, PackedByteArray(57, 0, 59, 0, 58, 0, 57, 0, 10, 0, 59, 0, 32, 0, 57, 0, 58, 0, 10, 0, 13, 0, 59, 0, 32, 0, 58, 0, 33, 0, 10, 0, 14, 0, 13, 0, 14, 0, 18, 0, 13, 0, 14, 0, 16, 0, 18, 0, 30, 0, 32, 0, 33, 0, 30, 0, 33, 0, 29, 0, 26, 0, 30, 0, 29, 0, 26, 0, 29, 0, 25, 0, 22, 0, 26, 0, 25, 0, 22, 0, 25, 0, 21, 0, 17, 0, 22, 0, 21, 0, 17, 0, 21, 0, 19, 0), 0.164049, PackedByteArray(42, 0, 49, 0, 45, 0, 42, 0, 47, 0, 49, 0, 48, 0, 52, 0, 13, 0, 48, 0, 50, 0, 52, 0, 51, 0, 54, 0, 19, 0, 51, 0, 22, 0, 54, 0, 53, 0, 43, 0, 55, 0, 44, 0, 46, 0, 56, 0), 0.399072, PackedByteArray(40, 0, 38, 0, 34, 0, 22, 0, 16, 0, 18, 0, 37, 0, 35, 0, 39, 0, 17, 0, 41, 0, 36, 0)], +"material": SubResource("StandardMaterial3D_63gm4"), +"primitive": 3, +"vertex_count": 60, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 255, 255, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 255, 255, 255, 255, 0, 0, 255, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 255, 255, 129, 218, 0, 0, 189, 210, 22, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 190, 255, 255, 129, 218, 0, 0, 189, 210, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 190, 255, 255, 255, 191, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 255, 255, 255, 191, 0, 0, 255, 223, 94, 131, 236, 62, 0, 0, 0, 191, 21, 239, 67, 190, 255, 255, 124, 165, 0, 0, 64, 237, 94, 131, 236, 62, 0, 0, 0, 63, 21, 239, 67, 190, 255, 255, 124, 165, 0, 0, 64, 237, 0, 0, 0, 63, 0, 0, 0, 191, 46, 189, 187, 50, 255, 255, 255, 127, 0, 0, 255, 255, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 255, 255, 255, 127, 0, 0, 255, 255, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 129, 218, 255, 127, 255, 255, 64, 237, 95, 131, 236, 62, 0, 0, 0, 63, 20, 239, 67, 62, 129, 218, 255, 127, 255, 255, 64, 237, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 62, 255, 191, 255, 127, 255, 255, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 255, 191, 255, 127, 255, 255, 255, 223, 23, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 62, 124, 165, 255, 127, 255, 255, 189, 210, 23, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 62, 124, 165, 255, 127, 255, 255, 189, 210, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 21, 239, 67, 190, 0, 0, 0, 191, 94, 131, 236, 62, 130, 90, 255, 127, 129, 218, 255, 191, 21, 239, 67, 190, 0, 0, 0, 63, 94, 131, 236, 62, 130, 90, 255, 127, 129, 218, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 255, 63, 255, 127, 255, 191, 255, 191, 242, 4, 181, 190, 0, 0, 0, 63, 244, 4, 181, 62, 255, 63, 255, 127, 255, 191, 255, 191, 94, 131, 236, 190, 0, 0, 0, 191, 26, 239, 67, 62, 125, 37, 255, 127, 124, 165, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 125, 37, 255, 127, 124, 165, 255, 191, 0, 0, 0, 191, 0, 0, 0, 191, 46, 222, 204, 177, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 191, 0, 0, 0, 63, 46, 222, 204, 177, 0, 0, 255, 127, 255, 127, 255, 191, 93, 131, 236, 190, 0, 0, 0, 191, 27, 239, 67, 190, 0, 0, 124, 165, 130, 90, 255, 191, 93, 131, 236, 190, 0, 0, 0, 63, 27, 239, 67, 190, 0, 0, 124, 165, 130, 90, 255, 191, 245, 4, 181, 190, 0, 0, 0, 191, 242, 4, 181, 190, 0, 0, 255, 191, 255, 63, 255, 191, 245, 4, 181, 190, 0, 0, 0, 63, 242, 4, 181, 190, 0, 0, 255, 191, 255, 63, 255, 191, 21, 239, 67, 190, 0, 0, 0, 191, 95, 131, 236, 190, 0, 0, 129, 218, 125, 37, 255, 191, 21, 239, 67, 190, 0, 0, 0, 63, 95, 131, 236, 190, 0, 0, 129, 218, 125, 37, 255, 191, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 173, 197, 255, 127, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 0, 0, 15, 173, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 79, 101, 255, 127, 0, 0, 255, 223, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 166, 12, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 84, 173, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 116, 29, 255, 127, 254, 255, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 250, 172, 255, 127, 255, 191, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 40, 95, 255, 127, 255, 191, 255, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 255, 255, 126, 167, 0, 0, 189, 210, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 0, 0, 71, 174, 0, 0, 189, 210, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 0, 0, 74, 239, 0, 0, 189, 210, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 255, 255, 202, 156, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 0, 0, 163, 241, 0, 0, 255, 223, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 255, 255, 114, 131, 255, 255, 64, 237, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 0, 186, 255, 127, 255, 255, 64, 237, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 255, 255, 235, 135, 255, 255, 255, 223, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 52, 163, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 172, 91, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 144, 170, 255, 127, 254, 255, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 117, 3, 255, 127, 255, 191, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 180, 71, 255, 127, 124, 165, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 0, 0, 123, 133, 124, 165, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 0, 0, 130, 215, 124, 165, 255, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 255, 255, 47, 195, 0, 0, 189, 210, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 255, 255, 25, 214, 0, 0, 255, 223, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 255, 255, 117, 147, 0, 0, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_hgony") diff --git a/assets/nasa/starmap_and_constellation_figures_4k.jpg.import b/assets/nasa/starmap_and_constellation_figures_4k.jpg.import index 849f7bb2..c0f13893 100644 --- a/assets/nasa/starmap_and_constellation_figures_4k.jpg.import +++ b/assets/nasa/starmap_and_constellation_figures_4k.jpg.import @@ -1,35 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/starmap_and_constellation_figures_4k.jpg-44440b8ebaa8e4137f11fb76267d3017.stex" +type="CompressedTexture2D" +uid="uid://2tmlveuwlpbw" +path.bptc="res://.godot/imported/starmap_and_constellation_figures_4k.jpg-44440b8ebaa8e4137f11fb76267d3017.bptc.ctex" +path.astc="res://.godot/imported/starmap_and_constellation_figures_4k.jpg-44440b8ebaa8e4137f11fb76267d3017.astc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://assets/nasa/starmap_and_constellation_figures_4k.jpg" -dest_files=[ "res://.import/starmap_and_constellation_figures_4k.jpg-44440b8ebaa8e4137f11fb76267d3017.stex" ] +dest_files=["res://.godot/imported/starmap_and_constellation_figures_4k.jpg-44440b8ebaa8e4137f11fb76267d3017.bptc.ctex", "res://.godot/imported/starmap_and_constellation_figures_4k.jpg-44440b8ebaa8e4137f11fb76267d3017.astc.ctex"] [params] -compress/mode=0 +compress/mode=2 +compress/high_quality=true compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/wahooney.itch.io/blue_grid.png.import b/assets/wahooney.itch.io/blue_grid.png.import index c8a67f5e..132ddc82 100644 --- a/assets/wahooney.itch.io/blue_grid.png.import +++ b/assets/wahooney.itch.io/blue_grid.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/blue_grid.png-785a01a697c0777376608d81454e4958.s3tc.stex" -path.etc="res://.import/blue_grid.png-785a01a697c0777376608d81454e4958.etc.stex" +type="CompressedTexture2D" +uid="uid://l8veg5s02oeb" +path.s3tc="res://.godot/imported/blue_grid.png-785a01a697c0777376608d81454e4958.s3tc.ctex" +path.etc2="res://.godot/imported/blue_grid.png-785a01a697c0777376608d81454e4958.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/wahooney.itch.io/blue_grid.png" -dest_files=[ "res://.import/blue_grid.png-785a01a697c0777376608d81454e4958.s3tc.stex", "res://.import/blue_grid.png-785a01a697c0777376608d81454e4958.etc.stex" ] +dest_files=["res://.godot/imported/blue_grid.png-785a01a697c0777376608d81454e4958.s3tc.ctex", "res://.godot/imported/blue_grid.png-785a01a697c0777376608d81454e4958.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/wahooney.itch.io/blue_grid.tres b/assets/wahooney.itch.io/blue_grid.tres index aaea2650..6d9a728c 100644 --- a/assets/wahooney.itch.io/blue_grid.tres +++ b/assets/wahooney.itch.io/blue_grid.tres @@ -1,6 +1,6 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.png" type="Texture" id=1] +[ext_resource path="res://assets/wahooney.itch.io/blue_grid.png" type="Texture2D" id=1] [resource] albedo_texture = ExtResource( 1 ) diff --git a/assets/wahooney.itch.io/brown_grid.png.import b/assets/wahooney.itch.io/brown_grid.png.import index 0bc3db88..d7cc5bea 100644 --- a/assets/wahooney.itch.io/brown_grid.png.import +++ b/assets/wahooney.itch.io/brown_grid.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.s3tc.stex" -path.etc="res://.import/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.etc.stex" +type="CompressedTexture2D" +uid="uid://bskwc0drdadnd" +path.s3tc="res://.godot/imported/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.s3tc.ctex" +path.etc2="res://.godot/imported/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/wahooney.itch.io/brown_grid.png" -dest_files=[ "res://.import/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.s3tc.stex", "res://.import/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.etc.stex" ] +dest_files=["res://.godot/imported/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.s3tc.ctex", "res://.godot/imported/brown_grid.png-5cbd37038e3ea1da588854d56a43bef6.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/wahooney.itch.io/brown_grid_triplanar.tres b/assets/wahooney.itch.io/brown_grid_triplanar.tres index 993409f5..e6825e55 100644 --- a/assets/wahooney.itch.io/brown_grid_triplanar.tres +++ b/assets/wahooney.itch.io/brown_grid_triplanar.tres @@ -1,6 +1,6 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid.png" type="Texture" id=1] +[ext_resource path="res://assets/wahooney.itch.io/brown_grid.png" type="Texture2D" id=1] [resource] albedo_texture = ExtResource( 1 ) diff --git a/assets/wahooney.itch.io/green_grid.png.import b/assets/wahooney.itch.io/green_grid.png.import index 084607b8..04d75660 100644 --- a/assets/wahooney.itch.io/green_grid.png.import +++ b/assets/wahooney.itch.io/green_grid.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/green_grid.png-e9d81b3d42c428786d9997769a6729a2.s3tc.stex" -path.etc="res://.import/green_grid.png-e9d81b3d42c428786d9997769a6729a2.etc.stex" +type="CompressedTexture2D" +uid="uid://cg0bm6gkv7jr8" +path.s3tc="res://.godot/imported/green_grid.png-e9d81b3d42c428786d9997769a6729a2.s3tc.ctex" +path.etc2="res://.godot/imported/green_grid.png-e9d81b3d42c428786d9997769a6729a2.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/wahooney.itch.io/green_grid.png" -dest_files=[ "res://.import/green_grid.png-e9d81b3d42c428786d9997769a6729a2.s3tc.stex", "res://.import/green_grid.png-e9d81b3d42c428786d9997769a6729a2.etc.stex" ] +dest_files=["res://.godot/imported/green_grid.png-e9d81b3d42c428786d9997769a6729a2.s3tc.ctex", "res://.godot/imported/green_grid.png-e9d81b3d42c428786d9997769a6729a2.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/wahooney.itch.io/green_grid_triplanar.tres b/assets/wahooney.itch.io/green_grid_triplanar.tres index a7418282..2b0cd62a 100644 --- a/assets/wahooney.itch.io/green_grid_triplanar.tres +++ b/assets/wahooney.itch.io/green_grid_triplanar.tres @@ -1,6 +1,6 @@ -[gd_resource type="SpatialMaterial" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=2] -[ext_resource path="res://assets/wahooney.itch.io/green_grid.png" type="Texture" id=1] +[ext_resource path="res://assets/wahooney.itch.io/green_grid.png" type="Texture2D" id=1] [resource] params_diffuse_mode = 1 diff --git a/assets/wahooney.itch.io/white_grid.png.import b/assets/wahooney.itch.io/white_grid.png.import index 28bc9159..1d1aa160 100644 --- a/assets/wahooney.itch.io/white_grid.png.import +++ b/assets/wahooney.itch.io/white_grid.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.s3tc.stex" -path.etc="res://.import/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.etc.stex" +type="CompressedTexture2D" +uid="uid://cqgdloakbawp" +path.s3tc="res://.godot/imported/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.s3tc.ctex" +path.etc2="res://.godot/imported/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://assets/wahooney.itch.io/white_grid.png" -dest_files=[ "res://.import/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.s3tc.stex", "res://.import/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.etc.stex" ] +dest_files=["res://.godot/imported/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.s3tc.ctex", "res://.godot/imported/white_grid.png-c97900fbca7fa76e931b70c777bf36eb.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/default_env.tres b/default_env.tres index 0b01f43c..32503fd8 100644 --- a/default_env.tres +++ b/default_env.tres @@ -1,13 +1,16 @@ -[gd_resource type="Environment" load_steps=3 format=2] +[gd_resource type="Environment" load_steps=4 format=3 uid="uid://c75hc5t2ml5re"] -[ext_resource path="res://assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg" type="Texture" id=1] +[ext_resource type="Texture2D" uid="uid://dqoe1c5yn5dnv" path="res://assets/ambientcg.com/SkyOnlyHDRI023_2K-TONEMAPPED.jpg" id="1_hmp2i"] -[sub_resource type="PanoramaSky" id=1] -panorama = ExtResource( 1 ) +[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_5ed67"] +panorama = ExtResource("1_hmp2i") + +[sub_resource type="Sky" id="1"] +sky_material = SubResource("PanoramaSkyMaterial_5ed67") [resource] background_mode = 2 -background_sky = SubResource( 1 ) -background_sky_orientation = Basis( 0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025 ) -ambient_light_color = Color( 0.247059, 0.247059, 0.247059, 1 ) -ambient_light_sky_contribution = 0.5 +sky = SubResource("1") +sky_rotation = Vector3(0, 0.523599, 0) +ambient_light_color = Color(0.247059, 0.247059, 0.247059, 1) +ambient_light_sky_contribution = 0.0 diff --git a/demo_staging.gd b/demo_staging.gd index 2bcf35e6..19b52b63 100644 --- a/demo_staging.gd +++ b/demo_staging.gd @@ -1,4 +1,4 @@ -tool +@tool extends XRToolsStaging ## Introduction @@ -24,6 +24,12 @@ extends XRToolsStaging var scene_is_loaded : bool = false + +func _ready() -> void: + # In Godot 4 we must now manually call our super class ready function + super() + + func _on_Staging_scene_loaded(_scene): # We only show the press to continue the first time we load a scene # to give the player time to put their headset on. diff --git a/demo_staging.tscn b/demo_staging.tscn index 081ac838..393e1ee2 100644 --- a/demo_staging.tscn +++ b/demo_staging.tscn @@ -1,16 +1,12 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=3 format=3 uid="uid://dkr1jkk3jerux"] -[ext_resource path="res://addons/godot-xr-tools/staging/staging.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/godot/splash.png" type="Texture" id=2] -[ext_resource path="res://demo_staging.gd" type="Script" id=3] +[ext_resource type="PackedScene" uid="uid://bnqnnnet4dw12" path="res://addons/godot-xr-tools/staging/staging.tscn" id="1"] +[ext_resource type="Script" path="res://demo_staging.gd" id="2"] -[node name="DemoStaging" instance=ExtResource( 1 )] -script = ExtResource( 3 ) +[node name="DemoStaging" instance=ExtResource("1")] +script = ExtResource("2") main_scene = "res://scenes/main_menu/main_menu_level.tscn" -[node name="LoadingScreen" parent="." index="2"] -splash_screen = ExtResource( 2 ) - [connection signal="scene_exiting" from="." to="." method="_on_Staging_scene_exiting"] [connection signal="scene_loaded" from="." to="." method="_on_Staging_scene_loaded"] [connection signal="xr_ended" from="." to="." method="_on_Staging_xr_ended"] diff --git a/export_presets.cfg b/export_presets.cfg index 62578984..19a299f6 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -3,25 +3,29 @@ name="Windows Desktop" platform="Windows Desktop" runnable=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" -exclude_filter="addons/godot-openxr/bin/android/*,addons/godot-openxr/linux/*" +exclude_filter="" export_path="" -script_export_mode=1 +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false script_encryption_key="" [preset.0.options] custom_template/debug="" custom_template/release="" -binary_format/64_bits=true +debug/export_console_script=1 binary_format/embed_pck=false texture_format/bptc=false texture_format/s3tc=true texture_format/etc=false texture_format/etc2=false -texture_format/no_bptc_fallbacks=true +binary_format/architecture="x86_64" codesign/enable=false codesign/identity_type=0 codesign/identity="" @@ -30,9 +34,11 @@ codesign/timestamp=true codesign/timestamp_server_url="" codesign/digest_algorithm=1 codesign/description="" -codesign/custom_options=PoolStringArray( ) +codesign/custom_options=PackedStringArray() application/modify_resources=true application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 application/file_version="" application/product_version="" application/company_name="" @@ -40,53 +46,94 @@ application/product_name="" application/file_description="" application/copyright="" application/trademarks="" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" [preset.1] name="Linux/X11" platform="Linux/X11" runnable=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" -exclude_filter="addons/godot-openxr/bin/android/*,addons/godot-openxr/windows/*" +exclude_filter="" export_path="" -script_export_mode=1 +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false script_encryption_key="" [preset.1.options] custom_template/debug="" custom_template/release="" -binary_format/64_bits=true +debug/export_console_script=1 binary_format/embed_pck=false texture_format/bptc=false texture_format/s3tc=true texture_format/etc=false texture_format/etc2=false -texture_format/no_bptc_fallbacks=true +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" [preset.2] -name="Android" +name="Android Quest" platform="Android" runnable=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" -exclude_filter="addons/godot-openxr/bin/windows/*,addons/godot-openxr/linux/*" +exclude_filter="" export_path="" -script_export_mode=1 +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false script_encryption_key="" [preset.2.options] custom_template/debug="" custom_template/release="" -custom_build/use_custom_build=false -custom_build/export_format=0 -custom_build/min_sdk="" -custom_build/target_sdk="" +gradle_build/use_gradle_build=true +gradle_build/export_format=0 +gradle_build/min_sdk="" +gradle_build/target_sdk="" +plugins/GodotOpenXRKHR=false +plugins/GodotOpenXRLynx=false +plugins/GodotOpenXRMeta=true +plugins/GodotOpenXRPico=false architectures/armeabi-v7a=false architectures/arm64-v8a=true architectures/x86=false @@ -97,20 +144,19 @@ keystore/debug_password="" keystore/release="" keystore/release_user="" keystore/release_password="" -one_click_deploy/clear_previous_install=true version/code=1 version/name="1.0" -package/unique_name="org.godotengine.$genname" -package/name="" +package/unique_name="org.godotengine.godotxrtoolsdemo" +package/name="Godot XR Tools Demo" package/signed=true -package/classify_as_game=true +package/app_category=2 package/retain_data_on_uninstall=false package/exclude_from_recents=false launcher_icons/main_192x192="" launcher_icons/adaptive_foreground_432x432="" launcher_icons/adaptive_background_432x432="" graphics/opengl_debug=false -xr_features/xr_mode=2 +xr_features/xr_mode=1 xr_features/hand_tracking=1 xr_features/hand_tracking_frequency=0 xr_features/passthrough=0 @@ -124,7 +170,7 @@ command_line/extra_args="" apk_expansion/enable=false apk_expansion/SALT="" apk_expansion/public_key="" -permissions/custom_permissions=PoolStringArray( ) +permissions/custom_permissions=PackedStringArray() permissions/access_checkin_properties=false permissions/access_coarse_location=false permissions/access_fine_location=false @@ -274,29 +320,676 @@ permissions/write_user_dictionary=false [preset.3] -name="WebXR" -platform="HTML5" -runnable=true +name="Android Pico" +platform="Android" +runnable=false +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" export_path="" -script_export_mode=1 +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false script_encryption_key="" [preset.3.options] custom_template/debug="" custom_template/release="" -variant/export_type=1 -vram_texture_compression/for_desktop=true -vram_texture_compression/for_mobile=true -html/export_icon=true -html/custom_html_shell="" -html/head_include=" - + + +" html/canvas_resize_policy=2 html/focus_canvas_on_start=true @@ -308,4 +1001,4 @@ progressive_web_app/orientation=0 progressive_web_app/icon_144x144="" progressive_web_app/icon_180x180="" progressive_web_app/icon_512x512="" -progressive_web_app/background_color=Color( 0, 0, 0, 1 ) +progressive_web_app/background_color=Color(0, 0, 0, 1) diff --git a/icon.png.import b/icon.png.import index a4c02e6e..a97de462 100644 --- a/icon.png.import +++ b/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture" -path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://d1w4nehp5wvcv" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/openxr_action_map.tres b/openxr_action_map.tres new file mode 100644 index 00000000..45f0f012 --- /dev/null +++ b/openxr_action_map.tres @@ -0,0 +1,826 @@ +[gd_resource type="OpenXRActionMap" load_steps=195 format=3 uid="uid://cv1tl7assnmqv"] + +[sub_resource type="OpenXRAction" id="OpenXRAction_yifcd"] +resource_name = "trigger" +localized_name = "Trigger" +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_d0pni"] +resource_name = "trigger_click" +localized_name = "Trigger click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_gdvbe"] +resource_name = "trigger_touch" +localized_name = "Trigger touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_u273q"] +resource_name = "grip" +localized_name = "Grip" +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_i5up3"] +resource_name = "grip_click" +localized_name = "Grip click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_2q8nn"] +resource_name = "grip_touch" +localized_name = "Grip touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_mgaer"] +resource_name = "primary" +localized_name = "Primary joystick/thumbstick/trackpad" +action_type = 2 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_x2ltk"] +resource_name = "primary_click" +localized_name = "Primary joystick/thumbstick/trackpad click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_52a4b"] +resource_name = "primary_touch" +localized_name = "Primary joystick/thumbstick/trackpad touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_4m6bg"] +resource_name = "secondary" +localized_name = "Secondary joystick/thumbstick/trackpad" +action_type = 2 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_30lu2"] +resource_name = "secondary_click" +localized_name = "Secondary joystick/thumbstick/trackpad click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_m1gc0"] +resource_name = "secondary_touch" +localized_name = "Secondary joystick/thumbstick/trackpad touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_t725j"] +resource_name = "menu_button" +localized_name = "Menu button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_11d6b"] +resource_name = "select_button" +localized_name = "Select button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_rju0c"] +resource_name = "ax_button" +localized_name = "A/X button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_k16im"] +resource_name = "ax_touch" +localized_name = "A/X touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_puvt0"] +resource_name = "by_button" +localized_name = "B/Y button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_cjtwq"] +resource_name = "by_touch" +localized_name = "B/Y touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_wp0gf"] +resource_name = "default_pose" +localized_name = "Default pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right", "/user/vive_tracker_htcx/role/left_foot", "/user/vive_tracker_htcx/role/right_foot", "/user/vive_tracker_htcx/role/left_shoulder", "/user/vive_tracker_htcx/role/right_shoulder", "/user/vive_tracker_htcx/role/left_elbow", "/user/vive_tracker_htcx/role/right_elbow", "/user/vive_tracker_htcx/role/left_knee", "/user/vive_tracker_htcx/role/right_knee", "/user/vive_tracker_htcx/role/waist", "/user/vive_tracker_htcx/role/chest", "/user/vive_tracker_htcx/role/camera", "/user/vive_tracker_htcx/role/keyboard") + +[sub_resource type="OpenXRAction" id="OpenXRAction_6cxc5"] +resource_name = "aim_pose" +localized_name = "Aim pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_1qblt"] +resource_name = "grip_pose" +localized_name = "Grip pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_c3bvs"] +resource_name = "palm_pose" +localized_name = "Palm pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_tbcxk"] +resource_name = "haptic" +localized_name = "Haptic" +action_type = 4 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right", "/user/vive_tracker_htcx/role/left_foot", "/user/vive_tracker_htcx/role/right_foot", "/user/vive_tracker_htcx/role/left_shoulder", "/user/vive_tracker_htcx/role/right_shoulder", "/user/vive_tracker_htcx/role/left_elbow", "/user/vive_tracker_htcx/role/right_elbow", "/user/vive_tracker_htcx/role/left_knee", "/user/vive_tracker_htcx/role/right_knee", "/user/vive_tracker_htcx/role/waist", "/user/vive_tracker_htcx/role/chest", "/user/vive_tracker_htcx/role/camera", "/user/vive_tracker_htcx/role/keyboard") + +[sub_resource type="OpenXRActionSet" id="OpenXRActionSet_hc02c"] +resource_name = "godot" +localized_name = "Godot action set" +actions = [SubResource("OpenXRAction_yifcd"), SubResource("OpenXRAction_d0pni"), SubResource("OpenXRAction_gdvbe"), SubResource("OpenXRAction_u273q"), SubResource("OpenXRAction_i5up3"), SubResource("OpenXRAction_2q8nn"), SubResource("OpenXRAction_mgaer"), SubResource("OpenXRAction_x2ltk"), SubResource("OpenXRAction_52a4b"), SubResource("OpenXRAction_4m6bg"), SubResource("OpenXRAction_30lu2"), SubResource("OpenXRAction_m1gc0"), SubResource("OpenXRAction_t725j"), SubResource("OpenXRAction_11d6b"), SubResource("OpenXRAction_rju0c"), SubResource("OpenXRAction_k16im"), SubResource("OpenXRAction_puvt0"), SubResource("OpenXRAction_cjtwq"), SubResource("OpenXRAction_wp0gf"), SubResource("OpenXRAction_6cxc5"), SubResource("OpenXRAction_1qblt"), SubResource("OpenXRAction_c3bvs"), SubResource("OpenXRAction_tbcxk")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h35aj"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uak8b"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p1rec"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vu2bs"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vbsde"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yamwp"] +action = SubResource("OpenXRAction_11d6b") +paths = PackedStringArray("/user/hand/left/input/select/click", "/user/hand/right/input/select/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nuwua"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_q4jv5"] +interaction_profile_path = "/interaction_profiles/khr/simple_controller" +bindings = [SubResource("OpenXRIPBinding_h35aj"), SubResource("OpenXRIPBinding_uak8b"), SubResource("OpenXRIPBinding_p1rec"), SubResource("OpenXRIPBinding_vu2bs"), SubResource("OpenXRIPBinding_vbsde"), SubResource("OpenXRIPBinding_yamwp"), SubResource("OpenXRIPBinding_nuwua")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kf563"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nou6n"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d5lso"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vqs62"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iecdf"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n4mb1"] +action = SubResource("OpenXRAction_11d6b") +paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5af17"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xsgf5"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gq8ni"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qu8te"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8o2jy"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gqawc"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v4qe8"] +action = SubResource("OpenXRAction_52a4b") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f74n8"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_gh0s5"] +interaction_profile_path = "/interaction_profiles/htc/vive_controller" +bindings = [SubResource("OpenXRIPBinding_kf563"), SubResource("OpenXRIPBinding_nou6n"), SubResource("OpenXRIPBinding_d5lso"), SubResource("OpenXRIPBinding_vqs62"), SubResource("OpenXRIPBinding_iecdf"), SubResource("OpenXRIPBinding_n4mb1"), SubResource("OpenXRIPBinding_5af17"), SubResource("OpenXRIPBinding_xsgf5"), SubResource("OpenXRIPBinding_gq8ni"), SubResource("OpenXRIPBinding_qu8te"), SubResource("OpenXRIPBinding_8o2jy"), SubResource("OpenXRIPBinding_gqawc"), SubResource("OpenXRIPBinding_v4qe8"), SubResource("OpenXRIPBinding_f74n8")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_poir5"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n68hy"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4ad31"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p3eev"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rw5mk"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_are0a"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_17qyg"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g74jv"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6jf88"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uikwl"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mowmy"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6b0al"] +action = SubResource("OpenXRAction_4m6bg") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yu1bg"] +action = SubResource("OpenXRAction_30lu2") +paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_anwxi"] +action = SubResource("OpenXRAction_m1gc0") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yopno"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_hk3uy"] +interaction_profile_path = "/interaction_profiles/microsoft/motion_controller" +bindings = [SubResource("OpenXRIPBinding_poir5"), SubResource("OpenXRIPBinding_n68hy"), SubResource("OpenXRIPBinding_4ad31"), SubResource("OpenXRIPBinding_p3eev"), SubResource("OpenXRIPBinding_rw5mk"), SubResource("OpenXRIPBinding_are0a"), SubResource("OpenXRIPBinding_17qyg"), SubResource("OpenXRIPBinding_g74jv"), SubResource("OpenXRIPBinding_6jf88"), SubResource("OpenXRIPBinding_uikwl"), SubResource("OpenXRIPBinding_mowmy"), SubResource("OpenXRIPBinding_6b0al"), SubResource("OpenXRIPBinding_yu1bg"), SubResource("OpenXRIPBinding_anwxi"), SubResource("OpenXRIPBinding_yopno")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dqveu"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qjbno"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h7u7a"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dcd50"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q2vgn"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3x1mc"] +action = SubResource("OpenXRAction_rju0c") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jung2"] +action = SubResource("OpenXRAction_k16im") +paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kecgx"] +action = SubResource("OpenXRAction_puvt0") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hd4mg"] +action = SubResource("OpenXRAction_cjtwq") +paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_txmph"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q0qav"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7f2c6"] +action = SubResource("OpenXRAction_gdvbe") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xc83l"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e4pfh"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5e6gu"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_an033"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bi2rr"] +action = SubResource("OpenXRAction_52a4b") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sfrs7"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_ci0m3"] +interaction_profile_path = "/interaction_profiles/oculus/touch_controller" +bindings = [SubResource("OpenXRIPBinding_dqveu"), SubResource("OpenXRIPBinding_qjbno"), SubResource("OpenXRIPBinding_h7u7a"), SubResource("OpenXRIPBinding_dcd50"), SubResource("OpenXRIPBinding_q2vgn"), SubResource("OpenXRIPBinding_3x1mc"), SubResource("OpenXRIPBinding_jung2"), SubResource("OpenXRIPBinding_kecgx"), SubResource("OpenXRIPBinding_hd4mg"), SubResource("OpenXRIPBinding_txmph"), SubResource("OpenXRIPBinding_q0qav"), SubResource("OpenXRIPBinding_7f2c6"), SubResource("OpenXRIPBinding_xc83l"), SubResource("OpenXRIPBinding_e4pfh"), SubResource("OpenXRIPBinding_5e6gu"), SubResource("OpenXRIPBinding_an033"), SubResource("OpenXRIPBinding_bi2rr"), SubResource("OpenXRIPBinding_sfrs7")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_831pi"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h488p"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3se5t"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sbsju"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o26w6"] +action = SubResource("OpenXRAction_11d6b") +paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dy2rf"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/back/click", "/user/hand/right/input/back/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_50ft1"] +action = SubResource("OpenXRAction_rju0c") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xdnnt"] +action = SubResource("OpenXRAction_k16im") +paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o3yqq"] +action = SubResource("OpenXRAction_puvt0") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d2jet"] +action = SubResource("OpenXRAction_cjtwq") +paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4is5v"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s01h2"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pnsof"] +action = SubResource("OpenXRAction_gdvbe") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_orb33"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_535g8"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a4cuy"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hfsbe"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_i7atc"] +action = SubResource("OpenXRAction_52a4b") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4p7yi"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_8ffkv"] +interaction_profile_path = "/interaction_profiles/pico/neo3_controller" +bindings = [SubResource("OpenXRIPBinding_831pi"), SubResource("OpenXRIPBinding_h488p"), SubResource("OpenXRIPBinding_3se5t"), SubResource("OpenXRIPBinding_sbsju"), SubResource("OpenXRIPBinding_o26w6"), SubResource("OpenXRIPBinding_dy2rf"), SubResource("OpenXRIPBinding_50ft1"), SubResource("OpenXRIPBinding_xdnnt"), SubResource("OpenXRIPBinding_o3yqq"), SubResource("OpenXRIPBinding_d2jet"), SubResource("OpenXRIPBinding_4is5v"), SubResource("OpenXRIPBinding_s01h2"), SubResource("OpenXRIPBinding_pnsof"), SubResource("OpenXRIPBinding_orb33"), SubResource("OpenXRIPBinding_535g8"), SubResource("OpenXRIPBinding_a4cuy"), SubResource("OpenXRIPBinding_hfsbe"), SubResource("OpenXRIPBinding_i7atc"), SubResource("OpenXRIPBinding_4p7yi")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1ri7l"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2sgd0"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oyya3"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dumbs"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a2uon"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dcm1d"] +action = SubResource("OpenXRAction_rju0c") +paths = PackedStringArray("/user/hand/left/input/a/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2ghly"] +action = SubResource("OpenXRAction_k16im") +paths = PackedStringArray("/user/hand/left/input/a/touch", "/user/hand/right/input/a/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_blar5"] +action = SubResource("OpenXRAction_puvt0") +paths = PackedStringArray("/user/hand/left/input/b/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fi1ba"] +action = SubResource("OpenXRAction_cjtwq") +paths = PackedStringArray("/user/hand/left/input/b/touch", "/user/hand/right/input/b/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7fout"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5vno0"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jjcin"] +action = SubResource("OpenXRAction_gdvbe") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ltvc3"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qngbh"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_11t31"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uj5o6"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wysp0"] +action = SubResource("OpenXRAction_52a4b") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1hvgc"] +action = SubResource("OpenXRAction_4m6bg") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nm4ci"] +action = SubResource("OpenXRAction_30lu2") +paths = PackedStringArray("/user/hand/left/input/trackpad/force", "/user/hand/right/input/trackpad/force") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ucv5v"] +action = SubResource("OpenXRAction_m1gc0") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l2uyd"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_s65fn"] +interaction_profile_path = "/interaction_profiles/valve/index_controller" +bindings = [SubResource("OpenXRIPBinding_1ri7l"), SubResource("OpenXRIPBinding_2sgd0"), SubResource("OpenXRIPBinding_oyya3"), SubResource("OpenXRIPBinding_dumbs"), SubResource("OpenXRIPBinding_a2uon"), SubResource("OpenXRIPBinding_dcm1d"), SubResource("OpenXRIPBinding_2ghly"), SubResource("OpenXRIPBinding_blar5"), SubResource("OpenXRIPBinding_fi1ba"), SubResource("OpenXRIPBinding_7fout"), SubResource("OpenXRIPBinding_5vno0"), SubResource("OpenXRIPBinding_jjcin"), SubResource("OpenXRIPBinding_ltvc3"), SubResource("OpenXRIPBinding_qngbh"), SubResource("OpenXRIPBinding_11t31"), SubResource("OpenXRIPBinding_uj5o6"), SubResource("OpenXRIPBinding_wysp0"), SubResource("OpenXRIPBinding_1hvgc"), SubResource("OpenXRIPBinding_nm4ci"), SubResource("OpenXRIPBinding_ucv5v"), SubResource("OpenXRIPBinding_l2uyd")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pgv5o"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jkyjn"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ohi27"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f3rpf"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_56e0t"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8viho"] +action = SubResource("OpenXRAction_rju0c") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_aerac"] +action = SubResource("OpenXRAction_puvt0") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b8jr7"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e87j0"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xcpgw"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_agwck"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fvx5x"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_t50dk"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jja32"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_7w34y"] +interaction_profile_path = "/interaction_profiles/hp/mixed_reality_controller" +bindings = [SubResource("OpenXRIPBinding_pgv5o"), SubResource("OpenXRIPBinding_jkyjn"), SubResource("OpenXRIPBinding_ohi27"), SubResource("OpenXRIPBinding_f3rpf"), SubResource("OpenXRIPBinding_56e0t"), SubResource("OpenXRIPBinding_8viho"), SubResource("OpenXRIPBinding_aerac"), SubResource("OpenXRIPBinding_b8jr7"), SubResource("OpenXRIPBinding_e87j0"), SubResource("OpenXRIPBinding_xcpgw"), SubResource("OpenXRIPBinding_agwck"), SubResource("OpenXRIPBinding_fvx5x"), SubResource("OpenXRIPBinding_t50dk"), SubResource("OpenXRIPBinding_jja32")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_t0cml"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ms10r"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d6355"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oskmg"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4kfx4"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3uuwr"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vh134"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1fhju"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jsvrg"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cjody"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q7nq1"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1xqks"] +action = SubResource("OpenXRAction_4m6bg") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5v7jf"] +action = SubResource("OpenXRAction_30lu2") +paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_agw55"] +action = SubResource("OpenXRAction_m1gc0") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k4fqu"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_a7xw5"] +interaction_profile_path = "/interaction_profiles/samsung/odyssey_controller" +bindings = [SubResource("OpenXRIPBinding_t0cml"), SubResource("OpenXRIPBinding_ms10r"), SubResource("OpenXRIPBinding_d6355"), SubResource("OpenXRIPBinding_oskmg"), SubResource("OpenXRIPBinding_4kfx4"), SubResource("OpenXRIPBinding_3uuwr"), SubResource("OpenXRIPBinding_vh134"), SubResource("OpenXRIPBinding_1fhju"), SubResource("OpenXRIPBinding_jsvrg"), SubResource("OpenXRIPBinding_cjody"), SubResource("OpenXRIPBinding_q7nq1"), SubResource("OpenXRIPBinding_1xqks"), SubResource("OpenXRIPBinding_5v7jf"), SubResource("OpenXRIPBinding_agw55"), SubResource("OpenXRIPBinding_k4fqu")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rdc8g"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7ci1c"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0pd2x"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4rwwh"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lvx1l"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p2tcy"] +action = SubResource("OpenXRAction_11d6b") +paths = PackedStringArray("/user/hand/left/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8lqkg"] +action = SubResource("OpenXRAction_rju0c") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m1igx"] +action = SubResource("OpenXRAction_puvt0") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o24jy"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vdw57"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q0bn5"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sihq1"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1ofap"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_twoyd"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m8qx7"] +action = SubResource("OpenXRAction_52a4b") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pfjox"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_rsga2"] +interaction_profile_path = "/interaction_profiles/htc/vive_cosmos_controller" +bindings = [SubResource("OpenXRIPBinding_rdc8g"), SubResource("OpenXRIPBinding_7ci1c"), SubResource("OpenXRIPBinding_0pd2x"), SubResource("OpenXRIPBinding_4rwwh"), SubResource("OpenXRIPBinding_lvx1l"), SubResource("OpenXRIPBinding_p2tcy"), SubResource("OpenXRIPBinding_8lqkg"), SubResource("OpenXRIPBinding_m1igx"), SubResource("OpenXRIPBinding_o24jy"), SubResource("OpenXRIPBinding_vdw57"), SubResource("OpenXRIPBinding_q0bn5"), SubResource("OpenXRIPBinding_sihq1"), SubResource("OpenXRIPBinding_1ofap"), SubResource("OpenXRIPBinding_twoyd"), SubResource("OpenXRIPBinding_m8qx7"), SubResource("OpenXRIPBinding_pfjox")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8xu3w"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1u3na"] +action = SubResource("OpenXRAction_6cxc5") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_c33kw"] +action = SubResource("OpenXRAction_1qblt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u6tly"] +action = SubResource("OpenXRAction_c3bvs") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sn23a"] +action = SubResource("OpenXRAction_t725j") +paths = PackedStringArray("/user/hand/left/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cieo2"] +action = SubResource("OpenXRAction_11d6b") +paths = PackedStringArray("/user/hand/left/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ur5bb"] +action = SubResource("OpenXRAction_rju0c") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0hjty"] +action = SubResource("OpenXRAction_puvt0") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3n65m"] +action = SubResource("OpenXRAction_yifcd") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tyef1"] +action = SubResource("OpenXRAction_d0pni") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3ejfe"] +action = SubResource("OpenXRAction_gdvbe") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qv4l5"] +action = SubResource("OpenXRAction_u273q") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_avlo8"] +action = SubResource("OpenXRAction_i5up3") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_j6cdb"] +action = SubResource("OpenXRAction_mgaer") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_og1jk"] +action = SubResource("OpenXRAction_x2ltk") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_45gim"] +action = SubResource("OpenXRAction_52a4b") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6gub5"] +action = SubResource("OpenXRAction_m1gc0") +paths = PackedStringArray("/user/hand/left/input/thumbrest/touch", "/user/hand/right/input/thumbrest/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3s8qf"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_t3axk"] +interaction_profile_path = "/interaction_profiles/htc/vive_focus3_controller" +bindings = [SubResource("OpenXRIPBinding_8xu3w"), SubResource("OpenXRIPBinding_1u3na"), SubResource("OpenXRIPBinding_c33kw"), SubResource("OpenXRIPBinding_u6tly"), SubResource("OpenXRIPBinding_sn23a"), SubResource("OpenXRIPBinding_cieo2"), SubResource("OpenXRIPBinding_ur5bb"), SubResource("OpenXRIPBinding_0hjty"), SubResource("OpenXRIPBinding_3n65m"), SubResource("OpenXRIPBinding_tyef1"), SubResource("OpenXRIPBinding_3ejfe"), SubResource("OpenXRIPBinding_qv4l5"), SubResource("OpenXRIPBinding_avlo8"), SubResource("OpenXRIPBinding_j6cdb"), SubResource("OpenXRIPBinding_og1jk"), SubResource("OpenXRIPBinding_45gim"), SubResource("OpenXRIPBinding_6gub5"), SubResource("OpenXRIPBinding_3s8qf")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0hhqt"] +action = SubResource("OpenXRAction_wp0gf") +paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/input/grip/pose", "/user/vive_tracker_htcx/role/right_foot/input/grip/pose", "/user/vive_tracker_htcx/role/left_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/right_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/left_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/right_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/left_knee/input/grip/pose", "/user/vive_tracker_htcx/role/right_knee/input/grip/pose", "/user/vive_tracker_htcx/role/waist/input/grip/pose", "/user/vive_tracker_htcx/role/chest/input/grip/pose", "/user/vive_tracker_htcx/role/camera/input/grip/pose", "/user/vive_tracker_htcx/role/keyboard/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_up7fp"] +action = SubResource("OpenXRAction_tbcxk") +paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/output/haptic", "/user/vive_tracker_htcx/role/right_foot/output/haptic", "/user/vive_tracker_htcx/role/left_shoulder/output/haptic", "/user/vive_tracker_htcx/role/right_shoulder/output/haptic", "/user/vive_tracker_htcx/role/left_elbow/output/haptic", "/user/vive_tracker_htcx/role/right_elbow/output/haptic", "/user/vive_tracker_htcx/role/left_knee/output/haptic", "/user/vive_tracker_htcx/role/right_knee/output/haptic", "/user/vive_tracker_htcx/role/waist/output/haptic", "/user/vive_tracker_htcx/role/chest/output/haptic", "/user/vive_tracker_htcx/role/camera/output/haptic", "/user/vive_tracker_htcx/role/keyboard/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_2ydwc"] +interaction_profile_path = "/interaction_profiles/htc/vive_tracker_htcx" +bindings = [SubResource("OpenXRIPBinding_0hhqt"), SubResource("OpenXRIPBinding_up7fp")] + +[resource] +action_sets = [SubResource("OpenXRActionSet_hc02c")] +interaction_profiles = [SubResource("OpenXRInteractionProfile_q4jv5"), SubResource("OpenXRInteractionProfile_gh0s5"), SubResource("OpenXRInteractionProfile_hk3uy"), SubResource("OpenXRInteractionProfile_ci0m3"), SubResource("OpenXRInteractionProfile_8ffkv"), SubResource("OpenXRInteractionProfile_s65fn"), SubResource("OpenXRInteractionProfile_7w34y"), SubResource("OpenXRInteractionProfile_a7xw5"), SubResource("OpenXRInteractionProfile_rsga2"), SubResource("OpenXRInteractionProfile_t3axk"), SubResource("OpenXRInteractionProfile_2ydwc")] diff --git a/project.godot b/project.godot index 7e156a88..4de2f1b5 100644 --- a/project.godot +++ b/project.godot @@ -6,388 +6,13 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 - -_global_script_classes=[ { -"base": "Reference", -"class": "ARVRHelpers", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/misc/arvr_helpers.gd" -}, { -"base": "Spatial", -"class": "Teleport", -"language": "GDScript", -"path": "res://assets/meshes/teleport/teleport.gd" -}, { -"base": "Node", -"class": "XRTools", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/xr_tools.gd" -}, { -"base": "Spatial", -"class": "XRToolsClimbable", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/climbable.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsFallDamage", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/examples/fall_damage.gd" -}, { -"base": "Spatial", -"class": "XRToolsFunctionPickup", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/function_pickup.gd" -}, { -"base": "Spatial", -"class": "XRToolsFunctionPointer", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/function_pointer.gd" -}, { -"base": "Spatial", -"class": "XRToolsFunctionPoseDetector", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/function_pose_detector.gd" -}, { -"base": "KinematicBody", -"class": "XRToolsFunctionTeleport", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/function_teleport.gd" -}, { -"base": "Position3D", -"class": "XRToolsGrabPoint", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/grab_points/grab_point.gd" -}, { -"base": "XRToolsGrabPoint", -"class": "XRToolsGrabPointHand", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/grab_points/grab_point_hand.gd" -}, { -"base": "XRToolsGrabPoint", -"class": "XRToolsGrabPointSnap", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/grab_points/grab_point_snap.gd" -}, { -"base": "Node", -"class": "XRToolsGroundPhysics", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/overrides/ground_physics.gd" -}, { -"base": "Resource", -"class": "XRToolsGroundPhysicsSettings", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/overrides/ground_physics_settings.gd" -}, { -"base": "Spatial", -"class": "XRToolsHand", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/hands/hand.gd" -}, { -"base": "BoneAttachment", -"class": "XRToolsHandPhysicsBone", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/hands/hand_physics_bone.gd" -}, { -"base": "Area", -"class": "XRToolsHandPoseArea", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/hand_pose_area.gd" -}, { -"base": "Resource", -"class": "XRToolsHandPoseSettings", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" -}, { -"base": "Node", -"class": "XRToolsHighlightMaterial", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/highlight/highlight_material.gd" -}, { -"base": "MeshInstance", -"class": "XRToolsHighlightRing", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/highlight/highlight_ring.gd" -}, { -"base": "Spatial", -"class": "XRToolsHighlightVisible", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/highlight/highlight_visible.gd" -}, { -"base": "Spatial", -"class": "XRToolsHoldButton", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/misc/hold_button.gd" -}, { -"base": "Area", -"class": "XRToolsInteractableArea", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/interactable_area.gd" -}, { -"base": "Area", -"class": "XRToolsInteractableAreaButton", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/interactables/interactable_area_button.gd" -}, { -"base": "PhysicsBody", -"class": "XRToolsInteractableBody", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/interactable_body.gd" -}, { -"base": "XRToolsPickable", -"class": "XRToolsInteractableHandle", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/interactables/interactable_handle.gd" -}, { -"base": "Spatial", -"class": "XRToolsInteractableHandleDriven", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/interactables/interactable_handle_driven.gd" -}, { -"base": "XRToolsInteractableHandleDriven", -"class": "XRToolsInteractableHinge", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/interactables/interactable_hinge.gd" -}, { -"base": "XRToolsInteractableHandleDriven", -"class": "XRToolsInteractableJoystick", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/interactables/interactable_joystick.gd" -}, { -"base": "XRToolsInteractableHandleDriven", -"class": "XRToolsInteractableSlider", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/interactables/interactable_slider.gd" -}, { -"base": "Node", -"class": "XRToolsMoveTo", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/misc/move_to.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementClimb", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_climb.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementCrouch", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_crouch.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementDirect", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_direct.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementFlight", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_flight.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementFootstep", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_footstep.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementGlide", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_glide.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementGrapple", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_grapple.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementJump", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_jump.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementPhysicalJump", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_physical_jump.gd" -}, { -"base": "Node", -"class": "XRToolsMovementProvider", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_provider.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementSprint", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_sprint.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementTurn", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_turn.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementWallWalk", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_wall_walk.gd" -}, { -"base": "XRToolsMovementProvider", -"class": "XRToolsMovementWind", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/functions/movement_wind.gd" -}, { -"base": "XRToolsHand", -"class": "XRToolsPhysicsHand", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/hands/physics_hand.gd" -}, { -"base": "RigidBody", -"class": "XRToolsPickable", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/pickable.gd" -}, { -"base": "KinematicBody", -"class": "XRToolsPlayerBody", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/player/player_body.gd" -}, { -"base": "Spatial", -"class": "XRToolsPoke", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/player/poke/poke.gd" -}, { -"base": "Node", -"class": "XRToolsResourceQueue", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/assets/resource_queue/resource_queue.gd" -}, { -"base": "Node", -"class": "XRToolsReturnToSnapZone", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/return_to_snap_zone.gd" -}, { -"base": "Spatial", -"class": "XRToolsSceneBase", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/staging/scene_base.gd" -}, { -"base": "Area", -"class": "XRToolsSnapZone", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/snap_zone.gd" -}, { -"base": "Spatial", -"class": "XRToolsStaging", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/staging/staging.gd" -}, { -"base": "Node", -"class": "XRToolsStartXR", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/xr/start_xr.gd" -}, { -"base": "Node", -"class": "XRToolsSurfaceAudio", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/audio/surface_audio.gd" -}, { -"base": "Resource", -"class": "XRToolsSurfaceAudioType", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/audio/surface_audio_type.gd" -}, { -"base": "Reference", -"class": "XRToolsVelocityAverager", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/misc/velocity_averager.gd" -}, { -"base": "Reference", -"class": "XRToolsVelocityAveragerLinear", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/misc/velocity_averager_linear.gd" -}, { -"base": "Spatial", -"class": "XRToolsVignette", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/effects/vignette.gd" -}, { -"base": "CanvasLayer", -"class": "XRToolsVirtualKeyboard2D", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/keyboard/virtual_keyboard_2d.gd" -}, { -"base": "Area", -"class": "XRToolsWindArea", -"language": "GDScript", -"path": "res://addons/godot-xr-tools/objects/wind_area.gd" -} ] -_global_script_class_icons={ -"ARVRHelpers": "", -"Teleport": "", -"XRTools": "", -"XRToolsClimbable": "res://addons/godot-xr-tools/editor/icons/hand.svg", -"XRToolsFallDamage": "", -"XRToolsFunctionPickup": "res://addons/godot-xr-tools/editor/icons/function.svg", -"XRToolsFunctionPointer": "res://addons/godot-xr-tools/editor/icons/function.svg", -"XRToolsFunctionPoseDetector": "res://addons/godot-xr-tools/editor/icons/hand.svg", -"XRToolsFunctionTeleport": "res://addons/godot-xr-tools/editor/icons/function.svg", -"XRToolsGrabPoint": "", -"XRToolsGrabPointHand": "", -"XRToolsGrabPointSnap": "", -"XRToolsGroundPhysics": "", -"XRToolsGroundPhysicsSettings": "", -"XRToolsHand": "res://addons/godot-xr-tools/editor/icons/hand.svg", -"XRToolsHandPhysicsBone": "", -"XRToolsHandPoseArea": "res://addons/godot-xr-tools/editor/icons/hand.svg", -"XRToolsHandPoseSettings": "res://addons/godot-xr-tools/editor/icons/hand.svg", -"XRToolsHighlightMaterial": "", -"XRToolsHighlightRing": "", -"XRToolsHighlightVisible": "", -"XRToolsHoldButton": "", -"XRToolsInteractableArea": "", -"XRToolsInteractableAreaButton": "", -"XRToolsInteractableBody": "", -"XRToolsInteractableHandle": "", -"XRToolsInteractableHandleDriven": "", -"XRToolsInteractableHinge": "", -"XRToolsInteractableJoystick": "", -"XRToolsInteractableSlider": "", -"XRToolsMoveTo": "", -"XRToolsMovementClimb": "", -"XRToolsMovementCrouch": "", -"XRToolsMovementDirect": "", -"XRToolsMovementFlight": "", -"XRToolsMovementFootstep": "", -"XRToolsMovementGlide": "", -"XRToolsMovementGrapple": "", -"XRToolsMovementJump": "", -"XRToolsMovementPhysicalJump": "", -"XRToolsMovementProvider": "res://addons/godot-xr-tools/editor/icons/movement_provider.svg", -"XRToolsMovementSprint": "", -"XRToolsMovementTurn": "", -"XRToolsMovementWallWalk": "", -"XRToolsMovementWind": "", -"XRToolsPhysicsHand": "", -"XRToolsPickable": "", -"XRToolsPlayerBody": "res://addons/godot-xr-tools/editor/icons/body.svg", -"XRToolsPoke": "", -"XRToolsResourceQueue": "", -"XRToolsReturnToSnapZone": "res://addons/godot-xr-tools/editor/icons/hand.svg", -"XRToolsSceneBase": "", -"XRToolsSnapZone": "", -"XRToolsStaging": "", -"XRToolsStartXR": "", -"XRToolsSurfaceAudio": "res://addons/godot-xr-tools/editor/icons/foot.svg", -"XRToolsSurfaceAudioType": "res://addons/godot-xr-tools/editor/icons/body.svg", -"XRToolsVelocityAverager": "", -"XRToolsVelocityAveragerLinear": "", -"XRToolsVignette": "", -"XRToolsVirtualKeyboard2D": "", -"XRToolsWindArea": "" -} +config_version=5 [application] config/name="Godot XR Tools Demo" run/main_scene="res://demo_staging.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [autoload] @@ -396,11 +21,11 @@ XRToolsUserSettings="*res://addons/godot-xr-tools/user_settings/user_settings.gd [editor_plugins] -enabled=PoolStringArray( "res://addons/godot-openxr/plugin.cfg", "res://addons/godot-xr-tools/plugin.cfg" ) +enabled=PackedStringArray("res://addons/godot-xr-tools/plugin.cfg") [gdnative] -singletons=[ "res://addons/godot-openxr/config/godot_openxr.gdnlib" ] +singletons=["res://addons/godot-openxr/config/godot_openxr.gdnlib"] [gui] @@ -411,7 +36,7 @@ common/drop_mouse_on_gui_input_disabled=true 3d_physics/layer_1="static_world" 3d_physics/layer_2="dynamic_world" 3d_physics/layer_3="object" -3d_physics/layer_4="orientable_ground" +3d_physics/layer_4="wall_walk" 3d_physics/layer_17="held_object" 3d_physics/layer_18="player_hand" 3d_physics/layer_19="handle" @@ -425,8 +50,14 @@ common/enable_pause_aware_picking=true [rendering] +renderer/rendering_method="mobile" +textures/vram_compression/import_etc2_astc=true +limits/time/time_rollover_secs=30.0 quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false -limits/time/time_rollover_secs=30.0 -environment/default_environment="res://default_env.tres" + +[xr] + +openxr/enabled=true +shaders/enabled=true diff --git a/scenes/basic_movement_demo/basic movement demo.png.import b/scenes/basic_movement_demo/basic movement demo.png.import index 40b537c3..ff9afb45 100644 --- a/scenes/basic_movement_demo/basic movement demo.png.import +++ b/scenes/basic_movement_demo/basic movement demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.s3tc.stex" -path.etc="res://.import/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.etc.stex" +type="CompressedTexture2D" +uid="uid://8jxrr3gqnxck" +path.s3tc="res://.godot/imported/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.s3tc.ctex" +path.etc2="res://.godot/imported/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/basic_movement_demo/basic movement demo.png" -dest_files=[ "res://.import/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.s3tc.stex", "res://.import/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.etc.stex" ] +dest_files=["res://.godot/imported/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.s3tc.ctex", "res://.godot/imported/basic movement demo.png-b7d20a2baeea284f76e6ba59c33275b1.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/basic_movement_demo/basic_movement_demo.tscn b/scenes/basic_movement_demo/basic_movement_demo.tscn index 97f5e250..b921de08 100644 --- a/scenes/basic_movement_demo/basic_movement_demo.tscn +++ b/scenes/basic_movement_demo/basic_movement_demo.tscn @@ -1,69 +1,66 @@ -[gd_scene load_steps=15 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=6] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=7] -[ext_resource path="res://assets/meshes/ramps/ramps.tscn" type="PackedScene" id=8] -[ext_resource path="res://assets/meshes/mound/mound.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=10] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=12] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" type="PackedScene" id=13] -[ext_resource path="res://scenes/basic_movement_demo/objects/instructions.tscn" type="PackedScene" id=14] - -[node name="BasicMovementDemo" instance=ExtResource( 1 )] - -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 2 )] - -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 5 )] -enabled = true -order = 10 +[gd_scene load_steps=16 format=3 uid="uid://c3pffsm74as2t"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_5ptmo"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="2_54yy3"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="5_2ekvc"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_0hbex"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bdc23valbh8gf" path="res://assets/meshes/ramps/ramps.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://dpjfart2qg8k7" path="res://assets/meshes/mound/mound.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="11"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="12"] +[ext_resource type="PackedScene" uid="uid://dipg8euybm3f1" path="res://scenes/basic_movement_demo/objects/instructions.tscn" id="12_qasi6"] + +[node name="BasicMovementDemo" instance=ExtResource("1")] +script = ExtResource("2_5ptmo") + +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_54yy3")] + +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5")] max_speed = 3.0 strafe = true -[node name="MovementJump" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 10 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("10")] +jump_button_action = "ax_button" -[node name="MovementCrouch" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 13 )] +[node name="MovementCrouch" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("5_2ekvc")] crouch_height = 1.3 -crouch_button = 1 +crouch_button_action = "by_button" -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 3 )] +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_0hbex")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 5 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 4 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("4")] -[node name="MovementJump" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 10 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("10")] +jump_button_action = "ax_button" -[node name="MovementCrouch" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 13 )] +[node name="MovementCrouch" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("5_2ekvc")] crouch_height = 1.3 -crouch_button = 1 +crouch_button_action = "by_button" crouch_type = 1 -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 6 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("6")] -[node name="BasicMap" parent="." index="1" instance=ExtResource( 7 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("7")] -[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7 ) +[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7) scene_base = NodePath("..") -title = ExtResource( 12 ) +title = ExtResource("12") -[node name="Instructions" parent="." index="3" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -4 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("12_qasi6")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -4) -[node name="Ramps" parent="." index="4" instance=ExtResource( 8 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -8 ) +[node name="Ramps" parent="." index="4" instance=ExtResource("8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -8) -[node name="Mound" parent="." index="5" instance=ExtResource( 9 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, -8 ) +[node name="Mound" parent="." index="5" instance=ExtResource("9")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, -8) diff --git a/scenes/basic_movement_demo/objects/instructions.tscn b/scenes/basic_movement_demo/objects/instructions.tscn index b7786fe9..dfdfd66e 100644 --- a/scenes/basic_movement_demo/objects/instructions.tscn +++ b/scenes/basic_movement_demo/objects/instructions.tscn @@ -1,23 +1,23 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://dipg8euybm3f1"] -[ext_resource path="res://scenes/basic_movement_demo/objects/instructions_2d.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] +[ext_resource type="PackedScene" uid="uid://px47xx1e0la2" path="res://scenes/basic_movement_demo/objects/instructions_2d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] -[sub_resource type="CubeMesh" id=1] -material = ExtResource( 3 ) -size = Vector3( 4.2, 2.7, 0.1 ) +[sub_resource type="BoxMesh" id="1"] +material = ExtResource("3") +size = Vector3(4.2, 2.7, 0.1) -[node name="Instructions" type="Spatial"] +[node name="Instructions" type="Node3D"] -[node name="Viewport2Din3D" parent="." instance=ExtResource( 2 )] -screen_size = Vector2( 4, 2.5 ) -viewport_size = Vector2( 400, 250 ) +[node name="Viewport2Din3D" parent="." instance=ExtResource("2")] +screen_size = Vector2(4, 2.5) +viewport_size = Vector2(400, 250) unshaded = true -scene = ExtResource( 1 ) +scene = ExtResource("1") update_mode = 0 collision_layer = 0 -[node name="MeshInstance" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1 ) -mesh = SubResource( 1 ) +[node name="MeshInstance" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1) +mesh = SubResource("1") diff --git a/scenes/basic_movement_demo/objects/instructions_2d.tscn b/scenes/basic_movement_demo/objects/instructions_2d.tscn index 6a97b4f5..ca0863dc 100644 --- a/scenes/basic_movement_demo/objects/instructions_2d.tscn +++ b/scenes/basic_movement_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://px47xx1e0la2"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 1 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Basic Movement Demo This scene demonstrates basic movement. diff --git a/scenes/climbing_gliding_demo/climbing_gliding_demo.png.import b/scenes/climbing_gliding_demo/climbing_gliding_demo.png.import index 21b96d9e..c2d9ec40 100644 --- a/scenes/climbing_gliding_demo/climbing_gliding_demo.png.import +++ b/scenes/climbing_gliding_demo/climbing_gliding_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.s3tc.stex" -path.etc="res://.import/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.etc.stex" +type="CompressedTexture2D" +uid="uid://d3epm85d4s28f" +path.s3tc="res://.godot/imported/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.s3tc.ctex" +path.etc2="res://.godot/imported/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/climbing_gliding_demo/climbing_gliding_demo.png" -dest_files=[ "res://.import/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.s3tc.stex", "res://.import/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.etc.stex" ] +dest_files=["res://.godot/imported/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.s3tc.ctex", "res://.godot/imported/climbing_gliding_demo.png-081dc6127bfcb7c6b0f985142441fb0b.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn b/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn index 05cc283e..ea0956d0 100644 --- a/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn +++ b/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn @@ -1,241 +1,238 @@ -[gd_scene load_steps=23 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_glide.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_climb.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.tscn" type="PackedScene" id=9] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=10] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/cliff.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/wind_area.tscn" type="PackedScene" id=12] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=13] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=14] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=15] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/hill.tscn" type="PackedScene" id=16] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" type="Material" id=17] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/instructions.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/ring.tscn" type="PackedScene" id=19] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_wind.tscn" type="PackedScene" id=22] - -[sub_resource type="CubeMesh" id=1] -size = Vector3( 200, 1, 200 ) - -[sub_resource type="BoxShape" id=2] -extents = Vector3( 100, 0.5, 100 ) - -[node name="ClimbingGlidingDemo" instance=ExtResource( 1 )] - -[node name="ARVROrigin" parent="." index="0"] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -89, 36, -65 ) - -[node name="ARVRCamera" parent="ARVROrigin" index="0"] +[gd_scene load_steps=24 format=3 uid="uid://c7ebkdn7ryqrp"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_nosao"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="2_xkd6u"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_vqlyr"] +[ext_resource type="PackedScene" uid="uid://cvokcudrffkgc" path="res://addons/godot-xr-tools/functions/movement_glide.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="8"] +[ext_resource type="Material" uid="uid://p0q2df2dmy62" path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" id="8_cr7b0"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="9"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="10"] +[ext_resource type="PackedScene" uid="uid://bt8kw5a34upwm" path="res://scenes/climbing_gliding_demo/objects/cliff.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://bt2i205mlq1q0" path="res://scenes/climbing_gliding_demo/objects/wind_area.tscn" id="12"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="13"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="14"] +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://cm0cpldqa6j4d" path="res://scenes/climbing_gliding_demo/objects/hill.tscn" id="16"] +[ext_resource type="PackedScene" path="res://scenes/climbing_gliding_demo/objects/ring.tscn" id="18_gu236"] +[ext_resource type="PackedScene" uid="uid://b634pnt2nrn77" path="res://scenes/climbing_gliding_demo/objects/instructions.tscn" id="19_3dxda"] +[ext_resource type="PackedScene" uid="uid://bgts3vpmjn6bb" path="res://addons/godot-xr-tools/functions/movement_wind.tscn" id="22"] + +[sub_resource type="BoxMesh" id="1"] +size = Vector3(200, 1, 200) + +[sub_resource type="BoxShape3D" id="2"] +size = Vector3(200, 1, 200) + +[node name="ClimbingGlidingDemo" instance=ExtResource("1")] +script = ExtResource("2_nosao") + +[node name="XROrigin3D" parent="." index="0"] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -89, 36, -65) + +[node name="XRCamera3D" parent="XROrigin3D" index="0"] far = 400.0 -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 3 )] -hand_material_override = ExtResource( 17 ) +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_xkd6u")] +hand_material_override = ExtResource("8_cr7b0") -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 5 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5")] max_speed = 3.0 strafe = true -[node name="FunctionPickup" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 9 )] +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("9")] -[node name="MovementJump" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 15 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("15")] +jump_button_action = "ax_button" -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 2 )] -hand_material_override = ExtResource( 17 ) +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_vqlyr")] +hand_material_override = ExtResource("8_cr7b0") -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 5 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 4 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("4")] -[node name="FunctionPickup" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 9 )] +[node name="FunctionPickup" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("9")] -[node name="MovementJump" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 15 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("15")] +jump_button_action = "ax_button" -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 6 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("6")] -[node name="MovementClimb" parent="ARVROrigin" index="4" instance=ExtResource( 8 )] +[node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("8")] -[node name="MovementGlide" parent="ARVROrigin" index="5" instance=ExtResource( 7 )] +[node name="MovementGlide" parent="XROrigin3D" index="5" instance=ExtResource("7")] turn_with_roll = true wings_impulse = true -[node name="MovementWind" parent="ARVROrigin" index="6" instance=ExtResource( 22 )] +[node name="MovementWind" parent="XROrigin3D" index="6" instance=ExtResource("22")] -[node name="DirectionalLight" type="DirectionalLight" parent="." index="1"] -transform = Transform( 0.866025, -0.321394, 0.383022, 0, 0.766044, 0.642788, -0.5, -0.55667, 0.663414, 0, 5, 0 ) +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." index="1"] +transform = Transform3D(0.866025, -0.321394, 0.383022, 0, 0.766044, 0.642788, -0.5, -0.55667, 0.663414, 0, 5, 0) light_energy = 0.8 -[node name="Terrain" type="Spatial" parent="." index="2"] +[node name="Terrain" type="Node3D" parent="." index="2"] -[node name="Ground" type="StaticBody" parent="Terrain" index="0"] +[node name="Ground" type="StaticBody3D" parent="Terrain" index="0"] -[node name="MeshInstance" type="MeshInstance" parent="Terrain/Ground" index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 10 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Terrain/Ground" index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("10") -[node name="CollisionShape" type="CollisionShape" parent="Terrain/Ground" index="1"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0 ) -shape = SubResource( 2 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Terrain/Ground" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) +shape = SubResource("2") -[node name="Hills" type="Spatial" parent="Terrain" index="1"] +[node name="Hills" type="Node3D" parent="Terrain" index="1"] -[node name="Hill1" parent="Terrain/Hills" index="0" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -158, 0, -45 ) +[node name="Hill1" parent="Terrain/Hills" index="0" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -158, 0, -45) -[node name="Hill2" parent="Terrain/Hills" index="1" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142 ) +[node name="Hill2" parent="Terrain/Hills" index="1" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142) -[node name="Hill3" parent="Terrain/Hills" index="2" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 0, -142 ) +[node name="Hill3" parent="Terrain/Hills" index="2" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 0, -142) -[node name="Hill4" parent="Terrain/Hills" index="3" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 127, 0, -76 ) +[node name="Hill4" parent="Terrain/Hills" index="3" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 127, 0, -76) -[node name="Hill5" parent="Terrain/Hills" index="4" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 165, 0, -8 ) +[node name="Hill5" parent="Terrain/Hills" index="4" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 165, 0, -8) -[node name="Hill6" parent="Terrain/Hills" index="5" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 176, 0, 84 ) +[node name="Hill6" parent="Terrain/Hills" index="5" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 176, 0, 84) -[node name="Hill7" parent="Terrain/Hills" index="6" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 0, 163 ) +[node name="Hill7" parent="Terrain/Hills" index="6" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 0, 163) -[node name="Hill8" parent="Terrain/Hills" index="7" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 164 ) +[node name="Hill8" parent="Terrain/Hills" index="7" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 164) -[node name="Hill9" parent="Terrain/Hills" index="8" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -55, 0, 90 ) +[node name="Hill9" parent="Terrain/Hills" index="8" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -55, 0, 90) -[node name="Hill10" parent="Terrain/Hills" index="9" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -113, 0, 45 ) +[node name="Hill10" parent="Terrain/Hills" index="9" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -113, 0, 45) -[node name="Hill11" parent="Terrain/Hills" index="10" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -54, -37, 46 ) +[node name="Hill11" parent="Terrain/Hills" index="10" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, -37, 46) -[node name="Hill12" parent="Terrain/Hills" index="11" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -44, 87 ) +[node name="Hill12" parent="Terrain/Hills" index="11" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -44, 87) -[node name="Hill13" parent="Terrain/Hills" index="12" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 43, -37, -86 ) +[node name="Hill13" parent="Terrain/Hills" index="12" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 43, -37, -86) -[node name="Hill14" parent="Terrain/Hills" index="13" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 96, -45, -18 ) +[node name="Hill14" parent="Terrain/Hills" index="13" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 96, -45, -18) -[node name="Cliffs" type="Spatial" parent="Terrain" index="2"] +[node name="Cliffs" type="Node3D" parent="Terrain" index="2"] -[node name="Cliff1" parent="Terrain/Cliffs" index="0" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -77, -14, -63 ) +[node name="Cliff1" parent="Terrain/Cliffs" index="0" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -77, -14, -63) -[node name="Cliff2" parent="Terrain/Cliffs" index="1" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -79, -8, -63 ) +[node name="Cliff2" parent="Terrain/Cliffs" index="1" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -79, -8, -63) -[node name="Cliff3" parent="Terrain/Cliffs" index="2" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -82, -2, -62 ) +[node name="Cliff3" parent="Terrain/Cliffs" index="2" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -82, -2, -62) -[node name="Cliff4" parent="Terrain/Cliffs" index="3" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -83, 4, -64 ) +[node name="Cliff4" parent="Terrain/Cliffs" index="3" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -83, 4, -64) -[node name="Cliff5" parent="Terrain/Cliffs" index="4" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -81, 10, -70 ) +[node name="Cliff5" parent="Terrain/Cliffs" index="4" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -81, 10, -70) -[node name="Cliff6" parent="Terrain/Cliffs" index="5" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -87, 16, -65 ) +[node name="Cliff6" parent="Terrain/Cliffs" index="5" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -87, 16, -65) -[node name="Cliff7" parent="Terrain/Cliffs" index="6" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 93, -14, 82 ) +[node name="Cliff7" parent="Terrain/Cliffs" index="6" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 93, -14, 82) -[node name="Cliff8" parent="Terrain/Cliffs" index="7" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -18, -1, -66 ) +[node name="Cliff8" parent="Terrain/Cliffs" index="7" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, -1, -66) -[node name="Cliff9" parent="Terrain/Cliffs" index="8" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -63, -2, -18 ) +[node name="Cliff9" parent="Terrain/Cliffs" index="8" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -63, -2, -18) -[node name="Cliff10" parent="Terrain/Cliffs" index="9" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -62, -8, -20 ) +[node name="Cliff10" parent="Terrain/Cliffs" index="9" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -62, -8, -20) -[node name="Cliff11" parent="Terrain/Cliffs" index="10" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 9, -5, 22 ) +[node name="Cliff11" parent="Terrain/Cliffs" index="10" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, -5, 22) -[node name="Cliff12" parent="Terrain/Cliffs" index="11" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4, -3, 30 ) +[node name="Cliff12" parent="Terrain/Cliffs" index="11" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, -3, 30) -[node name="Cliff13" parent="Terrain/Cliffs" index="12" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 59, -3, -26 ) +[node name="Cliff13" parent="Terrain/Cliffs" index="12" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59, -3, -26) -[node name="Cliff14" parent="Terrain/Cliffs" index="13" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 94, -8, 48 ) +[node name="Cliff14" parent="Terrain/Cliffs" index="13" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 94, -8, 48) -[node name="Winds" type="Spatial" parent="Terrain" index="3"] +[node name="Winds" type="Node3D" parent="Terrain" index="3"] -[node name="WindArea" parent="Terrain/Winds" index="0" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 5, -70 ) +[node name="WindArea" parent="Terrain/Winds" index="0" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 5, -70) -[node name="WindArea2" parent="Terrain/Winds" index="1" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 15, -70 ) +[node name="WindArea2" parent="Terrain/Winds" index="1" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 15, -70) -[node name="WindArea3" parent="Terrain/Winds" index="2" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 25, -70 ) +[node name="WindArea3" parent="Terrain/Winds" index="2" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 25, -70) -[node name="WindArea4" parent="Terrain/Winds" index="3" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 35, -70 ) +[node name="WindArea4" parent="Terrain/Winds" index="3" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 35, -70) -[node name="WindArea5" parent="Terrain/Winds" index="4" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 5, -10 ) +[node name="WindArea5" parent="Terrain/Winds" index="4" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 5, -10) -[node name="WindArea6" parent="Terrain/Winds" index="5" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 15, -10 ) +[node name="WindArea6" parent="Terrain/Winds" index="5" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 15, -10) -[node name="WindArea7" parent="Terrain/Winds" index="6" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 25, -10 ) +[node name="WindArea7" parent="Terrain/Winds" index="6" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 25, -10) -[node name="WindArea8" parent="Terrain/Winds" index="7" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 35, -10 ) +[node name="WindArea8" parent="Terrain/Winds" index="7" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 35, -10) -[node name="Rings" type="Spatial" parent="Terrain" index="4"] -transform = Transform( 0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, -6.839, 49.8018, 12.5189 ) +[node name="Rings" type="Node3D" parent="Terrain" index="4"] +transform = Transform3D(0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, -6.839, 49.802, 12.519) -[node name="ring1" parent="Terrain/Rings" index="0" instance=ExtResource( 19 )] -transform = Transform( 0.92394, -1.61434e-08, -0.382538, 1.28187e-08, 1, -1.12399e-08, 0.382538, 5.48136e-09, 0.92394, -51.9777, 0, -5.49984 ) +[node name="ring1" parent="Terrain/Rings" index="0" instance=ExtResource("18_gu236")] +transform = Transform3D(0.92388, 0, -0.382683, 0, 1, 0, 0.382683, 0, 0.92388, -51.978, 0, -5.5) -[node name="ring2" parent="Terrain/Rings" index="1" instance=ExtResource( 19 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.14596, 3.37725, 2.24743 ) +[node name="ring2" parent="Terrain/Rings" index="1" instance=ExtResource("18_gu236")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.146, 3.377, 2.247) -[node name="ring3" parent="Terrain/Rings" index="2" instance=ExtResource( 19 )] -transform = Transform( 0.963626, -1.0912e-08, -0.267255, 9.32201e-09, 1, -7.218e-09, 0.267255, 4.4641e-09, 0.963626, 72.52, 12.0066, 15.9844 ) +[node name="ring3" parent="Terrain/Rings" index="2" instance=ExtResource("18_gu236")] +transform = Transform3D(0.96363, 0, -0.267238, 0, 1, 0, 0.267238, 0, 0.96363, 72.52, 12.007, 15.984) -[node name="ring4" parent="Terrain/Rings" index="3" instance=ExtResource( 19 )] -transform = Transform( -0.910597, -2.61121e-08, 0.413295, -5.74028e-08, 1, -6.32931e-08, -0.413295, -8.13588e-08, -0.910597, 69.9441, 26.6401, -48.2277 ) +[node name="ring4" parent="Terrain/Rings" index="3" instance=ExtResource("18_gu236")] +transform = Transform3D(0.96363, 0, -0.267238, 0, 1, 0, 0.267238, 0, 0.96363, 69.944, 26.64, -48.228) -[node name="ring5" parent="Terrain/Rings" index="4" instance=ExtResource( 19 )] -transform = Transform( -0.999975, -4.34426e-08, 0.00708592, -4.39791e-08, 1, -7.55545e-08, -0.00708592, -7.58643e-08, -0.999975, 6.63248, 23.3205, -63.4222 ) +[node name="ring5" parent="Terrain/Rings" index="4" instance=ExtResource("18_gu236")] +transform = Transform3D(-0.999976, 0, 0.00698123, 0, 1, 0, -0.00698123, 0, -0.999976, 6.632, 23.32, -63.422) -[node name="ring6" parent="Terrain/Rings" index="5" instance=ExtResource( 19 )] -transform = Transform( -0.880287, -5.90551e-08, -0.474442, -2.31349e-08, 1, -8.15478e-08, 0.474442, -6.08093e-08, -0.880287, -47.6503, 14.5468, -50.2337 ) +[node name="ring6" parent="Terrain/Rings" index="5" instance=ExtResource("18_gu236")] +transform = Transform3D(-0.880477, 0, -0.474088, 0, 1, 0, 0.474088, 0, -0.880477, -47.65, 14.547, -50.234) -[node name="MainMenuTeleport1" parent="." index="3" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -83, 36, -68 ) +[node name="MainMenuTeleport1" parent="." index="3" instance=ExtResource("14")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -83, 36, -68) scene_base = NodePath("..") -title = ExtResource( 13 ) +title = ExtResource("13") -[node name="MainMenuTeleport2" parent="." index="4" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 91, 6, 81 ) +[node name="MainMenuTeleport2" parent="." index="4" instance=ExtResource("14")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 91, 6, 81) scene_base = NodePath("..") -title = ExtResource( 13 ) +title = ExtResource("13") -[node name="Instructions" parent="." index="5" instance=ExtResource( 18 )] -transform = Transform( -0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, -0.5, -80, 40.164, -60 ) +[node name="Instructions" parent="." index="5" instance=ExtResource("19_3dxda")] +transform = Transform3D(-0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, -0.5, -80, 40, -60) diff --git a/scenes/climbing_gliding_demo/materials/ghost_hand.tres b/scenes/climbing_gliding_demo/materials/ghost_hand.tres new file mode 100644 index 00000000..f3aeb5fb --- /dev/null +++ b/scenes/climbing_gliding_demo/materials/ghost_hand.tres @@ -0,0 +1,11 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cf6y1af3ouutt"] + +[ext_resource type="Material" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_green_camo.material" id="1_3o4sh"] + +[resource] +render_priority = -1 +next_pass = ExtResource("1_3o4sh") +transparency = 1 +no_depth_test = true +shading_mode = 0 +albedo_color = Color(0, 1, 1, 0.25098) diff --git a/scenes/climbing_gliding_demo/objects/cliff.tscn b/scenes/climbing_gliding_demo/objects/cliff.tscn index 647310b5..faaed723 100644 --- a/scenes/climbing_gliding_demo/objects/cliff.tscn +++ b/scenes/climbing_gliding_demo/objects/cliff.tscn @@ -1,25 +1,25 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://bt8kw5a34upwm"] -[ext_resource path="res://addons/godot-xr-tools/objects/climbable.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="PackedScene" uid="uid://cjyilbm4ucc7s" path="res://addons/godot-xr-tools/objects/climbable.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="2"] -[sub_resource type="ConvexPolygonShape" id=2] -points = PoolVector3Array( 0, -10, 10, -8.66025, -10, 4.99804, 8.66025, -10, 5, 0, 10, 7.99922, -6.92922, 10, 3.99961, -8.66025, -10, -5, 8.65856, -10, -5.00196, 6.92753, 10, -4.00157, 6.92753, 10, 3.99961, -6.92922, 10, -4.00157, 0, -10, -10, 0, 10, -8.00117 ) +[sub_resource type="ConvexPolygonShape3D" id="2"] +points = PackedVector3Array(0, -10, 10, -8.66025, -10, 4.99804, 8.66025, -10, 5, 0, 10, 7.99922, -6.92922, 10, 3.99961, -8.66025, -10, -5, 8.65856, -10, -5.00196, 6.92753, 10, -4.00157, 6.92753, 10, 3.99961, -6.92922, 10, -4.00157, 0, -10, -10, 0, 10, -8.00117) -[sub_resource type="CylinderMesh" id=1] +[sub_resource type="CylinderMesh" id="1"] top_radius = 8.0 bottom_radius = 10.0 height = 20.0 radial_segments = 6 rings = 0 -[node name="Cliff" instance=ExtResource( 1 )] +[node name="Cliff" instance=ExtResource("1")] -[node name="CollisionShape" parent="." index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0 ) -shape = SubResource( 2 ) +[node name="CollisionShape3D" parent="." index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0) +shape = SubResource("2") -[node name="MeshInstance" type="MeshInstance" parent="." index="1"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0 ) -mesh = SubResource( 1 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2") diff --git a/scenes/climbing_gliding_demo/objects/hill.tscn b/scenes/climbing_gliding_demo/objects/hill.tscn index beb62d3f..0357655d 100644 --- a/scenes/climbing_gliding_demo/objects/hill.tscn +++ b/scenes/climbing_gliding_demo/objects/hill.tscn @@ -1,24 +1,24 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://cm0cpldqa6j4d"] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="2"] -[sub_resource type="CylinderMesh" id=2] +[sub_resource type="CylinderMesh" id="2"] top_radius = 70.0 bottom_radius = 100.0 height = 50.0 radial_segments = 6 rings = 0 -[sub_resource type="ConvexPolygonShape" id=3] -points = PoolVector3Array( 86.6025, -25, 49.9804, 60.6116, 25, 34.9843, 0, -25, 100, 86.5856, -25, -50.0196, 60.6116, 25, -35.0039, 0, 25, 69.9883, -60.6286, 25, 34.9843, -86.6025, -25, 49.9804, 0, -25, -100, 0, 25, -70.0078, -60.6286, 25, -35.0039, -86.6025, -25, -50 ) +[sub_resource type="ConvexPolygonShape3D" id="3"] +points = PackedVector3Array(86.6025, -25, 49.9804, 60.6116, 25, 34.9843, 0, -25, 100, 86.5856, -25, -50.0196, 60.6116, 25, -35.0039, 0, 25, 69.9883, -60.6286, 25, 34.9843, -86.6025, -25, 49.9804, 0, -25, -100, 0, 25, -70.0078, -60.6286, 25, -35.0039, -86.6025, -25, -50) -[node name="Hill" type="StaticBody"] +[node name="Hill" type="StaticBody3D"] -[node name="MeshInstance" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 25, 0 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 25, 0) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 25, 0 ) -shape = SubResource( 3 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 25, 0) +shape = SubResource("3") diff --git a/scenes/climbing_gliding_demo/objects/instructions.tscn b/scenes/climbing_gliding_demo/objects/instructions.tscn index daac43ca..f77ea95f 100644 --- a/scenes/climbing_gliding_demo/objects/instructions.tscn +++ b/scenes/climbing_gliding_demo/objects/instructions.tscn @@ -1,23 +1,23 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://b634pnt2nrn77"] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/instructions_2d.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] +[ext_resource type="PackedScene" uid="uid://6of4yjha4f0t" path="res://scenes/climbing_gliding_demo/objects/instructions_2d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] -[sub_resource type="CubeMesh" id=1] -material = ExtResource( 3 ) -size = Vector3( 4.2, 3, 0.1 ) +[sub_resource type="BoxMesh" id="1"] +material = ExtResource("3") +size = Vector3(4.2, 3, 0.1) -[node name="Instructions" type="Spatial"] +[node name="Instructions" type="Node3D"] -[node name="Viewport2Din3D" parent="." instance=ExtResource( 2 )] -screen_size = Vector2( 4, 2.8 ) -viewport_size = Vector2( 400, 280 ) +[node name="Viewport2Din3D" parent="." instance=ExtResource("2")] +screen_size = Vector2(4, 2.8) +viewport_size = Vector2(400, 280) unshaded = true -scene = ExtResource( 1 ) +scene = ExtResource("1") update_mode = 0 collision_layer = 0 -[node name="MeshInstance" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1 ) -mesh = SubResource( 1 ) +[node name="MeshInstance" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1) +mesh = SubResource("1") diff --git a/scenes/climbing_gliding_demo/objects/instructions_2d.tscn b/scenes/climbing_gliding_demo/objects/instructions_2d.tscn index 6c68816b..486475a5 100644 --- a/scenes/climbing_gliding_demo/objects/instructions_2d.tscn +++ b/scenes/climbing_gliding_demo/objects/instructions_2d.tscn @@ -1,22 +1,27 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://6of4yjha4f0t"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -320.0 -rect_pivot_offset = Vector2( -421, -85 ) +grow_horizontal = 2 +grow_vertical = 2 [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 280.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 280.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 271.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 270.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Climbing & Gliding Demo This scene demonstrates climbing, gliding, and wind using the following controls: diff --git a/scenes/climbing_gliding_demo/objects/wind_area.tscn b/scenes/climbing_gliding_demo/objects/wind_area.tscn index a1981d1e..54b15ba1 100644 --- a/scenes/climbing_gliding_demo/objects/wind_area.tscn +++ b/scenes/climbing_gliding_demo/objects/wind_area.tscn @@ -1,35 +1,54 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=7 format=3 uid="uid://bt2i205mlq1q0"] -[ext_resource path="res://addons/godot-xr-tools/objects/wind_area.tscn" type="PackedScene" id=1] -[ext_resource path="res://scenes/climbing_gliding_demo/objects/wind_area_shader.tres" type="Material" id=2] +[ext_resource type="PackedScene" uid="uid://nack1qite6lx" path="res://addons/godot-xr-tools/objects/wind_area.tscn" id="1"] +[ext_resource type="Material" uid="uid://b5c8o7a55fyx5" path="res://scenes/climbing_gliding_demo/objects/wind_area_shader.tres" id="2"] -[sub_resource type="CylinderShape" id=2] -radius = 5.0 +[sub_resource type="CylinderShape3D" id="2"] height = 10.0 +radius = 5.0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_63gm4"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_hgony"] +_surfaces = [{ +"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1), +"format": 4097, +"index_count": 96, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 1, 0, 31, 0, 30, 0, 0, 0, 1, 0), +"lods": [0.0672776, PackedByteArray(2, 0, 9, 0, 5, 0, 2, 0, 10, 0, 9, 0, 30, 0, 2, 0, 5, 0, 10, 0, 13, 0, 9, 0, 30, 0, 5, 0, 31, 0, 10, 0, 14, 0, 13, 0, 14, 0, 17, 0, 13, 0, 14, 0, 16, 0, 17, 0, 28, 0, 30, 0, 31, 0, 28, 0, 31, 0, 27, 0, 24, 0, 28, 0, 27, 0, 24, 0, 27, 0, 23, 0, 20, 0, 24, 0, 23, 0, 20, 0, 23, 0, 19, 0, 16, 0, 20, 0, 19, 0, 16, 0, 19, 0, 17, 0), 0.164049, PackedByteArray(2, 0, 13, 0, 5, 0, 2, 0, 10, 0, 13, 0, 10, 0, 17, 0, 13, 0, 10, 0, 16, 0, 17, 0, 16, 0, 23, 0, 17, 0, 16, 0, 20, 0, 23, 0, 20, 0, 2, 0, 23, 0, 2, 0, 5, 0, 23, 0), 0.399072, PackedByteArray(20, 0, 17, 0, 5, 0, 20, 0, 16, 0, 17, 0, 16, 0, 5, 0, 17, 0, 16, 0, 20, 0, 5, 0)], +"primitive": 3, +"vertex_count": 32, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 22, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 190, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 190, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 94, 131, 236, 62, 0, 0, 0, 191, 21, 239, 67, 190, 94, 131, 236, 62, 0, 0, 0, 63, 21, 239, 67, 190, 0, 0, 0, 63, 0, 0, 0, 191, 46, 189, 187, 50, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 95, 131, 236, 62, 0, 0, 0, 63, 20, 239, 67, 62, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 62, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 23, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 62, 23, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 62, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 21, 239, 67, 190, 0, 0, 0, 191, 94, 131, 236, 62, 21, 239, 67, 190, 0, 0, 0, 63, 94, 131, 236, 62, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 242, 4, 181, 190, 0, 0, 0, 63, 244, 4, 181, 62, 94, 131, 236, 190, 0, 0, 0, 191, 26, 239, 67, 62, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 0, 0, 0, 191, 0, 0, 0, 191, 46, 222, 204, 177, 0, 0, 0, 191, 0, 0, 0, 63, 46, 222, 204, 177, 93, 131, 236, 190, 0, 0, 0, 191, 27, 239, 67, 190, 93, 131, 236, 190, 0, 0, 0, 63, 27, 239, 67, 190, 245, 4, 181, 190, 0, 0, 0, 191, 242, 4, 181, 190, 245, 4, 181, 190, 0, 0, 0, 63, 242, 4, 181, 190, 21, 239, 67, 190, 0, 0, 0, 191, 95, 131, 236, 190, 21, 239, 67, 190, 0, 0, 0, 63, 95, 131, 236, 190) +}] +blend_shape_mode = 0 -[sub_resource type="ArrayMesh" id=1] +[sub_resource type="ArrayMesh" id="ArrayMesh_6nlh0"] resource_name = "tube_Cylinder" -surfaces/0 = { -"aabb": AABB( -0.5, -0.5, -0.5, 1, 1, 1 ), -"array_data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 127, 126, 129, 63, 0, 56, 0, 60, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 127, 126, 129, 63, 0, 56, 0, 0, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 127, 89, 129, 82, 0, 55, 0, 60, 22, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 190, 127, 89, 129, 82, 0, 55, 0, 0, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 190, 127, 63, 129, 95, 0, 54, 0, 60, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 127, 63, 129, 95, 0, 54, 0, 0, 94, 131, 236, 62, 0, 0, 0, 191, 21, 239, 67, 190, 127, 37, 129, 108, 0, 53, 0, 60, 94, 131, 236, 62, 0, 0, 0, 63, 21, 239, 67, 190, 127, 37, 129, 108, 0, 53, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 46, 189, 187, 50, 127, 0, 129, 127, 0, 52, 0, 60, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 127, 0, 129, 127, 0, 52, 0, 0, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 89, 0, 127, 108, 0, 50, 0, 60, 95, 131, 236, 62, 0, 0, 0, 63, 20, 239, 67, 62, 89, 0, 127, 108, 0, 50, 0, 0, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 62, 63, 0, 127, 95, 0, 48, 0, 60, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 63, 0, 127, 95, 0, 48, 0, 0, 23, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 62, 37, 0, 127, 82, 0, 44, 0, 60, 23, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 62, 37, 0, 127, 82, 0, 44, 0, 0, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 0, 0, 126, 63, 0, 0, 0, 60, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 0, 0, 126, 63, 0, 60, 0, 60, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 126, 63, 0, 0, 0, 0, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 126, 63, 0, 60, 0, 0, 21, 239, 67, 190, 0, 0, 0, 191, 94, 131, 236, 62, 219, 0, 89, 63, 128, 59, 0, 60, 21, 239, 67, 190, 0, 0, 0, 63, 94, 131, 236, 62, 219, 0, 89, 63, 128, 59, 0, 0, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 193, 0, 63, 63, 0, 59, 0, 60, 242, 4, 181, 190, 0, 0, 0, 63, 244, 4, 181, 62, 193, 0, 63, 63, 0, 59, 0, 0, 94, 131, 236, 190, 0, 0, 0, 191, 26, 239, 67, 62, 167, 0, 37, 63, 128, 58, 0, 60, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 167, 0, 37, 63, 128, 58, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 46, 222, 204, 177, 129, 0, 0, 63, 0, 58, 0, 60, 0, 0, 0, 191, 0, 0, 0, 63, 46, 222, 204, 177, 129, 0, 0, 63, 0, 58, 0, 0, 93, 131, 236, 190, 0, 0, 0, 191, 27, 239, 67, 190, 129, 37, 219, 63, 127, 57, 0, 60, 93, 131, 236, 190, 0, 0, 0, 63, 27, 239, 67, 190, 129, 37, 219, 63, 127, 57, 0, 0, 245, 4, 181, 190, 0, 0, 0, 191, 242, 4, 181, 190, 129, 63, 193, 63, 0, 57, 0, 60, 245, 4, 181, 190, 0, 0, 0, 63, 242, 4, 181, 190, 129, 63, 193, 63, 0, 57, 0, 0, 21, 239, 67, 190, 0, 0, 0, 191, 95, 131, 236, 190, 129, 89, 167, 63, 128, 56, 0, 60, 21, 239, 67, 190, 0, 0, 0, 63, 95, 131, 236, 190, 129, 89, 167, 63, 128, 56, 0, 0 ), -"array_index_data": PoolByteArray( 0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 18, 0, 15, 0, 14, 0, 16, 0, 18, 0, 17, 0, 21, 0, 19, 0, 17, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 1, 0, 33, 0, 32, 0, 0, 0, 1, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1), +"attribute_data": PackedByteArray(0, 0, 0, 63, 0, 0, 128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 160, 62, 0, 0, 128, 63, 0, 0, 160, 62, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 128, 63, 0, 0, 128, 62, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 128, 63, 0, 0, 0, 62, 0, 0, 0, 0, 4, 0, 128, 61, 0, 0, 128, 63, 4, 0, 128, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 112, 63, 0, 0, 128, 63, 0, 0, 112, 63, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 128, 63, 0, 0, 64, 63, 0, 0, 0, 0, 255, 255, 47, 63, 0, 0, 128, 63, 255, 255, 47, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 16, 63, 0, 0, 128, 63, 0, 0, 16, 63, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 64, 62, 0, 0, 128, 63, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 63, 0, 0, 128, 63, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 0, 0, 0, 0, 224, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 0, 0), +"format": 4119, "index_count": 96, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 34 -} +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 18, 0, 15, 0, 14, 0, 16, 0, 18, 0, 17, 0, 21, 0, 19, 0, 17, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 27, 0, 25, 0, 24, 0, 26, 0, 27, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 1, 0, 33, 0, 32, 0, 0, 0, 1, 0), +"lods": [0.0672776, PackedByteArray(57, 0, 59, 0, 58, 0, 57, 0, 10, 0, 59, 0, 32, 0, 57, 0, 58, 0, 10, 0, 13, 0, 59, 0, 32, 0, 58, 0, 33, 0, 10, 0, 14, 0, 13, 0, 14, 0, 18, 0, 13, 0, 14, 0, 16, 0, 18, 0, 30, 0, 32, 0, 33, 0, 30, 0, 33, 0, 29, 0, 26, 0, 30, 0, 29, 0, 26, 0, 29, 0, 25, 0, 22, 0, 26, 0, 25, 0, 22, 0, 25, 0, 21, 0, 17, 0, 22, 0, 21, 0, 17, 0, 21, 0, 19, 0), 0.164049, PackedByteArray(42, 0, 49, 0, 45, 0, 42, 0, 47, 0, 49, 0, 48, 0, 52, 0, 13, 0, 48, 0, 50, 0, 52, 0, 51, 0, 54, 0, 19, 0, 51, 0, 22, 0, 54, 0, 53, 0, 43, 0, 55, 0, 44, 0, 46, 0, 56, 0), 0.399072, PackedByteArray(40, 0, 38, 0, 34, 0, 22, 0, 16, 0, 18, 0, 37, 0, 35, 0, 39, 0, 17, 0, 41, 0, 36, 0)], +"material": SubResource("StandardMaterial3D_63gm4"), +"primitive": 3, +"vertex_count": 60, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 191, 255, 255, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 255, 255, 255, 255, 0, 0, 255, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 255, 255, 129, 218, 0, 0, 189, 210, 22, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 190, 255, 255, 129, 218, 0, 0, 189, 210, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 190, 255, 255, 255, 191, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 255, 255, 255, 191, 0, 0, 255, 223, 94, 131, 236, 62, 0, 0, 0, 191, 21, 239, 67, 190, 255, 255, 124, 165, 0, 0, 64, 237, 94, 131, 236, 62, 0, 0, 0, 63, 21, 239, 67, 190, 255, 255, 124, 165, 0, 0, 64, 237, 0, 0, 0, 63, 0, 0, 0, 191, 46, 189, 187, 50, 255, 255, 255, 127, 0, 0, 255, 255, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 255, 255, 255, 127, 0, 0, 255, 255, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 129, 218, 255, 127, 255, 255, 64, 237, 95, 131, 236, 62, 0, 0, 0, 63, 20, 239, 67, 62, 129, 218, 255, 127, 255, 255, 64, 237, 243, 4, 181, 62, 0, 0, 0, 191, 243, 4, 181, 62, 255, 191, 255, 127, 255, 255, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 255, 191, 255, 127, 255, 255, 255, 223, 23, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 62, 124, 165, 255, 127, 255, 255, 189, 210, 23, 239, 67, 62, 0, 0, 0, 63, 94, 131, 236, 62, 124, 165, 255, 127, 255, 255, 189, 210, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 255, 127, 255, 127, 254, 255, 255, 191, 21, 239, 67, 190, 0, 0, 0, 191, 94, 131, 236, 62, 130, 90, 255, 127, 129, 218, 255, 191, 21, 239, 67, 190, 0, 0, 0, 63, 94, 131, 236, 62, 130, 90, 255, 127, 129, 218, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 255, 63, 255, 127, 255, 191, 255, 191, 242, 4, 181, 190, 0, 0, 0, 63, 244, 4, 181, 62, 255, 63, 255, 127, 255, 191, 255, 191, 94, 131, 236, 190, 0, 0, 0, 191, 26, 239, 67, 62, 125, 37, 255, 127, 124, 165, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 125, 37, 255, 127, 124, 165, 255, 191, 0, 0, 0, 191, 0, 0, 0, 191, 46, 222, 204, 177, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 0, 191, 0, 0, 0, 63, 46, 222, 204, 177, 0, 0, 255, 127, 255, 127, 255, 191, 93, 131, 236, 190, 0, 0, 0, 191, 27, 239, 67, 190, 0, 0, 124, 165, 130, 90, 255, 191, 93, 131, 236, 190, 0, 0, 0, 63, 27, 239, 67, 190, 0, 0, 124, 165, 130, 90, 255, 191, 245, 4, 181, 190, 0, 0, 0, 191, 242, 4, 181, 190, 0, 0, 255, 191, 255, 63, 255, 191, 245, 4, 181, 190, 0, 0, 0, 63, 242, 4, 181, 190, 0, 0, 255, 191, 255, 63, 255, 191, 21, 239, 67, 190, 0, 0, 0, 191, 95, 131, 236, 190, 0, 0, 129, 218, 125, 37, 255, 191, 21, 239, 67, 190, 0, 0, 0, 63, 95, 131, 236, 190, 0, 0, 129, 218, 125, 37, 255, 191, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 173, 197, 255, 127, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 0, 0, 15, 173, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 79, 101, 255, 127, 0, 0, 255, 223, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 166, 12, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 84, 173, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 116, 29, 255, 127, 254, 255, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 250, 172, 255, 127, 255, 191, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 40, 95, 255, 127, 255, 191, 255, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 255, 255, 126, 167, 0, 0, 189, 210, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 0, 0, 71, 174, 0, 0, 189, 210, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 0, 0, 74, 239, 0, 0, 189, 210, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 255, 255, 202, 156, 0, 0, 255, 223, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 0, 0, 163, 241, 0, 0, 255, 223, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 255, 255, 114, 131, 255, 255, 64, 237, 95, 131, 236, 62, 0, 0, 0, 191, 20, 239, 67, 62, 0, 186, 255, 127, 255, 255, 64, 237, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 62, 255, 255, 235, 135, 255, 255, 255, 223, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 52, 163, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 191, 0, 0, 0, 63, 172, 91, 255, 127, 254, 255, 255, 191, 46, 189, 59, 179, 0, 0, 0, 63, 0, 0, 0, 63, 144, 170, 255, 127, 254, 255, 255, 191, 242, 4, 181, 190, 0, 0, 0, 191, 244, 4, 181, 62, 117, 3, 255, 127, 255, 191, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 180, 71, 255, 127, 124, 165, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 0, 0, 123, 133, 124, 165, 255, 191, 94, 131, 236, 190, 0, 0, 0, 63, 26, 239, 67, 62, 0, 0, 130, 215, 124, 165, 255, 191, 22, 239, 67, 62, 0, 0, 0, 191, 94, 131, 236, 190, 255, 255, 47, 195, 0, 0, 189, 210, 243, 4, 181, 62, 0, 0, 0, 63, 243, 4, 181, 190, 255, 255, 25, 214, 0, 0, 255, 223, 0, 0, 0, 63, 0, 0, 0, 63, 46, 189, 187, 50, 255, 255, 117, 147, 0, 0, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_hgony") -[node name="WindArea" instance=ExtResource( 1 )] +[node name="WindArea" instance=ExtResource("1")] collision_layer = 524288 -wind_vector = Vector3( 0, 20, 0 ) +wind_vector = Vector3(0, 20, 0) -[node name="CollisionShape" parent="." index="0"] -shape = SubResource( 2 ) +[node name="CollisionShape3D" parent="." index="0"] +shape = SubResource("2") -[node name="Cylinder" type="MeshInstance" parent="." index="1"] -transform = Transform( 10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0 ) -mesh = SubResource( 1 ) +[node name="Cylinder" type="MeshInstance3D" parent="." index="1"] +transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0) +gi_mode = 0 +mesh = SubResource("ArrayMesh_6nlh0") skeleton = NodePath("") -material/0 = ExtResource( 2 ) +surface_material_override/0 = ExtResource("2") diff --git a/scenes/climbing_gliding_demo/objects/wind_area_shader.tres b/scenes/climbing_gliding_demo/objects/wind_area_shader.tres index c13c541c..0554ba14 100644 --- a/scenes/climbing_gliding_demo/objects/wind_area_shader.tres +++ b/scenes/climbing_gliding_demo/objects/wind_area_shader.tres @@ -1,146 +1,152 @@ -[gd_resource type="ShaderMaterial" load_steps=14 format=2] +[gd_resource type="ShaderMaterial" load_steps=14 format=3 uid="uid://b5c8o7a55fyx5"] -[sub_resource type="VisualShaderNodeScalarFunc" id=8] +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_4vp4h"] output_port_for_preview = 0 function = 17 -[sub_resource type="VisualShaderNodeColorConstant" id=13] -constant = Color( 0.169944, 0.249712, 0.97294, 1 ) +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_vbeir"] +constant = Color(0.169944, 0.249712, 0.97294, 1) -[sub_resource type="VisualShaderNodeInput" id=14] +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_24u0o"] input_name = "time" -[sub_resource type="VisualShaderNodeScalarOp" id=19] -default_input_values = [ 0, 0.0, 1, 0.8 ] +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_e0v0j"] +default_input_values = [0, 0.0, 1, 0.8] operator = 2 -[sub_resource type="VisualShaderNodeVectorOp" id=23] -default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 3, 0 ) ] +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_uwwfc"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(1, 0)] +op_type = 0 operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=24] +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_n3gh3"] -[sub_resource type="VisualShaderNodeVectorOp" id=25] +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_yqpiy"] operator = 2 -[sub_resource type="VisualShaderNodeScalarOp" id=30] +[sub_resource type="VisualShaderNodeSmoothStep" id="VisualShaderNodeSmoothStep_ludc6"] output_port_for_preview = 0 -operator = 7 - -[sub_resource type="VisualShaderNodeScalarOp" id=31] -default_input_values = [ 0, 0.0, 1, 0.8 ] -operator = 2 +default_input_values = [0, 0.4, 1, 0.5, 2, 0.0] -[sub_resource type="VisualShaderNodeInput" id=21] +[sub_resource type="VisualShaderNodeSmoothStep" id="VisualShaderNodeSmoothStep_hpd7b"] output_port_for_preview = 0 -input_name = "uv" +default_input_values = [0, 1.0, 1, 0.4, 2, 0.0] -[sub_resource type="VisualShaderNodeScalarSmoothStep" id=32] +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_sxb5j"] output_port_for_preview = 0 -default_input_values = [ 0, 0.4, 1, 0.5, 2, 0.0 ] +operator = 7 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_3jcqr"] +default_input_values = [0, 0.0, 1, 0.8] +operator = 2 -[sub_resource type="VisualShaderNodeScalarSmoothStep" id=33] +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_mno13"] output_port_for_preview = 0 -default_input_values = [ 0, 1.0, 1, 0.4, 2, 0.0 ] +expanded_output_ports = [0] +input_name = "uv" -[sub_resource type="VisualShader" id=22] +[sub_resource type="VisualShader" id="VisualShader_buj8i"] code = "shader_type spatial; -render_mode blend_add, cull_disabled, specular_schlick_ggx, async_visible, unshaded; - +render_mode blend_add, cull_disabled, unshaded; -void vertex() { -// Output:0 - -} void fragment() { -// Color:19 - vec3 n_out19p0 = vec3(0.169944, 0.249712, 0.972940); - float n_out19p1 = 1.000000; +// ColorConstant:19 + vec4 n_out19p0 = vec4(0.169944, 0.249712, 0.972940, 1.000000); + // Input:2 float n_out2p0 = TIME; -// ScalarOp:25 + +// FloatOp:25 float n_in25p1 = 0.80000; float n_out25p0 = n_out2p0 * n_in25p1; + // Input:5 - vec3 n_out5p0 = vec3(UV, 0.0); + vec2 n_out5p0 = UV; + float n_out5p2 = n_out5p0.g; + // VectorOp:26 - vec3 n_in26p1 = vec3(0.00000, 3.00000, 0.00000); - vec3 n_out26p0 = n_out5p0 * n_in26p1; + vec2 n_in26p1 = vec2(1.00000, 0.00000); + vec2 n_out26p0 = vec2(n_out5p2) * n_in26p1; + + +// FloatOp:27 + float n_out27p0 = n_out25p0 + n_out26p0.x; -// ScalarOp:27 - float n_out27p0 = n_out25p0 + dot(n_out26p0, vec3(0.333333, 0.333333, 0.333333)); -// ScalarFunc:12 +// FloatFunc:12 float n_out12p0 = fract(n_out27p0); -// ScalarSmoothStep:50 - float n_in50p0 = 0.40000; - float n_in50p1 = 0.50000; - float n_out50p0 = smoothstep(n_in50p0, n_in50p1, n_out12p0); -// ScalarSmoothStep:51 - float n_in51p0 = 1.00000; - float n_in51p1 = 0.40000; - float n_out51p0 = smoothstep(n_in51p0, n_in51p1, n_out12p0); +// SmoothStep:46 + float n_in46p0 = 0.40000; + float n_in46p1 = 0.50000; + float n_out46p0 = smoothstep(n_in46p0, n_in46p1, n_out12p0); + + +// SmoothStep:47 + float n_in47p0 = 1.00000; + float n_in47p1 = 0.40000; + float n_out47p0 = smoothstep(n_in47p0, n_in47p1, n_out12p0); + -// ScalarOp:48 - float n_out48p0 = min(n_out50p0, n_out51p0); +// FloatOp:48 + float n_out48p0 = min(n_out46p0, n_out47p0); -// ScalarOp:49 + +// FloatOp:49 float n_in49p1 = 0.80000; float n_out49p0 = n_out48p0 * n_in49p1; + // VectorOp:40 - vec3 n_out40p0 = n_out19p0 * vec3(n_out49p0); + vec3 n_out40p0 = vec3(n_out19p0.xyz) * vec3(n_out49p0); + // Output:0 ALBEDO = n_out40p0; ALPHA = n_out49p0; -} - -void light() { -// Output:0 } " -graph_offset = Vector2( 775.702, -184.338 ) +graph_offset = Vector2(-435.649, -116.438) modes/blend = 1 modes/cull = 2 flags/unshaded = true -nodes/fragment/0/position = Vector2( 1820, 0 ) -nodes/fragment/2/node = SubResource( 14 ) -nodes/fragment/2/position = Vector2( -294, 63 ) -nodes/fragment/5/node = SubResource( 21 ) -nodes/fragment/5/position = Vector2( -294, 231 ) -nodes/fragment/12/node = SubResource( 8 ) -nodes/fragment/12/position = Vector2( 360, 120 ) -nodes/fragment/19/node = SubResource( 13 ) -nodes/fragment/19/position = Vector2( 1365, -84 ) -nodes/fragment/25/node = SubResource( 19 ) -nodes/fragment/25/position = Vector2( -84, 42 ) -nodes/fragment/26/node = SubResource( 23 ) -nodes/fragment/26/position = Vector2( -84, 210 ) -nodes/fragment/27/node = SubResource( 24 ) -nodes/fragment/27/position = Vector2( 126, 105 ) -nodes/fragment/40/node = SubResource( 25 ) -nodes/fragment/40/position = Vector2( 1617, -84 ) -nodes/fragment/48/node = SubResource( 30 ) -nodes/fragment/48/position = Vector2( 1000, 40 ) -nodes/fragment/49/node = SubResource( 31 ) -nodes/fragment/49/position = Vector2( 1302, 84 ) -nodes/fragment/50/node = SubResource( 32 ) -nodes/fragment/50/position = Vector2( 640, -40 ) -nodes/fragment/51/node = SubResource( 33 ) -nodes/fragment/51/position = Vector2( 640, 200 ) -nodes/fragment/connections = PoolIntArray( 2, 0, 25, 0, 5, 0, 26, 0, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 12, 0, 48, 0, 49, 0, 49, 0, 0, 1, 40, 0, 0, 0, 49, 0, 40, 1, 19, 0, 40, 0, 12, 0, 50, 2, 12, 0, 51, 2, 50, 0, 48, 0, 51, 0, 48, 1 ) +nodes/fragment/0/position = Vector2(1820, 0) +nodes/fragment/2/node = SubResource("VisualShaderNodeInput_24u0o") +nodes/fragment/2/position = Vector2(-480, 60) +nodes/fragment/5/node = SubResource("VisualShaderNodeInput_mno13") +nodes/fragment/5/position = Vector2(-500, 240) +nodes/fragment/12/node = SubResource("VisualShaderNodeFloatFunc_4vp4h") +nodes/fragment/12/position = Vector2(380, 140) +nodes/fragment/19/node = SubResource("VisualShaderNodeColorConstant_vbeir") +nodes/fragment/19/position = Vector2(1365, -84) +nodes/fragment/25/node = SubResource("VisualShaderNodeFloatOp_e0v0j") +nodes/fragment/25/position = Vector2(-84, 42) +nodes/fragment/26/node = SubResource("VisualShaderNodeVectorOp_uwwfc") +nodes/fragment/26/position = Vector2(-84, 210) +nodes/fragment/27/node = SubResource("VisualShaderNodeFloatOp_n3gh3") +nodes/fragment/27/position = Vector2(126, 105) +nodes/fragment/40/node = SubResource("VisualShaderNodeVectorOp_yqpiy") +nodes/fragment/40/position = Vector2(1617, -84) +nodes/fragment/46/node = SubResource("VisualShaderNodeSmoothStep_ludc6") +nodes/fragment/46/position = Vector2(700, -60) +nodes/fragment/47/node = SubResource("VisualShaderNodeSmoothStep_hpd7b") +nodes/fragment/47/position = Vector2(700, 300) +nodes/fragment/48/node = SubResource("VisualShaderNodeFloatOp_sxb5j") +nodes/fragment/48/position = Vector2(1071, 42) +nodes/fragment/49/node = SubResource("VisualShaderNodeFloatOp_3jcqr") +nodes/fragment/49/position = Vector2(1302, 84) +nodes/fragment/connections = PackedInt32Array(2, 0, 25, 0, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 12, 0, 12, 0, 47, 2, 46, 0, 48, 0, 47, 0, 48, 1, 48, 0, 49, 0, 49, 0, 0, 1, 40, 0, 0, 0, 49, 0, 40, 1, 19, 0, 40, 0, 5, 2, 26, 0, 12, 0, 46, 2) [resource] -shader = SubResource( 22 ) +render_priority = 0 +shader = SubResource("VisualShader_buj8i") diff --git a/scenes/demo_scene_base.gd b/scenes/demo_scene_base.gd new file mode 100644 index 00000000..9a661f70 --- /dev/null +++ b/scenes/demo_scene_base.gd @@ -0,0 +1,27 @@ +class_name DemoSceneBase +extends XRToolsSceneBase + +func _ready(): + super() + + var webxr_interface = XRServer.find_interface("WebXR") + if webxr_interface: + XRToolsUserSettings.webxr_primary_changed.connect(self._on_webxr_primary_changed) + _on_webxr_primary_changed(XRToolsUserSettings.get_real_webxr_primary()) + + +func _on_webxr_primary_changed(webxr_primary: int) -> void: + # Default to thumbstick. + if webxr_primary == 0: + webxr_primary = XRToolsUserSettings.WebXRPrimary.THUMBSTICK + + # Re-assign the action name on all the applicable functions. + var action_name = XRToolsUserSettings.get_webxr_primary_action(webxr_primary) + for controller in [$XROrigin3D/LeftHand, $XROrigin3D/RightHand]: + for n in ["MovementDirect", "MovementTurn", "FunctionTeleport"]: + var f = controller.get_node_or_null(n) + if f: + if "input_action" in f: + f.input_action = action_name + if "rotation_action" in f: + f.rotation_action = action_name diff --git a/scenes/footstep_movement_demo/footstep movement demo.png.import b/scenes/footstep_movement_demo/footstep movement demo.png.import index f92173ed..757f4380 100644 --- a/scenes/footstep_movement_demo/footstep movement demo.png.import +++ b/scenes/footstep_movement_demo/footstep movement demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.s3tc.stex" -path.etc="res://.import/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.etc.stex" +type="CompressedTexture2D" +uid="uid://dwryn8mjdj86m" +path.s3tc="res://.godot/imported/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.s3tc.ctex" +path.etc2="res://.godot/imported/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/footstep_movement_demo/footstep movement demo.png" -dest_files=[ "res://.import/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.s3tc.stex", "res://.import/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.etc.stex" ] +dest_files=["res://.godot/imported/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.s3tc.ctex", "res://.godot/imported/footstep movement demo.png-9b27f7d693208653d68f1aed94dd89af.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/footstep_movement_demo/footstep_movement_demo.tscn b/scenes/footstep_movement_demo/footstep_movement_demo.tscn index acc19962..22d1285c 100644 --- a/scenes/footstep_movement_demo/footstep_movement_demo.tscn +++ b/scenes/footstep_movement_demo/footstep_movement_demo.tscn @@ -1,84 +1,77 @@ -[gd_scene load_steps=18 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=9] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=10] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=11] -[ext_resource path="res://assets/meshes/plate/surface_objects.tscn" type="PackedScene" id=12] -[ext_resource path="res://addons/godot-xr-tools/audio/surface_audio_type.gd" type="Script" id=13] -[ext_resource path="res://assets/footsteps/default_footstep.wav" type="AudioStream" id=14] -[ext_resource path="res://scenes/footstep_movement_demo/objects/instructions.tscn" type="PackedScene" id=16] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_footstep.tscn" type="PackedScene" id=17] - -[sub_resource type="Resource" id=2] -script = ExtResource( 13 ) -name = "" -hit_sound = ExtResource( 14 ) -walk_sounds = [ ExtResource( 14 ), ExtResource( 14 ) ] +[gd_scene load_steps=19 format=3 uid="uid://di3m8og7wdtw7"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="1_yauh3"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://mnoirgubr2js" path="res://scenes/footstep_movement_demo/objects/instructions.tscn" id="3_8248t"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="9"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="10"] +[ext_resource type="PackedScene" uid="uid://0xlsitpu17r1" path="res://addons/godot-xr-tools/functions/movement_footstep.tscn" id="10_e05iy"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="11"] +[ext_resource type="AudioStream" uid="uid://cddgfn5xkknr4" path="res://assets/footsteps/default_footstep.wav" id="11_xknd6"] +[ext_resource type="PackedScene" uid="uid://54qovguk25i5" path="res://assets/meshes/plate/surface_objects.tscn" id="12"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/surface_audio_type.gd" id="14_cqr4a"] + +[sub_resource type="Resource" id="Resource_lclo7"] +script = ExtResource("14_cqr4a") +name = "Default" +hit_sound = ExtResource("11_xknd6") +walk_sounds = Array[AudioStream]([ExtResource("11_xknd6"), ExtResource("11_xknd6")]) walk_pitch_minimum = 0.8 walk_pitch_maximum = 1.2 -[node name="FootstepMovementDemo" instance=ExtResource( 1 )] +[node name="FootstepMovementDemo" instance=ExtResource("1")] +script = ExtResource("1_yauh3") -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 6 )] +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("6")] -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 5 )] -__meta__ = { -"_editor_description_": "" -} -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5")] max_speed = 3.0 strafe = true -[node name="MovementCrouch" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 3 )] -__meta__ = { -"_editor_description_": "" -} +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("9")] +jump_button_action = "ax_button" + +[node name="MovementCrouch" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("3")] crouch_height = 1.3 -crouch_button = 1 +crouch_button_action = "by_button" -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 8 )] +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("8")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 5 )] -__meta__ = { -"_editor_description_": "" -} -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 7 )] -__meta__ = { -"_editor_description_": "" -} +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("7")] + +[node name="MovementJump" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("9")] +jump_button_action = "ax_button" -[node name="MovementJump" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 9 )] -jump_button_id = 7 +[node name="MovementCrouch" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("3")] +crouch_height = 1.3 +crouch_button_action = "by_button" +crouch_type = 1 -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 4 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("4")] +top_level = true +body_forward_mix = 0.75 -[node name="MovementFootstep" parent="ARVROrigin" index="4" instance=ExtResource( 17 )] -default_surface_audio_type = SubResource( 2 ) +[node name="MovementFootstep" parent="XROrigin3D" index="4" instance=ExtResource("10_e05iy")] +default_surface_audio_type = SubResource("Resource_lclo7") -[node name="BasicMap" parent="." index="1" instance=ExtResource( 2 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("2")] -[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5 ) +[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7) scene_base = NodePath("..") -title = ExtResource( 10 ) - -[node name="surface_objects" parent="." index="3" instance=ExtResource( 12 )] +title = ExtResource("10") -[node name="Instructions" parent="." index="4" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.167241, 3.76897, -15.3981 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("3_8248t")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -16) -[editable path="ARVROrigin/MovementFootstep"] +[node name="surface_objects" parent="." index="4" instance=ExtResource("12")] diff --git a/scenes/footstep_movement_demo/objects/instructions.tscn b/scenes/footstep_movement_demo/objects/instructions.tscn index e0b4f9d7..63832e56 100644 --- a/scenes/footstep_movement_demo/objects/instructions.tscn +++ b/scenes/footstep_movement_demo/objects/instructions.tscn @@ -1,23 +1,23 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://mnoirgubr2js"] -[ext_resource path="res://scenes/footstep_movement_demo/objects/instructions_2d.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] +[ext_resource type="PackedScene" uid="uid://yev5htm4v2go" path="res://scenes/footstep_movement_demo/objects/instructions_2d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] -[sub_resource type="CubeMesh" id=1] -material = ExtResource( 3 ) -size = Vector3( 4, 5, 0.1 ) +[sub_resource type="BoxMesh" id="1"] +material = ExtResource("3") +size = Vector3(4.2, 2.7, 0.1) -[node name="Instructions" type="Spatial"] +[node name="Instructions" type="Node3D"] -[node name="Viewport2Din3D" parent="." instance=ExtResource( 2 )] -screen_size = Vector2( 4, 5 ) -viewport_size = Vector2( 400, 425 ) +[node name="Viewport2Din3D" parent="." instance=ExtResource("2")] +screen_size = Vector2(4, 5) +viewport_size = Vector2(400, 425) unshaded = true -scene = ExtResource( 1 ) +scene = ExtResource("1") update_mode = 0 collision_layer = 0 -[node name="MeshInstance" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1 ) -mesh = SubResource( 1 ) +[node name="MeshInstance" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, -0.1) +mesh = SubResource("1") diff --git a/scenes/footstep_movement_demo/objects/instructions_2d.tscn b/scenes/footstep_movement_demo/objects/instructions_2d.tscn index 6c8d9826..0812d7b8 100644 --- a/scenes/footstep_movement_demo/objects/instructions_2d.tscn +++ b/scenes/footstep_movement_demo/objects/instructions_2d.tscn @@ -1,23 +1,27 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://yev5htm4v2go"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -100.0 -rect_pivot_offset = Vector2( -421, -85 ) +grow_horizontal = 2 +grow_vertical = 2 [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 500.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 1 +offset_right = 400.0 +offset_bottom = 500.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 400.0 -margin_bottom = 480.0 -custom_constants/line_separation = -1 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 470.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Footstep Demo This scene demonstrates the footstep system. @@ -30,25 +34,19 @@ Usage: currently standing on. - surface_audio.tscn - this is the node you can attach to a StaticBody - which lets you define the surface audio resource - - 1) select a StaticBody and attach - a surface_audio.tscn to it - - 2) select Resource, create a - new XRToolsSurfaceAudioType - - 3) Name - fill in the the surface name to be used - for the footstep - - 4) Walk Sounds and HitSound - fill with the desired - audio files - - 4)a: Walk Sounds can be multiple ones - 4)b: HitSound is the sound that is - being played when the player jumps + this is the node you can attach to a StaticBody which lets you + define the surface audio resource + 1) select a StaticBody and attach a surface_audio.tscn to it + 2) select Resource, create a new XRToolsSurfaceAudioType + 3) Name - fill in the the surface name to be used for + the footstep + + 3) Walk Sounds and HitSound - fill with the desired audio files + 3)a: Walk Sounds can be multiple ones + 3)b: HitSound is the sound that is being played when + the player jumps - 5) WalkPitch Min/Max - can be adjusted to create a randomized pitch scale - of the footstep audio" + 4) WalkPitch Min/Max + can be adjusted to create a randomized pitch scale of the + footstep audio + " diff --git a/scenes/grappling_demo/grappling_demo.png.import b/scenes/grappling_demo/grappling_demo.png.import index 9ffffaad..685f6b1e 100644 --- a/scenes/grappling_demo/grappling_demo.png.import +++ b/scenes/grappling_demo/grappling_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/grappling_demo.png-3277f986c37005ed2326287520676e8f.s3tc.stex" -path.etc="res://.import/grappling_demo.png-3277f986c37005ed2326287520676e8f.etc.stex" +type="CompressedTexture2D" +uid="uid://bwkm0t73t80cs" +path.s3tc="res://.godot/imported/grappling_demo.png-3277f986c37005ed2326287520676e8f.s3tc.ctex" +path.etc2="res://.godot/imported/grappling_demo.png-3277f986c37005ed2326287520676e8f.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/grappling_demo/grappling_demo.png" -dest_files=[ "res://.import/grappling_demo.png-3277f986c37005ed2326287520676e8f.s3tc.stex", "res://.import/grappling_demo.png-3277f986c37005ed2326287520676e8f.etc.stex" ] +dest_files=["res://.godot/imported/grappling_demo.png-3277f986c37005ed2326287520676e8f.s3tc.ctex", "res://.godot/imported/grappling_demo.png-3277f986c37005ed2326287520676e8f.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/grappling_demo/grappling_demo.tscn b/scenes/grappling_demo/grappling_demo.tscn index 84094d00..6b9f3ae7 100644 --- a/scenes/grappling_demo/grappling_demo.tscn +++ b/scenes/grappling_demo/grappling_demo.tscn @@ -1,107 +1,104 @@ -[gd_scene load_steps=18 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_grapple.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_climb.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_glide.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/grappling_demo/objects/moving_platforms.tscn" type="PackedScene" id=12] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=13] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=14] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=15] -[ext_resource path="res://scenes/grappling_demo/objects/instructions.tscn" type="PackedScene" id=16] -[ext_resource path="res://scenes/grappling_demo/objects/tower.tscn" type="PackedScene" id=18] - -[node name="GrapplingDemo" instance=ExtResource( 1 )] - -[node name="ARVROrigin" parent="." index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 28 ) - -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 6 )] - -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 3 )] -enabled = true -order = 10 +[gd_scene load_steps=19 format=3 uid="uid://cvnl210i6nydl"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://c78tjrtiyqna8" path="res://addons/godot-xr-tools/functions/movement_grapple.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="2_7xgbg"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_lm0po"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_n2v2n"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://cvokcudrffkgc" path="res://addons/godot-xr-tools/functions/movement_glide.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="11"] +[ext_resource type="PackedScene" path="res://scenes/grappling_demo/objects/moving_platforms.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="14"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="15"] +[ext_resource type="PackedScene" path="res://scenes/grappling_demo/objects/instructions.tscn" id="15_vd3ki"] +[ext_resource type="PackedScene" uid="uid://lelocs2v705t" path="res://scenes/grappling_demo/objects/tower.tscn" id="18"] + +[node name="GrapplingDemo" instance=ExtResource("1")] +script = ExtResource("2_lm0po") + +[node name="XROrigin3D" parent="." index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 28) + +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_7xgbg")] + +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("3")] max_speed = 3.0 strafe = true -[node name="MovementJump" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 5 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("5")] +jump_button_action = "ax_button" -[node name="FunctionPickup" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 8 )] +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("8")] ranged_enable = false -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 10 )] +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_n2v2n")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 3 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("3")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 7 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("7")] -[node name="MovementJump" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 5 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("5")] +jump_button_action = "ax_button" -[node name="MovementGrapple" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 2 )] +[node name="MovementGrapple" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("2")] -[node name="FunctionPickup" parent="ARVROrigin/RightHand" index="5" instance=ExtResource( 8 )] +[node name="FunctionPickup" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("8")] ranged_enable = false -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 11 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("11")] -[node name="MovementClimb" parent="ARVROrigin" index="4" instance=ExtResource( 4 )] +[node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("4")] -[node name="MovementGlide" parent="ARVROrigin" index="5" instance=ExtResource( 9 )] +[node name="MovementGlide" parent="XROrigin3D" index="5" instance=ExtResource("9")] -[node name="BasicMap" parent="." index="1" instance=ExtResource( 13 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("13")] -[node name="ToMainMenu" parent="." index="2" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 32 ) +[node name="ToMainMenu" parent="." index="2" instance=ExtResource("14")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 32) scene_base = NodePath("..") -title = ExtResource( 15 ) +title = ExtResource("15") -[node name="Instructions" parent="." index="3" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 24 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("15_vd3ki")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 24) -[node name="Towers" type="Spatial" parent="." index="4"] +[node name="Towers" type="Node3D" parent="." index="4"] -[node name="Tower1" parent="Towers" index="0" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, -2, -8 ) +[node name="Tower1" parent="Towers" index="0" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, -2, -8) -[node name="Tower2" parent="Towers" index="1" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8 ) +[node name="Tower2" parent="Towers" index="1" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8) -[node name="Tower3" parent="Towers" index="2" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, -2, -8 ) +[node name="Tower3" parent="Towers" index="2" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, -2, -8) -[node name="Tower4" parent="Towers" index="3" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, 0 ) +[node name="Tower4" parent="Towers" index="3" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, 0) -[node name="Tower5" parent="Towers" index="4" instance=ExtResource( 18 )] +[node name="Tower5" parent="Towers" index="4" instance=ExtResource("18")] -[node name="Tower6" parent="Towers" index="5" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0 ) +[node name="Tower6" parent="Towers" index="5" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0) -[node name="Tower7" parent="Towers" index="6" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, -2, 8 ) +[node name="Tower7" parent="Towers" index="6" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, -2, 8) -[node name="Tower8" parent="Towers" index="7" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8 ) +[node name="Tower8" parent="Towers" index="7" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8) -[node name="Tower9" parent="Towers" index="8" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, -2, 8 ) +[node name="Tower9" parent="Towers" index="8" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, -2, 8) -[node name="MovingPlatformsLow" parent="." index="5" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0 ) +[node name="MovingPlatformsLow" parent="." index="5" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0) -[node name="MovingPlatformsHigh" parent="." index="6" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0 ) +[node name="MovingPlatformsHigh" parent="." index="6" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0) rate = -10.0 diff --git a/scenes/grappling_demo/objects/instructions_2d.tscn b/scenes/grappling_demo/objects/instructions_2d.tscn index 945cf5be..ac585f41 100644 --- a/scenes/grappling_demo/objects/instructions_2d.tscn +++ b/scenes/grappling_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://c83u3yf6se26f"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Grappling Demo This scene demonstrates grappling movement with the following controls: diff --git a/scenes/grappling_demo/objects/moving_platforms.gd b/scenes/grappling_demo/objects/moving_platforms.gd index 2e4bd51d..18660638 100644 --- a/scenes/grappling_demo/objects/moving_platforms.gd +++ b/scenes/grappling_demo/objects/moving_platforms.gd @@ -1,8 +1,8 @@ -extends Spatial +extends Node3D # Rotation rate -export var rate : float = 10.0 +@export var rate : float = 10.0 # Called every frame. 'delta' is the elapsed time since the previous frame. func _physics_process(delta): - rotate_y(deg2rad(delta * rate)) + rotate_y(deg_to_rad(delta * rate)) diff --git a/scenes/grappling_demo/objects/moving_platforms.tscn b/scenes/grappling_demo/objects/moving_platforms.tscn index fefae6e9..b5e23ae5 100644 --- a/scenes/grappling_demo/objects/moving_platforms.tscn +++ b/scenes/grappling_demo/objects/moving_platforms.tscn @@ -3,17 +3,17 @@ [ext_resource path="res://scenes/grappling_demo/objects/platform.tscn" type="PackedScene" id=2] [ext_resource path="res://scenes/grappling_demo/objects/moving_platforms.gd" type="Script" id=3] -[node name="MovingPlatforms" type="Spatial"] +[node name="MovingPlatforms" type="Node3D"] script = ExtResource( 3 ) [node name="Platform1" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 17 ) +transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 17 ) [node name="Platform2" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17, 0, 0 ) +transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17, 0, 0 ) [node name="Platform3" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -17 ) +transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -17 ) [node name="Platform4" parent="." instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 0, 0 ) +transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 0, 0 ) diff --git a/scenes/grappling_demo/objects/platform.tscn b/scenes/grappling_demo/objects/platform.tscn index 6f6a1ebd..2604699c 100644 --- a/scenes/grappling_demo/objects/platform.tscn +++ b/scenes/grappling_demo/objects/platform.tscn @@ -1,22 +1,22 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://cfagt23i6sx20"] -[ext_resource path="res://addons/godot-xr-tools/objects/climbable.gd" type="Script" id=1] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/climbable.gd" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="2"] -[sub_resource type="CubeMesh" id=3] -size = Vector3( 5, 1, 5 ) +[sub_resource type="BoxMesh" id="3"] +size = Vector3(5, 1, 5) -[sub_resource type="BoxShape" id=4] -extents = Vector3( 2.5, 0.5, 2.5 ) +[sub_resource type="BoxShape3D" id="4"] +size = Vector3(5, 1, 5) -[node name="Platform" type="StaticBody"] +[node name="Platform" type="StaticBody3D"] collision_layer = 262145 collision_mask = 0 -script = ExtResource( 1 ) +script = ExtResource("1") -[node name="MeshInstance" type="MeshInstance" parent="."] -mesh = SubResource( 3 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("3") +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 4 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("4") diff --git a/scenes/grappling_demo/objects/tower.tscn b/scenes/grappling_demo/objects/tower.tscn index eebf9d75..e2b44a66 100644 --- a/scenes/grappling_demo/objects/tower.tscn +++ b/scenes/grappling_demo/objects/tower.tscn @@ -1,21 +1,21 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://lelocs2v705t"] -[ext_resource path="res://addons/godot-xr-tools/objects/climbable.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="PackedScene" uid="uid://cjyilbm4ucc7s" path="res://addons/godot-xr-tools/objects/climbable.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="2"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 1.5, 4, 1.5 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(3, 8, 3) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 3, 8, 3 ) +[sub_resource type="BoxMesh" id="2"] +size = Vector3(3, 8, 3) -[node name="Tower" instance=ExtResource( 1 )] +[node name="Tower" instance=ExtResource("1")] -[node name="CollisionShape" parent="." index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 ) -shape = SubResource( 1 ) +[node name="CollisionShape3D" parent="." index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0) +shape = SubResource("1") -[node name="MeshInstance" type="MeshInstance" parent="." index="1"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("2") diff --git a/scenes/interactables_demo/interactables_demo.png.import b/scenes/interactables_demo/interactables_demo.png.import index d7e16397..8dfc7e1b 100644 --- a/scenes/interactables_demo/interactables_demo.png.import +++ b/scenes/interactables_demo/interactables_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.s3tc.stex" -path.etc="res://.import/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.etc.stex" +type="CompressedTexture2D" +uid="uid://bv0r0klv2u7tl" +path.s3tc="res://.godot/imported/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.s3tc.ctex" +path.etc2="res://.godot/imported/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/interactables_demo/interactables_demo.png" -dest_files=[ "res://.import/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.s3tc.stex", "res://.import/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.etc.stex" ] +dest_files=["res://.godot/imported/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.s3tc.ctex", "res://.godot/imported/interactables_demo.png-93e206d3cc672685eee906618bf6aff3.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/interactables_demo/interactables_demo.tscn b/scenes/interactables_demo/interactables_demo.tscn index adc83aea..03277216 100644 --- a/scenes/interactables_demo/interactables_demo.tscn +++ b/scenes/interactables_demo/interactables_demo.tscn @@ -1,111 +1,108 @@ -[gd_scene load_steps=24 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=3] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=4] -[ext_resource path="res://assets/meshes/interactables/slider_snap.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" type="PackedScene" id=11] -[ext_resource path="res://assets/meshes/interactables/slider_smooth.tscn" type="PackedScene" id=12] -[ext_resource path="res://assets/meshes/interactables/slider_zero.tscn" type="PackedScene" id=13] -[ext_resource path="res://assets/meshes/interactables/lever_smooth.tscn" type="PackedScene" id=14] -[ext_resource path="res://assets/meshes/interactables/lever_zero.tscn" type="PackedScene" id=15] -[ext_resource path="res://assets/meshes/interactables/lever_snap.tscn" type="PackedScene" id=16] -[ext_resource path="res://assets/meshes/interactables/joystick_snap.tscn" type="PackedScene" id=17] -[ext_resource path="res://assets/meshes/interactables/joystick_smooth.tscn" type="PackedScene" id=18] -[ext_resource path="res://assets/meshes/interactables/joystick_zero.tscn" type="PackedScene" id=19] -[ext_resource path="res://assets/meshes/interactables/wheel_smooth.tscn" type="PackedScene" id=20] -[ext_resource path="res://assets/meshes/interactables/push_button.tscn" type="PackedScene" id=21] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" type="PackedScene" id=22] -[ext_resource path="res://scenes/interactables_demo/objects/instructions.tscn" type="PackedScene" id=23] - -[node name="InteractablesDemo" instance=ExtResource( 1 )] - -[node name="LeftPhysicsHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 6 )] - -[node name="FunctionPoseDetector" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 22 )] - -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 8 )] -enabled = true -order = 10 +[gd_scene load_steps=25 format=3 uid="uid://hv3is88xy8k4"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="2"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_a3nc2"] +[ext_resource type="PackedScene" uid="uid://bdwmserhqai5h" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" id="2_ho402"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="3_s2g5l"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="4"] +[ext_resource type="PackedScene" uid="uid://dukyhft262nrv" path="res://assets/meshes/interactables/slider_snap.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://btf05hjpw6k05" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" id="5_x135n"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="10"] +[ext_resource type="PackedScene" path="res://scenes/interactables_demo/objects/instructions.tscn" id="11_txloh"] +[ext_resource type="PackedScene" uid="uid://cpwdvy41fqdua" path="res://assets/meshes/interactables/slider_smooth.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://hv8nnbkuccxi" path="res://assets/meshes/interactables/slider_zero.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://cs6dxfu5owcgo" path="res://assets/meshes/interactables/lever_smooth.tscn" id="14"] +[ext_resource type="PackedScene" uid="uid://cll4pk3kuuq1" path="res://assets/meshes/interactables/lever_zero.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://dxgv8axd355m7" path="res://assets/meshes/interactables/lever_snap.tscn" id="16"] +[ext_resource type="PackedScene" uid="uid://bnckmqfewiysy" path="res://assets/meshes/interactables/joystick_snap.tscn" id="17"] +[ext_resource type="PackedScene" uid="uid://bvgjfffe0w2uu" path="res://assets/meshes/interactables/joystick_smooth.tscn" id="18"] +[ext_resource type="PackedScene" uid="uid://dtrftty6i383g" path="res://assets/meshes/interactables/joystick_zero.tscn" id="19"] +[ext_resource type="PackedScene" uid="uid://d2td5hwh2oluy" path="res://assets/meshes/interactables/wheel_smooth.tscn" id="20"] +[ext_resource type="PackedScene" uid="uid://dbv1hvxufc1al" path="res://assets/meshes/interactables/push_button.tscn" id="21"] + +[node name="InteractablesDemo" instance=ExtResource("1")] +script = ExtResource("2_a3nc2") + +[node name="LeftPhysicsHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_ho402")] + +[node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("3_s2g5l")] + +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("8")] max_speed = 3.0 strafe = true -[node name="FunctionPickup" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 7 )] +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("7")] ranged_enable = false -[node name="RightPhysicsHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 11 )] +[node name="RightPhysicsHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5_x135n")] -[node name="FunctionPoseDetector" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 22 )] +[node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("3_s2g5l")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 8 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("8")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 10 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("10")] -[node name="FunctionPickup" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 7 )] +[node name="FunctionPickup" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("7")] ranged_enable = false -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 9 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("9")] -[node name="BasicMap" parent="." index="1" instance=ExtResource( 2 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("2")] -[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource( 3 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4 ) +[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4) scene_base = NodePath("..") -title = ExtResource( 4 ) +title = ExtResource("4") -[node name="Instructions" parent="." index="3" instance=ExtResource( 23 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("11_txloh")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4) -[node name="Interactables" type="Spatial" parent="." index="4"] +[node name="Interactables" type="Node3D" parent="." index="4"] -[node name="SliderSmooth" parent="Interactables" index="0" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 1, -2 ) +[node name="SliderSmooth" parent="Interactables" index="0" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 1, -2) -[node name="SliderSnap" parent="Interactables" index="1" instance=ExtResource( 5 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 1, -2 ) +[node name="SliderSnap" parent="Interactables" index="1" instance=ExtResource("5")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 1, -2) -[node name="SliderZero" parent="Interactables" index="2" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 1, -2 ) +[node name="SliderZero" parent="Interactables" index="2" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 1, -2) -[node name="LeverSmooth" parent="Interactables" index="3" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1, -2 ) +[node name="LeverSmooth" parent="Interactables" index="3" instance=ExtResource("14")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 1, -2) -[node name="LeverSnap" parent="Interactables" index="4" instance=ExtResource( 16 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9, 1, -2 ) +[node name="LeverSnap" parent="Interactables" index="4" instance=ExtResource("16")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9, 1, -2) -[node name="LeverZero" parent="Interactables" index="5" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 1, -2 ) +[node name="LeverZero" parent="Interactables" index="5" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 1, -2) -[node name="JoystickSmooth" parent="Interactables" index="6" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -2 ) +[node name="JoystickSmooth" parent="Interactables" index="6" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -2) -[node name="JoystickSnap" parent="Interactables" index="7" instance=ExtResource( 17 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.3, 1.5, -2 ) +[node name="JoystickSnap" parent="Interactables" index="7" instance=ExtResource("17")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.3, 1.5, -2) -[node name="JoystickZero" parent="Interactables" index="8" instance=ExtResource( 19 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 1.5, -2 ) +[node name="JoystickZero" parent="Interactables" index="8" instance=ExtResource("19")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 1.5, -2) -[node name="WheelSmooth" parent="Interactables" index="9" instance=ExtResource( 20 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -2 ) +[node name="WheelSmooth" parent="Interactables" index="9" instance=ExtResource("20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -2) -[node name="PushButton1" parent="Interactables" index="10" instance=ExtResource( 21 )] -transform = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, -1.6, 1.2, -2 ) +[node name="PushButton1" parent="Interactables" index="10" instance=ExtResource("21")] +transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, -1.6, 1.2, -2) -[node name="PushButton2" parent="Interactables" index="11" instance=ExtResource( 21 )] -transform = Transform( 1, 0, 0, 0, -0.642788, -0.766044, 0, 0.766044, -0.642788, -1.6, 0.8, -2 ) +[node name="PushButton2" parent="Interactables" index="11" instance=ExtResource("21")] +transform = Transform3D(1, 0, 0, 0, -0.642788, -0.766044, 0, 0.766044, -0.642788, -1.6, 0.8, -2) -[node name="PushButton3" parent="Interactables" index="12" instance=ExtResource( 21 )] -transform = Transform( 0.707107, -0.707107, 3.09086e-08, 0, -4.37114e-08, -1, 0.707107, 0.707107, -3.09086e-08, -1.65, 1, -2 ) +[node name="PushButton3" parent="Interactables" index="12" instance=ExtResource("21")] +transform = Transform3D(0.707107, -0.707107, 3.09086e-08, 0, -4.37114e-08, -1, 0.707107, 0.707107, -3.09086e-08, -1.65, 1, -2) -[node name="PushButton4" parent="Interactables" index="13" instance=ExtResource( 21 )] -transform = Transform( 0.642788, 0.766044, -3.34849e-08, 0, -4.37114e-08, -1, -0.766044, 0.642788, -2.80971e-08, -1.55, 1, -2 ) +[node name="PushButton4" parent="Interactables" index="13" instance=ExtResource("21")] +transform = Transform3D(0.642788, 0.766044, -3.34849e-08, 0, -4.37114e-08, -1, -0.766044, 0.642788, -2.80971e-08, -1.55, 1, -2) diff --git a/scenes/interactables_demo/objects/instructions_2d.tscn b/scenes/interactables_demo/objects/instructions_2d.tscn index a6f6d9dc..bca0b066 100644 --- a/scenes/interactables_demo/objects/instructions_2d.tscn +++ b/scenes/interactables_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://8q1lcws0xejc"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Interactables Demo diff --git a/scenes/main_menu/main_menu_level.gd b/scenes/main_menu/main_menu_level.gd index 7b533db6..c009e5dd 100644 --- a/scenes/main_menu/main_menu_level.gd +++ b/scenes/main_menu/main_menu_level.gd @@ -1,5 +1,5 @@ -tool -extends XRToolsSceneBase +@tool +extends DemoSceneBase func _update_demo_positions() -> void: # Update and count the visible teleporters @@ -16,7 +16,7 @@ func _update_demo_positions() -> void: if count > 1: var angle = 2.0 * PI / count for i in count: - var t = Transform() + var t = Transform3D() t.origin = Vector3(0.0, 0.0, -10.0) t = t.rotated(Vector3.UP, angle * i) @@ -24,10 +24,11 @@ func _update_demo_positions() -> void: func _ready(): + super() _update_demo_positions() for teleporter in $Demos.get_children(): - teleporter.connect("visibility_changed", self, "_update_demo_positions") + teleporter.connect("visibility_changed",_update_demo_positions) func _on_Demos_child_entered_tree(_node): diff --git a/scenes/main_menu/main_menu_level.tscn b/scenes/main_menu/main_menu_level.tscn index 0c86cbb5..afc562f5 100644 --- a/scenes/main_menu/main_menu_level.tscn +++ b/scenes/main_menu/main_menu_level.tscn @@ -1,237 +1,280 @@ -[gd_scene load_steps=50 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" type="PackedScene" id=3] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=6] -[ext_resource path="res://scenes/basic_movement_demo/basic_movement_demo.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=8] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=9] -[ext_resource path="res://scenes/basic_movement_demo/basic movement demo.png" type="Texture" id=10] -[ext_resource path="res://scenes/teleport_demo/teleport_demo.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/teleport_demo/teleport movement demo.png" type="Texture" id=12] -[ext_resource path="res://scenes/climbing_gliding_demo/climbing_gliding_demo.png" type="Texture" id=13] -[ext_resource path="res://scenes/climbing_gliding_demo/climbing_gliding_demo.tscn" type="PackedScene" id=14] -[ext_resource path="res://scenes/grappling_demo/grappling_demo.tscn" type="PackedScene" id=15] -[ext_resource path="res://scenes/grappling_demo/grappling_demo.png" type="Texture" id=16] -[ext_resource path="res://scenes/interactables_demo/interactables_demo.png" type="Texture" id=17] -[ext_resource path="res://scenes/interactables_demo/interactables_demo.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/pointer_demo/pointer_demo.tscn" type="PackedScene" id=19] -[ext_resource path="res://scenes/pointer_demo/pointer_demo.png" type="Texture" id=20] -[ext_resource path="res://scenes/pickable_demo/pickable_demo.tscn" type="PackedScene" id=21] -[ext_resource path="res://scenes/pickable_demo/pickable_demo.png" type="Texture" id=22] -[ext_resource path="res://scenes/main_menu/main_menu_level.gd" type="Script" id=23] -[ext_resource path="res://scenes/poke_demo/poke_demo.tscn" type="PackedScene" id=24] -[ext_resource path="res://scenes/poke_demo/poke_demo.png" type="Texture" id=25] -[ext_resource path="res://scenes/main_menu/objects/settings_ui.tscn" type="PackedScene" id=26] -[ext_resource path="res://addons/godot-xr-tools/player/poke/poke.tscn" type="PackedScene" id=27] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/labglove.material" type="Material" id=28] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" type="PackedScene" id=29] -[ext_resource path="res://scenes/sprinting_demo/sprinting_demo.tscn" type="PackedScene" id=30] -[ext_resource path="res://scenes/sprinting_demo/sprinting_demo.png" type="Texture" id=31] -[ext_resource path="res://scenes/origin_gravity_demo/origin_gravity_demo.png" type="Texture" id=32] -[ext_resource path="res://scenes/origin_gravity_demo/origin_gravity_demo.tscn" type="PackedScene" id=33] -[ext_resource path="res://scenes/sphere_world_demo/sphere_world_demo.png" type="Texture" id=34] -[ext_resource path="res://scenes/sphere_world_demo/sphere_world_demo.tscn" type="PackedScene" id=35] -[ext_resource path="res://scenes/footstep_movement_demo/footstep movement demo.png" type="Texture" id=36] -[ext_resource path="res://scenes/footstep_movement_demo/footstep_movement_demo.tscn" type="PackedScene" id=37] - -[sub_resource type="AnimationNodeAnimation" id=1] -animation = "Grip" - -[sub_resource type="AnimationNodeAnimation" id=2] -animation = "Grip" - -[sub_resource type="AnimationNodeBlend2" id=3] +[gd_scene load_steps=50 format=3 uid="uid://utga61rlgb3t"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="Script" path="res://scenes/main_menu/main_menu_level.gd" id="2_taoax"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="4"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_eoo0b"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="5_xgcrx"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://c3pffsm74as2t" path="res://scenes/basic_movement_demo/basic_movement_demo.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="9"] +[ext_resource type="Texture2D" uid="uid://8jxrr3gqnxck" path="res://scenes/basic_movement_demo/basic movement demo.png" id="10"] +[ext_resource type="PackedScene" path="res://scenes/teleport_demo/teleport_demo.tscn" id="11"] +[ext_resource type="Texture2D" uid="uid://c8qc5ja60n3u8" path="res://scenes/teleport_demo/teleport movement demo.png" id="12"] +[ext_resource type="Texture2D" uid="uid://d3epm85d4s28f" path="res://scenes/climbing_gliding_demo/climbing_gliding_demo.png" id="13"] +[ext_resource type="PackedScene" uid="uid://c7ebkdn7ryqrp" path="res://scenes/climbing_gliding_demo/climbing_gliding_demo.tscn" id="14"] +[ext_resource type="PackedScene" uid="uid://cvnl210i6nydl" path="res://scenes/grappling_demo/grappling_demo.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://di3m8og7wdtw7" path="res://scenes/footstep_movement_demo/footstep_movement_demo.tscn" id="15_3b6cs"] +[ext_resource type="Texture2D" uid="uid://dwryn8mjdj86m" path="res://scenes/footstep_movement_demo/footstep movement demo.png" id="15_k6bhw"] +[ext_resource type="Texture2D" uid="uid://bwkm0t73t80cs" path="res://scenes/grappling_demo/grappling_demo.png" id="16"] +[ext_resource type="Texture2D" uid="uid://bv0r0klv2u7tl" path="res://scenes/interactables_demo/interactables_demo.png" id="17"] +[ext_resource type="PackedScene" uid="uid://hv3is88xy8k4" path="res://scenes/interactables_demo/interactables_demo.tscn" id="18"] +[ext_resource type="PackedScene" uid="uid://deq6satll2p5x" path="res://scenes/pointer_demo/pointer_demo.tscn" id="19"] +[ext_resource type="Texture2D" uid="uid://bh5j2q7vpmr0b" path="res://scenes/pointer_demo/pointer_demo.png" id="20"] +[ext_resource type="PackedScene" uid="uid://j53121pbwpsw" path="res://scenes/pickable_demo/pickable_demo.tscn" id="21"] +[ext_resource type="Texture2D" uid="uid://ny4n43p3e3du" path="res://scenes/pickable_demo/pickable_demo.png" id="22"] +[ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="23_pr05t"] +[ext_resource type="PackedScene" uid="uid://b4fy6i3e7s08u" path="res://scenes/poke_demo/poke_demo.tscn" id="24_qtcxq"] +[ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="25_2b81d"] +[ext_resource type="Texture2D" uid="uid://bbe7o7pdq38m2" path="res://scenes/poke_demo/poke_demo.png" id="25_rg3rn"] +[ext_resource type="PackedScene" uid="uid://3bsyhd7ehoa1" path="res://scenes/main_menu/objects/settings_ui.tscn" id="26_0uyxa"] +[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="26_id1x7"] +[ext_resource type="PackedScene" path="res://scenes/sprinting_demo/sprinting_demo.tscn" id="28_u37cd"] +[ext_resource type="Texture2D" uid="uid://v4807nasx1dc" path="res://scenes/sprinting_demo/sprinting_demo.png" id="29_h1jn0"] +[ext_resource type="PackedScene" uid="uid://dyfx10nwe0oil" path="res://scenes/origin_gravity_demo/origin_gravity_demo.tscn" id="31_18nh2"] +[ext_resource type="Texture2D" uid="uid://cr1l4g7btdyht" path="res://scenes/origin_gravity_demo/origin_gravity_demo.png" id="32_c4n1q"] +[ext_resource type="PackedScene" uid="uid://b5o25nkvyv8ho" path="res://scenes/sphere_world_demo/sphere_world_demo.tscn" id="33_ews5s"] +[ext_resource type="Texture2D" uid="uid://dhd30j0xpcxoi" path="res://scenes/sphere_world_demo/sphere_world_demo.png" id="34_xw8ig"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_b71j7"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ex44k"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_umfkq"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=4] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_wrckm"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=5] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_856ri"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L" ] - -[sub_resource type="AnimationNodeBlendTree" id=6] -graph_offset = Vector2( -798.981, 58.67 ) -nodes/ClosedHand1/node = SubResource( 1 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 2 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 3 ) -nodes/Grip/position = Vector2( 0, 20 ) -nodes/OpenHand/node = SubResource( 4 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 5 ) -nodes/Trigger/position = Vector2( -360, 20 ) -node_connections = [ "output", 0, "Grip", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2" ] - -[sub_resource type="AnimationNodeAnimation" id=7] -animation = "Grip" - -[sub_resource type="AnimationNodeAnimation" id=8] -animation = "Grip" - -[sub_resource type="AnimationNodeBlend2" id=9] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_1xdjf"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_b71j7") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ex44k") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_umfkq") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_wrckm") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_856ri") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_wbi3t"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_se43b"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_5cf5w"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=10] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qxqxf"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=11] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vkcg5"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R" ] - -[sub_resource type="AnimationNodeBlendTree" id=12] -graph_offset = Vector2( -753.664, -85.6991 ) -nodes/ClosedHand1/node = SubResource( 7 ) -nodes/ClosedHand1/position = Vector2( -600, 300 ) -nodes/ClosedHand2/node = SubResource( 8 ) -nodes/ClosedHand2/position = Vector2( -360, 300 ) -nodes/Grip/node = SubResource( 9 ) -nodes/Grip/position = Vector2( 0, 40 ) -nodes/OpenHand/node = SubResource( 10 ) -nodes/OpenHand/position = Vector2( -600, 100 ) -nodes/Trigger/node = SubResource( 11 ) -nodes/Trigger/position = Vector2( -360, 40 ) -node_connections = [ "output", 0, "Grip", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2" ] - -[node name="MainMenuLevel" instance=ExtResource( 1 )] -script = ExtResource( 23 ) - -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 3 )] - -[node name="BoneAttachment" type="BoneAttachment" parent="ARVROrigin/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton" index="1"] -transform = Transform( 0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.0399019, 0.0402828, -0.150096 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_3ea7w"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_wbi3t") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_se43b") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_5cf5w") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_qxqxf") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_vkcg5") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[node name="MainMenuLevel" instance=ExtResource("1")] +script = ExtResource("2_taoax") + +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("23_pr05t")] + +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096) bone_name = "Index_Tip_L" +bone_idx = 9 -[node name="Poke" parent="ARVROrigin/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton/BoneAttachment" index="0" instance=ExtResource( 27 )] -transform = Transform( 1, -1.63913e-07, 2.98023e-08, 8.9407e-08, 1, 0, -2.98023e-08, -2.98023e-08, 1, 0, 0, 0 ) +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_eoo0b")] +transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="AnimationTree" parent="ARVROrigin/LeftHand/LeftHand" index="1"] -tree_root = SubResource( 6 ) +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_1xdjf") -[node name="FunctionPoseDetector" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 29 )] +[node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5_xgcrx")] -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 6 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("6")] max_speed = 3.0 strafe = true -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 2 )] -hand_material_override = ExtResource( 28 ) - -[node name="mesh_Hand_low_R" parent="ARVROrigin/RightHand/RightHand/Hand_low_R/Armature/Skeleton" index="0"] -material_override = ExtResource( 28 ) - -[node name="BoneAttachment" type="BoneAttachment" parent="ARVROrigin/RightHand/RightHand/Hand_low_R/Armature/Skeleton" index="1"] -transform = Transform( 0.540829, -0.840813, 0.0231736, 0.0826267, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113023, -0.0399019, 0.0402828, -0.150096 ) +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("25_2b81d")] + +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="mesh_Hand_low_R" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D" index="0"] +surface_material_override/0 = ExtResource("26_id1x7") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096) bone_name = "Index_Tip_R" +bone_idx = 9 -[node name="Poke" parent="ARVROrigin/RightHand/RightHand/Hand_low_R/Armature/Skeleton/BoneAttachment" index="0" instance=ExtResource( 27 )] -transform = Transform( 1, -1.63913e-07, 2.98023e-08, 8.9407e-08, 1, 0, -2.98023e-08, -2.98023e-08, 1, 0, 0, 0 ) +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_eoo0b")] +transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="AnimationTree" parent="ARVROrigin/RightHand/RightHand" index="1"] -tree_root = SubResource( 12 ) +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_3ea7w") -[node name="FunctionPoseDetector" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 29 )] +[node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5_xgcrx")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 6 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("6")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 5 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("5")] -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 8 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("8")] +top_level = true +body_forward_mix = 0.75 -[node name="BasicMap" parent="." index="1" instance=ExtResource( 4 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("4")] -[node name="Demos" type="Spatial" parent="." index="2"] +[node name="Demos" type="Node3D" parent="." index="2"] -[node name="ToBasicMovementDemo" parent="Demos" index="0" instance=ExtResource( 9 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10 ) +[node name="ToBasicMovementDemo" parent="Demos" index="0" instance=ExtResource("9")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10) scene_base = NodePath("../..") -scene = ExtResource( 7 ) -title = ExtResource( 10 ) +scene = ExtResource("7") +title = ExtResource("10") -[node name="ToFootstepMovementDemo" parent="Demos" index="1" instance=ExtResource( 9 )] -transform = Transform( 0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, -5, 0, -8.66025 ) +[node name="ToFootstepDemo" parent="Demos" index="1" instance=ExtResource("9")] +transform = Transform3D(0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, -5, 0, -8.66025) scene_base = NodePath("../..") -scene = ExtResource( 37 ) -title = ExtResource( 36 ) +scene = ExtResource("15_3b6cs") +title = ExtResource("15_k6bhw") -[node name="ToTeleportDemo" parent="Demos" index="2" instance=ExtResource( 9 )] -transform = Transform( 0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, 0.5, -8.66025, 0, -5 ) +[node name="ToTeleportDemo" parent="Demos" index="2" instance=ExtResource("9")] +transform = Transform3D(0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, 0.5, -8.66025, 0, -5) scene_base = NodePath("../..") -scene = ExtResource( 11 ) -title = ExtResource( 12 ) +scene = ExtResource("11") +title = ExtResource("12") -[node name="ToClimbingGlidingDemo" parent="Demos" index="3" instance=ExtResource( 9 )] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -10, 0, 4.37114e-07 ) +[node name="ToClimbingGlidingDemo" parent="Demos" index="3" instance=ExtResource("9")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -10, 0, 4.37114e-07) scene_base = NodePath("../..") -scene = ExtResource( 14 ) -title = ExtResource( 13 ) +scene = ExtResource("14") +title = ExtResource("13") -[node name="ToGrapplingDemo" parent="Demos" index="4" instance=ExtResource( 9 )] -transform = Transform( -0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, -0.5, -8.66025, 0, 5 ) +[node name="ToGrapplingDemo" parent="Demos" index="4" instance=ExtResource("9")] +transform = Transform3D(-0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, -0.5, -8.66025, 0, 5) scene_base = NodePath("../..") -scene = ExtResource( 15 ) -title = ExtResource( 16 ) +scene = ExtResource("15") +title = ExtResource("16") -[node name="ToInteractablesDemo" parent="Demos" index="5" instance=ExtResource( 9 )] -transform = Transform( -0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, -0.866025, -5, 0, 8.66025 ) +[node name="ToInteractablesDemo" parent="Demos" index="5" instance=ExtResource("9")] +transform = Transform3D(-0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, -0.866025, -5, 0, 8.66025) scene_base = NodePath("../..") -scene = ExtResource( 18 ) -title = ExtResource( 17 ) +scene = ExtResource("18") +title = ExtResource("17") -[node name="ToPointerDemo" parent="Demos" index="6" instance=ExtResource( 9 )] -transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 8.74228e-07, 0, 10 ) +[node name="ToPointerDemo" parent="Demos" index="6" instance=ExtResource("9")] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 8.74228e-07, 0, 10) scene_base = NodePath("../..") -scene = ExtResource( 19 ) -title = ExtResource( 20 ) +scene = ExtResource("19") +title = ExtResource("20") -[node name="ToPickableDemo" parent="Demos" index="7" instance=ExtResource( 9 )] -transform = Transform( -0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, 5, 0, 8.66025 ) +[node name="ToPickableDemo" parent="Demos" index="7" instance=ExtResource("9")] +transform = Transform3D(-0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, 5, 0, 8.66025) scene_base = NodePath("../..") -scene = ExtResource( 21 ) -title = ExtResource( 22 ) +scene = ExtResource("21") +title = ExtResource("22") -[node name="ToPokeDemo" parent="Demos" index="8" instance=ExtResource( 9 )] -transform = Transform( -0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, -0.5, 8.66025, 0, 5 ) +[node name="ToPokeDemo" parent="Demos" index="8" instance=ExtResource("9")] +transform = Transform3D(-0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, -0.5, 8.66025, 0, 5) scene_base = NodePath("../..") -scene = ExtResource( 24 ) -title = ExtResource( 25 ) +scene = ExtResource("24_qtcxq") +title = ExtResource("25_rg3rn") -[node name="ToSprintingDemo" parent="Demos" index="9" instance=ExtResource( 9 )] -transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 10, 0, -1.19249e-07 ) +[node name="ToSprintDemo" parent="Demos" index="9" instance=ExtResource("9")] +transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 10, 0, -1.19249e-07) scene_base = NodePath("../..") -scene = ExtResource( 30 ) -title = ExtResource( 31 ) +scene = ExtResource("28_u37cd") +title = ExtResource("29_h1jn0") -[node name="ToOriginGravityDemo" parent="Demos" index="10" instance=ExtResource( 9 )] -transform = Transform( 0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, 0.5, 8.66025, 0, -5 ) +[node name="ToOriginGravityDemo" parent="Demos" index="10" instance=ExtResource("9")] +transform = Transform3D(0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, 0.5, 8.66025, 0, -5) scene_base = NodePath("../..") -scene = ExtResource( 33 ) -title = ExtResource( 32 ) +scene = ExtResource("31_18nh2") +title = ExtResource("32_c4n1q") -[node name="ToSphereWorldDemo" parent="Demos" index="11" instance=ExtResource( 9 )] -transform = Transform( 0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, 5, 0, -8.66025 ) +[node name="ToSphereWorldDemo" parent="Demos" index="11" instance=ExtResource("9")] +transform = Transform3D(0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, 5, 0, -8.66025) scene_base = NodePath("../..") -scene = ExtResource( 35 ) -title = ExtResource( 34 ) +scene = ExtResource("33_ews5s") +title = ExtResource("34_xw8ig") + +[node name="SettingsUI" parent="." index="3" instance=ExtResource("26_0uyxa")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.5) +camera = NodePath("../XROrigin3D/XRCamera3D") -[node name="SettingsUI" parent="." index="3" instance=ExtResource( 26 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.5 ) -camera = NodePath("../ARVROrigin/ARVRCamera") +[connection signal="child_entered_tree" from="Demos" to="." method="_on_Demos_child_entered_tree"] +[connection signal="child_exiting_tree" from="Demos" to="." method="_on_Demos_child_exiting_tree"] -[editable path="ARVROrigin/LeftHand/LeftHand"] -[editable path="ARVROrigin/LeftHand/LeftHand/Hand_low_L"] -[editable path="ARVROrigin/RightHand/RightHand"] -[editable path="ARVROrigin/RightHand/RightHand/Hand_low_R"] +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_low_R"] diff --git a/scenes/main_menu/objects/settings_ui.gd b/scenes/main_menu/objects/settings_ui.gd index 193e2700..3d2ac5a2 100644 --- a/scenes/main_menu/objects/settings_ui.gd +++ b/scenes/main_menu/objects/settings_ui.gd @@ -1,6 +1,6 @@ -extends Spatial +extends Node3D -export (NodePath) var camera +@export_node_path("XRCamera3D") var camera : NodePath # Called when the node enters the scene tree for the first time. func _ready(): diff --git a/scenes/main_menu/objects/settings_ui.tscn b/scenes/main_menu/objects/settings_ui.tscn index cac7cf33..70b0c29b 100644 --- a/scenes/main_menu/objects/settings_ui.tscn +++ b/scenes/main_menu/objects/settings_ui.tscn @@ -1,55 +1,49 @@ -[gd_scene load_steps=10 format=2] - -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=1] -[ext_resource path="res://scenes/main_menu/objects/settings_ui_content.tscn" type="PackedScene" id=2] -[ext_resource path="res://scenes/main_menu/objects/settings_ui.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" type="Resource" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" type="Resource" id=6] - -[sub_resource type="CubeMesh" id=1] -size = Vector3( 0.65, 0.525, 0.02 ) - -[sub_resource type="SpatialMaterial" id=2] -albedo_color = Color( 0.203922, 0.203922, 0.203922, 1 ) -metallic = 0.35 -roughness = 0.52 - -[sub_resource type="BoxShape" id=3] -extents = Vector3( 0.325, 0.1, 0.25 ) - -[node name="SettingsUI" type="Spatial"] -script = ExtResource( 3 ) - -[node name="Screen" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 1.3, 0 ) -mesh = SubResource( 1 ) -material/0 = SubResource( 2 ) - -[node name="Viewport2Din3D" parent="Screen" instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.015 ) -screen_size = Vector2( 0.625, 0.5 ) -viewport_size = Vector2( 250, 200 ) -scene = ExtResource( 2 ) - -[node name="CSGCylinder" type="CSGCylinder" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0 ) +[gd_scene load_steps=10 format=3 uid="uid://3bsyhd7ehoa1"] + +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://hpxufsmhvnq0" path="res://scenes/main_menu/objects/settings_ui_content.tscn" id="2"] +[ext_resource type="Material" uid="uid://bhj8fob2pxx4l" path="res://scenes/main_menu/objects/settings_ui_material.tres" id="2_jyjdc"] +[ext_resource type="Script" path="res://scenes/main_menu/objects/settings_ui.gd" id="3"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="5_arb8x"] +[ext_resource type="Resource" uid="uid://ciw0f7mg4ai0k" path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" id="6_c66hl"] +[ext_resource type="Resource" uid="uid://bhvrpfo4ecbub" path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" id="7_tfhna"] + +[sub_resource type="BoxMesh" id="1"] +size = Vector3(0.65, 0.525, 0.02) + +[sub_resource type="BoxShape3D" id="BoxShape3D_7u64y"] +size = Vector3(0.65, 0.2, 0.5) + +[node name="SettingsUI" type="Node3D"] +script = ExtResource("3") + +[node name="Screen" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 1.3, 0) +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2_jyjdc") + +[node name="Viewport2Din3D" parent="Screen" instance=ExtResource("1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.015) +screen_size = Vector2(0.625, 0.5) +viewport_size = Vector2(250, 200) +scene = ExtResource("2") + +[node name="CSGCylinder" type="CSGCylinder3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0) radius = 0.05 height = 1.8 -material = SubResource( 2 ) +material = ExtResource("2_jyjdc") -[node name="CSGBox" type="CSGBox" parent="CSGCylinder"] -transform = Transform( 1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0.761732, 0 ) +[node name="CSGBox" type="CSGBox3D" parent="CSGCylinder"] +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0.761732, 0) operation = 2 -width = 0.5 -height = 1.0 -depth = 0.5 - -[node name="HandPoseArea" parent="." instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3, 0 ) -left_pose = ExtResource( 5 ) -right_pose = ExtResource( 6 ) - -[node name="CollisionShape" type="CollisionShape" parent="HandPoseArea"] -transform = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0 ) -shape = SubResource( 3 ) +size = Vector3(0.5, 1, 0.5) + +[node name="HandPoseArea" parent="." instance=ExtResource("5_arb8x")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3, 0) +left_pose = ExtResource("6_c66hl") +right_pose = ExtResource("7_tfhna") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="HandPoseArea"] +transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0) +shape = SubResource("BoxShape3D_7u64y") diff --git a/scenes/main_menu/objects/settings_ui_content.tscn b/scenes/main_menu/objects/settings_ui_content.tscn index 906c72cf..d2f0a0e2 100644 --- a/scenes/main_menu/objects/settings_ui_content.tscn +++ b/scenes/main_menu/objects/settings_ui_content.tscn @@ -1,21 +1,25 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://hpxufsmhvnq0"] -[ext_resource path="res://addons/godot-xr-tools/user_settings/user_settings_ui.tscn" type="PackedScene" id=1] +[ext_resource type="PackedScene" uid="uid://ytsxet2k47lj" path="res://addons/godot-xr-tools/user_settings/user_settings_ui.tscn" id="1"] [node name="SettingsUIContent" type="VBoxContainer"] +offset_right = 250.0 +offset_bottom = 252.0 +size_flags_horizontal = 0 [node name="Header" type="HBoxContainer" parent="."] -margin_right = 250.0 -margin_bottom = 48.0 +offset_right = 250.0 +offset_bottom = 60.0 [node name="Label" type="Label" parent="Header"] -margin_right = 250.0 -margin_bottom = 48.0 -rect_min_size = Vector2( 250, 0 ) +offset_right = 250.0 +offset_bottom = 60.0 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 12 text = "Welcome to Godot XR Tools. Use the joysticks on your controllers to move around." -autowrap = true +autowrap_mode = 2 -[node name="UserSettingsUI" parent="." instance=ExtResource( 1 )] -margin_top = 52.0 -margin_right = 250.0 -margin_bottom = 252.0 +[node name="UserSettingsUI" parent="." instance=ExtResource("1")] +offset_top = 64.0 +offset_right = 250.0 +offset_bottom = 252.0 diff --git a/scenes/main_menu/objects/settings_ui_material.tres b/scenes/main_menu/objects/settings_ui_material.tres new file mode 100644 index 00000000..9dec2147 --- /dev/null +++ b/scenes/main_menu/objects/settings_ui_material.tres @@ -0,0 +1,6 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://bhj8fob2pxx4l"] + +[resource] +albedo_color = Color(0.203922, 0.203922, 0.203922, 1) +metallic = 0.35 +roughness = 0.52 diff --git a/scenes/main_menu/return to main menu.png.import b/scenes/main_menu/return to main menu.png.import index b6f36b24..f5f6ae5f 100644 --- a/scenes/main_menu/return to main menu.png.import +++ b/scenes/main_menu/return to main menu.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.s3tc.stex" -path.etc="res://.import/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.etc.stex" +type="CompressedTexture2D" +uid="uid://ckw6nliyayo6a" +path.s3tc="res://.godot/imported/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.s3tc.ctex" +path.etc2="res://.godot/imported/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/main_menu/return to main menu.png" -dest_files=[ "res://.import/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.s3tc.stex", "res://.import/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.etc.stex" ] +dest_files=["res://.godot/imported/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.s3tc.ctex", "res://.godot/imported/return to main menu.png-0b17f9c9827dd9221f334e41b38e1ecb.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/origin_gravity_demo/objects/instructions.tscn b/scenes/origin_gravity_demo/objects/instructions.tscn index 6b8438f5..c683f008 100644 --- a/scenes/origin_gravity_demo/objects/instructions.tscn +++ b/scenes/origin_gravity_demo/objects/instructions.tscn @@ -1,23 +1,23 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://cyohmj7wut3s8"] -[ext_resource path="res://scenes/origin_gravity_demo/objects/instructions_2d.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] +[ext_resource type="PackedScene" uid="uid://n6t8uyds2dft" path="res://scenes/origin_gravity_demo/objects/instructions_2d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] -[sub_resource type="CubeMesh" id=1] -material = ExtResource( 3 ) -size = Vector3( 4.2, 2.7, 0.1 ) +[sub_resource type="BoxMesh" id="1"] +material = ExtResource("3") +size = Vector3(4.2, 2.7, 0.1) -[node name="Instructions" type="Spatial"] +[node name="Instructions" type="Node3D"] -[node name="Viewport2Din3D" parent="." instance=ExtResource( 2 )] -screen_size = Vector2( 4, 2.5 ) -viewport_size = Vector2( 400, 250 ) +[node name="Viewport2Din3D" parent="." instance=ExtResource("2")] +screen_size = Vector2(4, 2.5) +viewport_size = Vector2(400, 250) unshaded = true -scene = ExtResource( 1 ) +scene = ExtResource("1") update_mode = 0 collision_layer = 0 -[node name="MeshInstance" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1 ) -mesh = SubResource( 1 ) +[node name="MeshInstance" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1) +mesh = SubResource("1") diff --git a/scenes/origin_gravity_demo/objects/instructions_2d.tscn b/scenes/origin_gravity_demo/objects/instructions_2d.tscn index 6cc9faad..a708868f 100644 --- a/scenes/origin_gravity_demo/objects/instructions_2d.tscn +++ b/scenes/origin_gravity_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://n6t8uyds2dft"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Origin Gravity Demo This scene demonstrates walking on non-flat surfaces. diff --git a/scenes/origin_gravity_demo/objects/pill_orient.tscn b/scenes/origin_gravity_demo/objects/pill_orient.tscn index 0421ce05..2578d9d8 100644 --- a/scenes/origin_gravity_demo/objects/pill_orient.tscn +++ b/scenes/origin_gravity_demo/objects/pill_orient.tscn @@ -1,38 +1,44 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://dk3jcnbypkiml"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=2] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="2"] -[sub_resource type="CapsuleMesh" id=4] +[sub_resource type="CapsuleMesh" id="4"] +material = ExtResource("2") radius = 7.0 -mid_height = 7.0 +height = 21.0 radial_segments = 32 -[sub_resource type="CapsuleShape" id=5] +[sub_resource type="CapsuleShape3D" id="5"] radius = 7.0 -height = 7.0 +height = 21.0 -[sub_resource type="CapsuleShape" id=9] +[sub_resource type="CapsuleShape3D" id="9"] radius = 9.0 -height = 7.0 +height = 25.0 -[node name="PillOrient" type="Spatial"] +[node name="PillOrient" type="Node3D"] -[node name="Body" type="StaticBody" parent="."] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0 ) +[node name="Body" type="StaticBody3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) collision_layer = 8 collision_mask = 0 -[node name="MeshInstance" type="MeshInstance" parent="Body"] -mesh = SubResource( 4 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance" type="MeshInstance3D" parent="Body"] +transform = Transform3D(1, -4.37114e-08, 4.37114e-08, 4.37114e-08, -4.37114e-08, -1, 4.37114e-08, 1, -4.37114e-08, 0, 0, 0) +mesh = SubResource("4") -[node name="CollisionShape" type="CollisionShape" parent="Body"] -shape = SubResource( 5 ) +[node name="CollisionShape" type="CollisionShape3D" parent="Body"] +transform = Transform3D(1, -4.37114e-08, 4.37114e-08, 4.37114e-08, -4.37114e-08, -1, 4.37114e-08, 1, -4.37114e-08, 0, 0, 0) +shape = SubResource("5") -[node name="Gravity" type="Area" parent="."] -space_override = 3 +[node name="Gravity" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 524292 +gravity_space_override = 3 gravity_point = true +gravity_point_center = Vector3(0, 0, 0) +gravity_direction = Vector3(0, 0, 0) -[node name="CollisionShape" type="CollisionShape" parent="Gravity"] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0 ) -shape = SubResource( 9 ) +[node name="CollisionShape" type="CollisionShape3D" parent="Gravity"] +transform = Transform3D(1.91069e-15, 1, 4.37114e-08, 4.37114e-08, -4.37114e-08, 1, 1, 0, -4.37114e-08, 0, 0, 0) +shape = SubResource("9") diff --git a/scenes/origin_gravity_demo/objects/sphere_orient.tscn b/scenes/origin_gravity_demo/objects/sphere_orient.tscn index b80de5d0..5fbe027a 100644 --- a/scenes/origin_gravity_demo/objects/sphere_orient.tscn +++ b/scenes/origin_gravity_demo/objects/sphere_orient.tscn @@ -1,34 +1,38 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://bnu45wudmhdse"] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="2"] -[sub_resource type="SphereMesh" id=2] +[sub_resource type="SphereMesh" id="2"] +material = ExtResource("2") radius = 10.0 height = 20.0 -[sub_resource type="SphereShape" id=3] +[sub_resource type="SphereShape3D" id="3"] radius = 10.0 -[sub_resource type="SphereShape" id=8] +[sub_resource type="SphereShape3D" id="8"] radius = 15.0 -[node name="SphereOrient" type="Spatial"] +[node name="SphereOrient" type="Node3D"] -[node name="Body" type="StaticBody" parent="."] +[node name="Body" type="StaticBody3D" parent="."] collision_layer = 8 collision_mask = 0 -[node name="MeshInstance" type="MeshInstance" parent="Body"] -mesh = SubResource( 2 ) +[node name="MeshInstance" type="MeshInstance3D" parent="Body"] +mesh = SubResource("2") skeleton = NodePath("../../..") -material/0 = ExtResource( 2 ) -[node name="CollisionShape" type="CollisionShape" parent="Body"] -shape = SubResource( 3 ) +[node name="CollisionShape" type="CollisionShape3D" parent="Body"] +shape = SubResource("3") -[node name="Gravity" type="Area" parent="."] -space_override = 3 +[node name="Gravity" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 524292 +gravity_space_override = 3 gravity_point = true +gravity_point_center = Vector3(0, 0, 0) +gravity_direction = Vector3(0, 0, 0) -[node name="CollisionShape" type="CollisionShape" parent="Gravity"] -shape = SubResource( 8 ) +[node name="CollisionShape" type="CollisionShape3D" parent="Gravity"] +shape = SubResource("8") diff --git a/scenes/origin_gravity_demo/origin_gravity_demo.png.import b/scenes/origin_gravity_demo/origin_gravity_demo.png.import index 38e96cbd..962000e7 100644 --- a/scenes/origin_gravity_demo/origin_gravity_demo.png.import +++ b/scenes/origin_gravity_demo/origin_gravity_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.s3tc.stex" -path.etc="res://.import/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.etc.stex" +type="CompressedTexture2D" +uid="uid://cr1l4g7btdyht" +path.s3tc="res://.godot/imported/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.s3tc.ctex" +path.etc2="res://.godot/imported/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/origin_gravity_demo/origin_gravity_demo.png" -dest_files=[ "res://.import/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.s3tc.stex", "res://.import/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.etc.stex" ] +dest_files=["res://.godot/imported/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.s3tc.ctex", "res://.godot/imported/origin_gravity_demo.png-d9ea68a2fdb85934db7bb07faa15248a.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/origin_gravity_demo/origin_gravity_demo.tscn b/scenes/origin_gravity_demo/origin_gravity_demo.tscn index ef572244..46f7a01e 100644 --- a/scenes/origin_gravity_demo/origin_gravity_demo.tscn +++ b/scenes/origin_gravity_demo/origin_gravity_demo.tscn @@ -1,112 +1,110 @@ -[gd_scene load_steps=21 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_wall_walk.tscn" type="PackedScene" id=8] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=9] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=10] -[ext_resource path="res://scenes/origin_gravity_demo/objects/pill_orient.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/origin_gravity_demo/objects/sphere_orient.tscn" type="PackedScene" id=12] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=13] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=14] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" type="PackedScene" id=15] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_flight.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/origin_gravity_demo/objects/instructions.tscn" type="PackedScene" id=19] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" type="PackedScene" id=21] - -[sub_resource type="Curve3D" id=6] +[gd_scene load_steps=22 format=3 uid="uid://dyfx10nwe0oil"] + +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="2"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="7"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/functions/movement_wall_walk.tscn" id="8"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="9"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://dk3jcnbypkiml" path="res://scenes/origin_gravity_demo/objects/pill_orient.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://bnu45wudmhdse" path="res://scenes/origin_gravity_demo/objects/sphere_orient.tscn" id="12"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/player/player_body.gd" id="12_b8x5t"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="14"] +[ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://kyhaogt0a4q8" path="res://addons/godot-xr-tools/functions/movement_flight.tscn" id="18"] +[ext_resource type="PackedScene" path="res://scenes/origin_gravity_demo/objects/instructions.tscn" id="19"] +[ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="21"] + +[sub_resource type="Curve3D" id="6"] _data = { -"points": PoolVector3Array( -4.24937, -1.06234, 0, 4.24937, 1.06234, 0, -28.8455, 28.3772, 22.046, -4.1528, 0.820904, 0, 4.1528, -0.820904, 0, -14.1804, 30.4904, 21.7814, -2.83784, 2.60267, 0.0372009, 2.83784, -2.60267, -0.0372009, -4.79844, 27.0269, 22.1809, 1.6403, 2.9682, -0.0173683, -1.6403, -2.9682, 0.0173683, -2.87687, 17.8878, 23.2453, 0.57946, 4.05622, 0, -0.57946, -4.05622, 0, -7.44255, 8.17148, 23.1395, -2.70415, 1.11063, 0, 2.70415, -1.11063, 0, -0.888668, 1.09893, 23.2599, -2.3209, -0.153747, -0.449579, 2.3209, 0.153747, 0.449579, 6.55866, -1.48348, 25.7184 ), -"tilts": PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ) +"points": PackedVector3Array(-4.24937, -1.06234, 0, 4.24937, 1.06234, 0, -28.8455, 28.3772, 22.046, -4.1528, 0.820904, 0, 4.1528, -0.820904, 0, -14.1804, 30.4904, 21.7814, -2.83784, 2.60267, 0.0372009, 2.83784, -2.60267, -0.0372009, -4.79844, 27.0269, 22.1809, 1.6403, 2.9682, -0.0173683, -1.6403, -2.9682, 0.0173683, -2.87687, 17.8878, 23.2453, 0.57946, 4.05622, 0, -0.57946, -4.05622, 0, -7.44255, 8.17148, 23.1395, -2.70415, 1.11063, 0, 2.70415, -1.11063, 0, -0.888668, 1.09893, 23.2599, -2.3209, -0.153747, -0.449579, 2.3209, 0.153747, 0.449579, 6.55866, -1.48348, 25.7184), +"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0) } +point_count = 7 -[sub_resource type="Curve3D" id=1] +[sub_resource type="Curve3D" id="1"] bake_interval = 0.3 _data = { -"points": PoolVector3Array( -0.71487, -1.87416, 1.71397, 0.71487, 1.87416, -1.71397, -21.7835, 21.1047, 22.9351, 1.79321, 2.0844, 5.63986, -1.79321, -2.0844, -5.63986, -17.503, 22.8378, 3.86977, 1.63235, 1.43539, 4.76624, -1.63235, -1.43539, -4.76624, -21.1288, 16.2403, -8.78015, -6.09683, 0.913348, 3.4931, 6.09683, -0.913348, -3.4931, -16.9968, 15.3497, -24.9826, -1.11305, -0.695772, 2.12971, 1.11305, 0.695772, -2.12971, -1.5803, 19.8361, -28.6373 ), -"tilts": PoolRealArray( 0, 0, 0, 0, 0 ) +"points": PackedVector3Array(-0.71487, -1.87416, 1.71397, 0.71487, 1.87416, -1.71397, -21.7835, 21.1047, 22.9351, 1.79321, 2.0844, 5.63986, -1.79321, -2.0844, -5.63986, -17.503, 22.8378, 3.86977, 1.63235, 1.43539, 4.76624, -1.63235, -1.43539, -4.76624, -21.1288, 16.2403, -8.78015, -6.09683, 0.913348, 3.4931, 6.09683, -0.913348, -3.4931, -16.9968, 15.3497, -24.9826, -1.11305, -0.695772, 2.12971, 1.11305, 0.695772, -2.12971, -1.5803, 19.8361, -28.6373), +"tilts": PackedFloat32Array(0, 0, 0, 0, 0) } +point_count = 5 -[node name="OriginGravityDemo" instance=ExtResource( 1 )] +[node name="OriginGravityDemo" instance=ExtResource("1")] -[node name="ARVROrigin" parent="." index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 36 ) +[node name="XROrigin3D" parent="." index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 36) -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 13 )] +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("13")] -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 7 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("7")] max_speed = 3.0 strafe = true -[node name="MovementJump" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 5 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("5")] +jump_button_action = "ax_button" -[node name="MovementCrouch" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 21 )] -crouch_button = 1 +[node name="MovementCrouch" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("21")] +crouch_button_action = "by_button" -[node name="MovementSprint" parent="ARVROrigin/LeftHand" index="4" instance=ExtResource( 15 )] +[node name="MovementSprint" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("15")] -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 14 )] +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("14")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 7 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("7")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 6 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("6")] -[node name="MovementJump" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 5 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("5")] +jump_button_action = "ax_button" -[node name="MovementSprint" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 15 )] +[node name="MovementSprint" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("15")] controller = 1 -[node name="MovementFlight" parent="ARVROrigin" index="3" instance=ExtResource( 18 )] +[node name="MovementFlight" parent="XROrigin3D" index="3" instance=ExtResource("18")] -[node name="MovementWallWalk" parent="ARVROrigin" index="4" instance=ExtResource( 8 )] -follow_mask = 8 +[node name="MovementWallWalk" parent="XROrigin3D" index="4" instance=ExtResource("8")] -[node name="PlayerBody" parent="ARVROrigin" index="5" instance=ExtResource( 4 )] +[node name="PlayerBody" type="Node" parent="XROrigin3D" index="5" instance=ExtResource("4")] +script = ExtResource("12_b8x5t") -[node name="BasicMap" parent="." index="1" instance=ExtResource( 2 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("2")] -[node name="Teleport" parent="." index="2" instance=ExtResource( 10 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 44 ) +[node name="Teleport" parent="." index="2" instance=ExtResource("10")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 44) scene_base = NodePath("..") -title = ExtResource( 9 ) +title = ExtResource("9") -[node name="Teleport2" parent="." index="3" instance=ExtResource( 10 )] -transform = Transform( -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 10.4, 19, -33 ) +[node name="Teleport2" parent="." index="3" instance=ExtResource("10")] +transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 10.4, 19, -33) scene_base = NodePath("..") -title = ExtResource( 9 ) +title = ExtResource("9") -[node name="Instructions" parent="." index="4" instance=ExtResource( 19 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 5, 29 ) +[node name="Instructions" parent="." index="4" instance=ExtResource("19")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 5, 29) -[node name="SphereOrient" parent="." index="5" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 20, 22 ) +[node name="SphereOrient" parent="." index="5" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 20, 22) -[node name="PillOrient" parent="." index="6" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 19, -33 ) +[node name="PillOrient" parent="." index="6" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 19, -33) -[node name="Walkway1" type="Spatial" parent="." index="7"] +[node name="Walkway1" type="Node3D" parent="." index="7"] -[node name="Path" type="Path" parent="Walkway1" index="0"] -curve = SubResource( 6 ) +[node name="Path" type="Path3D" parent="Walkway1" index="0"] +curve = SubResource("6") -[node name="Body" type="CSGPolygon" parent="Walkway1" index="1"] +[node name="Body" type="CSGPolygon3D" parent="Walkway1" index="1"] use_collision = true collision_layer = 8 collision_mask = 0 -polygon = PoolVector2Array( -4, 0, -3.7, 0.7, -3, 1, 3, 1, 3.7, 0.7, 4, 0, 3.7, -0.7, 3, -1, -3, -1, -3.7, -0.7 ) +polygon = PackedVector2Array(-4, 0, -3.7, 0.7, -3, 1, 3, 1, 3.7, 0.7, 4, 0, 3.7, -0.7, 3, -1, -3, -1, -3.7, -0.7) mode = 2 path_node = NodePath("../Path") path_interval_type = 0 @@ -117,18 +115,18 @@ path_local = false path_continuous_u = true path_u_distance = 1.0 path_joined = false -material = ExtResource( 3 ) +material = ExtResource("3") -[node name="Walkway2" type="Spatial" parent="." index="8"] +[node name="Walkway2" type="Node3D" parent="." index="8"] -[node name="Path" type="Path" parent="Walkway2" index="0"] -curve = SubResource( 1 ) +[node name="Path" type="Path3D" parent="Walkway2" index="0"] +curve = SubResource("1") -[node name="Body" type="CSGPolygon" parent="Walkway2" index="1"] +[node name="Body" type="CSGPolygon3D" parent="Walkway2" index="1"] use_collision = true collision_layer = 8 collision_mask = 0 -polygon = PoolVector2Array( 0, -4, 0.7, -3.7, 1, -3, 1, 3, 0.7, 3.7, 0, 4, -0.7, 3.7, -1, 3, -1, -3, -0.7, -3.7 ) +polygon = PackedVector2Array(0, -4, 0.7, -3.7, 1, -3, 1, 3, 0.7, 3.7, 0, 4, -0.7, 3.7, -1, 3, -1, -3, -0.7, -3.7) mode = 2 path_node = NodePath("../Path") path_interval_type = 0 @@ -139,4 +137,4 @@ path_local = false path_continuous_u = true path_u_distance = 1.0 path_joined = false -material = ExtResource( 3 ) +material = ExtResource("3") diff --git a/scenes/pickable_demo/objects/belt_snap_zone.tscn b/scenes/pickable_demo/objects/belt_snap_zone.tscn index b62a637f..a45bcfc3 100644 --- a/scenes/pickable_demo/objects/belt_snap_zone.tscn +++ b/scenes/pickable_demo/objects/belt_snap_zone.tscn @@ -1,25 +1,24 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://1mb16xioom74"] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/snap_zone.tscn" type="PackedScene" id=2] +[ext_resource type="PackedScene" uid="uid://ce7vysyvondf8" path="res://addons/godot-xr-tools/objects/snap_zone.tscn" id="1_uw6wt"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="2_ckbje"] -[sub_resource type="SpatialMaterial" id=1] -flags_transparent = true -params_cull_mode = 1 -albedo_color = Color( 0.0627451, 0.905882, 0.886275, 0.545098 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kcuek"] +transparency = 1 +cull_mode = 1 +albedo_color = Color(0.0627451, 0.905882, 0.886275, 0.545098) -[sub_resource type="SphereMesh" id=2] -material = SubResource( 1 ) +[sub_resource type="SphereMesh" id="SphereMesh_vvg7m"] +material = SubResource("StandardMaterial3D_kcuek") radius = 0.05 height = 0.1 radial_segments = 32 rings = 16 -[node name="BeltSnapZone" instance=ExtResource( 2 )] +[node name="BeltSnapZone" instance=ExtResource("1_uw6wt")] grab_distance = 0.1 -[node name="Sphere" type="MeshInstance" parent="." index="1"] -cast_shadow = 0 -mesh = SubResource( 2 ) +[node name="Sphere" type="MeshInstance3D" parent="." index="1"] +mesh = SubResource("SphereMesh_vvg7m") -[node name="HighlightRing" parent="." index="2" instance=ExtResource( 1 )] +[node name="HighlightRing" parent="." index="2" instance=ExtResource("2_ckbje")] diff --git a/scenes/pickable_demo/objects/grab_ball.tscn b/scenes/pickable_demo/objects/grab_ball.tscn index 1b9aa238..be5ee7f3 100644 --- a/scenes/pickable_demo/objects/grab_ball.tscn +++ b/scenes/pickable_demo/objects/grab_ball.tscn @@ -1,53 +1,54 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=10 format=3 uid="uid://clta811tt773x"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=2] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_visible.gd" type="Script" id=3] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" type="PackedScene" id=5] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="2"] +[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_qhto0"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/highlight/highlight_visible.gd" id="3"] +[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="3_0q4lf"] -[sub_resource type="SphereShape" id=2] +[sub_resource type="SphereShape3D" id="2"] margin = 0.01 radius = 0.2 -[sub_resource type="SphereMesh" id=3] +[sub_resource type="SphereMesh" id="3"] radius = 0.2 height = 0.4 radial_segments = 16 rings = 7 -[sub_resource type="SphereMesh" id=4] +[sub_resource type="SphereMesh" id="4"] flip_faces = true radius = 0.21 height = 0.42 radial_segments = 16 rings = 7 -[sub_resource type="SpatialMaterial" id=5] -flags_unshaded = true -albedo_color = Color( 1, 1, 0, 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qeoic"] +shading_mode = 0 +albedo_color = Color(1, 1, 0, 1) -[node name="GrabBall" instance=ExtResource( 1 )] +[node name="GrabBall" instance=ExtResource("1")] collision_mask = 720903 ranged_grab_method = 2 -[node name="GrabPointHandLeft" parent="." index="0" instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.19, 0.04, -0.065 ) +[node name="GrabPointHandLeft" parent="." index="0" instance=ExtResource("2_qhto0")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.19, 0.04, -0.065) -[node name="GrabPointHandRight" parent="." index="1" instance=ExtResource( 5 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.19, 0.04, -0.065 ) +[node name="GrabPointHandRight" parent="." index="1" instance=ExtResource("3_0q4lf")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.19, 0.04, -0.065) +visible = true -[node name="CollisionShape" parent="." index="2"] -shape = SubResource( 2 ) +[node name="CollisionShape3D" parent="." index="2"] +shape = SubResource("2") -[node name="MeshInstance" type="MeshInstance" parent="." index="3"] -mesh = SubResource( 3 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="3"] +mesh = SubResource("3") +surface_material_override/0 = ExtResource("2") -[node name="GrabHighlight" type="Spatial" parent="." index="4"] -script = ExtResource( 3 ) +[node name="GrabHighlight" type="Node3D" parent="." index="4"] +script = ExtResource("3") -[node name="MeshInstance" type="MeshInstance" parent="GrabHighlight" index="0"] -mesh = SubResource( 4 ) -skeleton = NodePath("../../MeshInstance") -material/0 = SubResource( 5 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="GrabHighlight" index="0"] +mesh = SubResource("4") +skeleton = NodePath("../../MeshInstance3D") +surface_material_override/0 = SubResource("StandardMaterial3D_qeoic") diff --git a/scenes/pickable_demo/objects/grab_cube.gd b/scenes/pickable_demo/objects/grab_cube.gd index b9da0386..a206462c 100644 --- a/scenes/pickable_demo/objects/grab_cube.gd +++ b/scenes/pickable_demo/objects/grab_cube.gd @@ -2,24 +2,27 @@ extends XRToolsPickable ## Alternate material when button pressed -export var alternate_material : Material +@export var alternate_material : Material # Original material var _original_material : Material # Current controller holding this object -var _current_controller : ARVRController +var _current_controller : XRController3D # Called when the node enters the scene tree for the first time. func _ready() -> void: + # Call the super + super() + # Get the original material - _original_material = $MeshInstance.get_active_material(0) + _original_material = $MeshInstance3D.get_active_material(0) # Listen for when this object is picked up or dropped - connect("picked_up", self, "_on_picked_up") - connect("dropped", self, "_on_dropped") + picked_up.connect(_on_picked_up) + dropped.connect(_on_dropped) # Called when this object is picked up @@ -27,34 +30,34 @@ func _on_picked_up(_pickable) -> void: # Listen for button events on the associated controller _current_controller = get_picked_up_by_controller() if _current_controller: - _current_controller.connect("button_pressed", self, "_on_controller_button_pressed") - _current_controller.connect("button_release", self, "_on_controller_button_released") + _current_controller.button_pressed.connect(_on_controller_button_pressed) + _current_controller.button_released.connect(_on_controller_button_released) # Called when this object is dropped func _on_dropped(_pickable) -> void: # Unsubscribe to controller button events when dropped if _current_controller: - _current_controller.disconnect("button_pressed", self, "_on_controller_button_pressed") - _current_controller.disconnect("button_release", self, "_on_controller_button_released") + _current_controller.button_pressed.disconnect(_on_controller_button_pressed) + _current_controller.button_released.disconnect(_on_controller_button_released) _current_controller = null # Restore original material when dropped - $MeshInstance.set_surface_material(0, _original_material) + $MeshInstance3D.set_surface_override_material(0, _original_material) # Called when a controller button is pressed -func _on_controller_button_pressed(button : int): +func _on_controller_button_pressed(button : String): # Handle controller button presses - if button == XRTools.Buttons.VR_BUTTON_AX: + if button == "ax_button": # Set alternate material when button pressed if alternate_material: - $MeshInstance.set_surface_material(0, alternate_material) + $MeshInstance3D.set_surface_override_material(0, alternate_material) # Called when a controller button is released -func _on_controller_button_released(button : int): +func _on_controller_button_released(button : String): # Handle controller button releases - if button == XRTools.Buttons.VR_BUTTON_AX: + if button == "ax_button": # Restore original material when button released - $MeshInstance.set_surface_material(0, _original_material) + $MeshInstance3D.set_surface_override_material(0, _original_material) diff --git a/scenes/pickable_demo/objects/grab_cube.tscn b/scenes/pickable_demo/objects/grab_cube.tscn index f73e487b..9f6b537c 100644 --- a/scenes/pickable_demo/objects/grab_cube.tscn +++ b/scenes/pickable_demo/objects/grab_cube.tscn @@ -1,27 +1,28 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=8 format=3 uid="uid://djkjuy7wct10q"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=3] -[ext_resource path="res://scenes/pickable_demo/objects/grab_cube.gd" type="Script" id=4] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=5] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="2"] +[ext_resource type="Script" path="res://scenes/pickable_demo/objects/grab_cube.gd" id="2_xxt38"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="3"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="3_g1dne"] -[sub_resource type="BoxShape" id=7] +[sub_resource type="BoxShape3D" id="7"] margin = 0.01 -extents = Vector3( 0.05, 0.05, 0.05 ) +size = Vector3(0.1, 0.1, 0.1) -[sub_resource type="CubeMesh" id=8] -size = Vector3( 0.1, 0.1, 0.1 ) +[sub_resource type="BoxMesh" id="8"] +size = Vector3(0.1, 0.1, 0.1) -[node name="GrabCube" instance=ExtResource( 1 )] -script = ExtResource( 4 ) -alternate_material = ExtResource( 5 ) +[node name="GrabCube" instance=ExtResource("1")] +script = ExtResource("2_xxt38") +alternate_material = ExtResource("3_g1dne") +ranged_grab_method = 0 -[node name="CollisionShape" parent="." index="0"] -shape = SubResource( 7 ) +[node name="CollisionShape3D" parent="." index="0"] +shape = SubResource("7") -[node name="MeshInstance" type="MeshInstance" parent="." index="1"] -mesh = SubResource( 8 ) -material/0 = ExtResource( 3 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1"] +mesh = SubResource("8") +surface_material_override/0 = ExtResource("3") -[node name="HighlightRing" parent="." index="2" instance=ExtResource( 2 )] +[node name="HighlightRing" parent="." index="2" instance=ExtResource("2")] diff --git a/scenes/pickable_demo/objects/hammer.tscn b/scenes/pickable_demo/objects/hammer.tscn index 31716d08..eb1675a2 100644 --- a/scenes/pickable_demo/objects/hammer.tscn +++ b/scenes/pickable_demo/objects/hammer.tscn @@ -1,61 +1,60 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=13 format=3 uid="uid://de0guxhrn5ouk"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=2] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=3] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" type="PackedScene" id=6] -[ext_resource path="res://scenes/pickable_demo/poses/pose_hammer_left.tres" type="Resource" id=7] -[ext_resource path="res://scenes/pickable_demo/poses/pose_hammer_right.tres" type="Resource" id=8] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="2"] +[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="2_2myoy"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="3"] +[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="3_3xwvb"] +[ext_resource type="Resource" uid="uid://dd4sqdg8upblx" path="res://scenes/pickable_demo/poses/pose_hammer_left.tres" id="3_p8dbs"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="4"] +[ext_resource type="Resource" uid="uid://c7lps5l5dj652" path="res://scenes/pickable_demo/poses/pose_hammer_right.tres" id="5_tuke4"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.05, 0.05, 0.1 ) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(0.1, 0.1, 0.2) -[sub_resource type="CylinderShape" id=3] +[sub_resource type="CylinderShape3D" id="3"] height = 0.6 radius = 0.02 -[sub_resource type="CylinderMesh" id=2] +[sub_resource type="CylinderMesh" id="2"] top_radius = 0.02 bottom_radius = 0.02 height = 0.6 radial_segments = 8 rings = 0 -[sub_resource type="CubeMesh" id=4] -size = Vector3( 0.1, 0.1, 0.2 ) +[sub_resource type="BoxMesh" id="4"] +size = Vector3(0.1, 0.1, 0.2) -[node name="Hammer" instance=ExtResource( 1 )] +[node name="Hammer" instance=ExtResource("1")] collision_mask = 7 ranged_grab_method = 0 -[node name="GrabPointHandLeft" parent="." index="0" instance=ExtResource( 5 )] -transform = Transform( -1, -8.74228e-08, 0, 8.58166e-08, -0.981627, 0.190809, -1.66811e-08, 0.190809, 0.981627, -0.007, 0.355, -0.071 ) -hand_pose = ExtResource( 7 ) +[node name="GrabPointHandLeft" parent="." index="0" instance=ExtResource("2_2myoy")] +transform = Transform3D(-1, 8.74228e-08, 0, -8.58166e-08, -0.981627, 0.190809, 1.66811e-08, 0.190809, 0.981627, -0.007, 0.355, -0.071) +hand_pose = ExtResource("3_p8dbs") -[node name="GrabPointHandRight" parent="." index="1" instance=ExtResource( 6 )] -transform = Transform( -1, -8.74228e-08, 0, 8.58166e-08, -0.981627, 0.190809, -1.66811e-08, 0.190809, 0.981627, 0.00734175, 0.355408, -0.0707028 ) -hand_pose = ExtResource( 8 ) -editor_preview_mode = 2 +[node name="GrabPointHandRight" parent="." index="1" instance=ExtResource("3_3xwvb")] +transform = Transform3D(-1, 8.74228e-08, 0, -8.58166e-08, -0.981627, 0.190809, 1.66811e-08, 0.190809, 0.981627, 0.007, 0.355, -0.071) +hand_pose = ExtResource("5_tuke4") -[node name="CollisionShape" parent="." index="2"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0 ) -shape = SubResource( 1 ) +[node name="CollisionShape3D" parent="." index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0) +shape = SubResource("1") -[node name="CollisionShape2" type="CollisionShape" parent="." index="3"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0 ) -shape = SubResource( 3 ) +[node name="CollisionShape2" type="CollisionShape3D" parent="." index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) +shape = SubResource("3") -[node name="Handle" type="MeshInstance" parent="." index="4"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 2 ) +[node name="Handle" type="MeshInstance3D" parent="." index="4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) +mesh = SubResource("2") +surface_material_override/0 = ExtResource("2") -[node name="MeshInstance" type="MeshInstance" parent="." index="5"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0 ) -mesh = SubResource( 4 ) -material/0 = ExtResource( 3 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="5"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0) +mesh = SubResource("4") +surface_material_override/0 = ExtResource("3") -[node name="HighlightRing" parent="." index="6" instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0 ) +[node name="HighlightRing" parent="." index="6" instance=ExtResource("4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0) diff --git a/scenes/pickable_demo/objects/instructions_2d.tscn b/scenes/pickable_demo/objects/instructions_2d.tscn index beb43b92..73dd0026 100644 --- a/scenes/pickable_demo/objects/instructions_2d.tscn +++ b/scenes/pickable_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://d0a7u3r7mcoqb"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Pickable Demo This scene contains objects that the player can pick up including: diff --git a/scenes/pickable_demo/objects/knife.gd b/scenes/pickable_demo/objects/knife.gd index e4622056..39e86b7b 100644 --- a/scenes/pickable_demo/objects/knife.gd +++ b/scenes/pickable_demo/objects/knife.gd @@ -3,14 +3,17 @@ extends XRToolsPickable # Current controller holding this object -var _current_controller : ARVRController +var _current_controller : XRController3D # Called when the node enters the scene tree for the first time. func _ready() -> void: + # In Godot 4 we must now manually call our super class ready function + super() + # Listen for when this object is picked up or dropped - connect("picked_up", self, "_on_picked_up") - connect("dropped", self, "_on_dropped") + picked_up.connect(_on_picked_up) + dropped.connect(_on_dropped) # Called when this object is picked up @@ -18,21 +21,21 @@ func _on_picked_up(_pickable) -> void: # Listen for button events on the associated controller _current_controller = get_picked_up_by_controller() if _current_controller: - _current_controller.connect("button_pressed", self, "_on_controller_button_pressed") + _current_controller.button_pressed.connect(_on_controller_button_pressed) # Called when this object is dropped func _on_dropped(_pickable) -> void: # Unsubscribe to controller button events when dropped if _current_controller: - _current_controller.disconnect("button_pressed", self, "_on_controller_button_pressed") + _current_controller.button_pressed.disconnect(_on_controller_button_pressed) _current_controller = null # Called when a controller button is pressed -func _on_controller_button_pressed(button : int): +func _on_controller_button_pressed(button : String): # Skip if not pose-toggle button - if button != XRTools.Buttons.VR_BUTTON_BY: + if button != "by_button": return # Switch the grab point diff --git a/scenes/pickable_demo/objects/knife.tscn b/scenes/pickable_demo/objects/knife.tscn index 1ae3c261..9d1a026e 100644 --- a/scenes/pickable_demo/objects/knife.tscn +++ b/scenes/pickable_demo/objects/knife.tscn @@ -1,72 +1,95 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=11 format=3 uid="uid://bxk2dud5pq1uf"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" type="PackedScene" id=5] -[ext_resource path="res://scenes/pickable_demo/objects/knife.gd" type="Script" id=7] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=8] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="5"] +[ext_resource type="Script" path="res://scenes/pickable_demo/objects/knife.gd" id="7"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="8"] -[sub_resource type="SpatialMaterial" id=1] -albedo_color = Color( 0.607843, 0.462745, 0.32549, 1 ) +[sub_resource type="StandardMaterial3D" id="1"] +albedo_color = Color(0.607843, 0.462745, 0.32549, 1) -[sub_resource type="SpatialMaterial" id=2] +[sub_resource type="StandardMaterial3D" id="2"] metallic = 0.5 metallic_specular = 0.8 roughness = 0.1 -[sub_resource type="ArrayMesh" id=3] +[sub_resource type="ArrayMesh" id="ArrayMesh_v104j"] +_surfaces = [{ +"aabb": AABB(-0.151323, -0.0185672, -0.00441226, 0.137108, 0.0360727, 0.00861567), +"format": 4097, +"index_count": 198, +"index_data": PackedByteArray(11, 0, 0, 0, 1, 0, 21, 0, 2, 0, 13, 0, 15, 0, 2, 0, 3, 0, 8, 0, 29, 0, 0, 0, 17, 0, 3, 0, 2, 0, 28, 0, 4, 0, 5, 0, 5, 0, 9, 0, 10, 0, 10, 0, 8, 0, 11, 0, 6, 0, 20, 0, 12, 0, 12, 0, 21, 0, 13, 0, 7, 0, 12, 0, 14, 0, 14, 0, 13, 0, 15, 0, 25, 0, 9, 0, 4, 0, 9, 0, 31, 0, 8, 0, 21, 0, 24, 0, 17, 0, 23, 0, 3, 0, 19, 0, 24, 0, 19, 0, 17, 0, 6, 0, 18, 0, 16, 0, 16, 0, 26, 0, 20, 0, 20, 0, 27, 0, 21, 0, 7, 0, 22, 0, 18, 0, 22, 0, 15, 0, 23, 0, 31, 0, 19, 0, 29, 0, 16, 0, 25, 0, 28, 0, 25, 0, 22, 0, 30, 0, 30, 0, 23, 0, 31, 0, 11, 0, 24, 0, 27, 0, 1, 0, 29, 0, 24, 0, 28, 0, 10, 0, 26, 0, 26, 0, 11, 0, 27, 0, 39, 0, 32, 0, 33, 0, 37, 0, 35, 0, 38, 0, 38, 0, 36, 0, 39, 0, 8, 0, 0, 0, 11, 0, 17, 0, 2, 0, 21, 0, 13, 0, 2, 0, 15, 0, 31, 0, 29, 0, 8, 0, 19, 0, 3, 0, 17, 0, 25, 0, 4, 0, 28, 0, 4, 0, 9, 0, 5, 0, 9, 0, 8, 0, 10, 0, 16, 0, 20, 0, 6, 0, 20, 0, 21, 0, 12, 0, 6, 0, 12, 0, 7, 0, 12, 0, 13, 0, 14, 0, 30, 0, 9, 0, 25, 0, 30, 0, 31, 0, 9, 0, 27, 0, 24, 0, 21, 0, 15, 0, 3, 0, 23, 0, 29, 0, 19, 0, 24, 0, 7, 0, 18, 0, 6, 0, 28, 0, 26, 0, 16, 0, 26, 0, 27, 0, 20, 0, 14, 0, 22, 0, 7, 0, 14, 0, 15, 0, 22, 0, 23, 0, 19, 0, 31, 0, 18, 0, 25, 0, 16, 0, 18, 0, 22, 0, 25, 0, 22, 0, 23, 0, 30, 0, 1, 0, 24, 0, 11, 0, 0, 0, 29, 0, 1, 0, 5, 0, 10, 0, 28, 0, 10, 0, 11, 0, 26, 0, 36, 0, 32, 0, 39, 0, 34, 0, 35, 0, 37, 0, 35, 0, 36, 0, 38, 0), +"lods": [0.0036423, PackedByteArray(11, 0, 0, 0, 1, 0, 8, 0, 0, 0, 11, 0, 15, 0, 2, 0, 3, 0, 12, 0, 2, 0, 15, 0, 7, 0, 12, 0, 15, 0, 6, 0, 12, 0, 7, 0, 8, 0, 29, 0, 0, 0, 25, 0, 29, 0, 8, 0, 25, 0, 8, 0, 4, 0, 25, 0, 3, 0, 29, 0, 15, 0, 3, 0, 25, 0, 15, 0, 25, 0, 7, 0, 17, 0, 3, 0, 2, 0, 29, 0, 3, 0, 17, 0, 1, 0, 29, 0, 17, 0, 0, 0, 29, 0, 1, 0, 28, 0, 4, 0, 5, 0, 25, 0, 4, 0, 28, 0, 6, 0, 25, 0, 28, 0, 7, 0, 25, 0, 6, 0, 5, 0, 8, 0, 11, 0, 4, 0, 8, 0, 5, 0, 39, 0, 32, 0, 33, 0, 36, 0, 32, 0, 39, 0, 38, 0, 36, 0, 39, 0, 35, 0, 36, 0, 38, 0, 37, 0, 35, 0, 38, 0, 34, 0, 35, 0, 37, 0, 17, 0, 2, 0, 12, 0, 11, 0, 17, 0, 12, 0, 1, 0, 17, 0, 11, 0, 28, 0, 11, 0, 12, 0, 5, 0, 11, 0, 28, 0, 28, 0, 12, 0, 6, 0)], +"primitive": 3, +"vertex_count": 40, +"vertex_data": PackedByteArray(236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 106, 231, 104, 188, 63, 156, 179, 59, 176, 148, 144, 187, 106, 231, 104, 188, 67, 102, 214, 187, 176, 148, 144, 187, 106, 231, 104, 188, 63, 156, 179, 59, 223, 104, 137, 59, 106, 231, 104, 188, 67, 102, 214, 187, 223, 104, 137, 59, 187, 150, 29, 189, 149, 59, 114, 60, 177, 148, 144, 187, 187, 150, 29, 189, 76, 208, 129, 188, 177, 148, 144, 187, 187, 150, 29, 189, 149, 59, 114, 60, 223, 104, 137, 59, 187, 150, 29, 189, 76, 208, 129, 188, 223, 104, 137, 59, 187, 150, 29, 189, 98, 228, 149, 59, 177, 148, 144, 187, 187, 150, 29, 189, 102, 174, 184, 187, 177, 148, 144, 187, 187, 150, 29, 189, 98, 228, 149, 59, 223, 104, 137, 59, 187, 150, 29, 189, 102, 174, 184, 187, 223, 104, 137, 59, 248, 105, 240, 189, 76, 208, 129, 188, 177, 148, 144, 187, 248, 105, 240, 189, 149, 59, 114, 60, 224, 104, 137, 59, 248, 105, 240, 189, 98, 228, 149, 59, 177, 148, 144, 187, 248, 105, 240, 189, 102, 174, 184, 187, 177, 148, 144, 187, 248, 105, 240, 189, 149, 59, 114, 60, 177, 148, 144, 187, 248, 105, 240, 189, 76, 208, 129, 188, 224, 104, 137, 59, 248, 105, 240, 189, 98, 228, 149, 59, 224, 104, 137, 59, 248, 105, 240, 189, 102, 174, 184, 187, 224, 104, 137, 59, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 192, 255, 147, 188, 99, 4, 76, 186, 175, 181, 140, 186, 199, 255, 147, 188, 27, 110, 179, 59, 173, 181, 140, 186, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 167, 255, 147, 188, 99, 4, 76, 186, 230, 37, 45, 58, 163, 255, 147, 188, 27, 110, 179, 59, 233, 37, 45, 58) +}, { +"aabb": AABB(-0.0180663, -0.0126189, -0.00107353, 0.161609, 0.0243487, 0.00173404), +"format": 4097, +"index_count": 54, +"index_data": PackedByteArray(9, 0, 3, 0, 12, 0, 7, 0, 11, 0, 10, 0, 8, 0, 12, 0, 11, 0, 1, 0, 3, 0, 2, 0, 4, 0, 14, 0, 10, 0, 4, 0, 0, 0, 14, 0, 3, 0, 6, 0, 12, 0, 12, 0, 5, 0, 11, 0, 11, 0, 4, 0, 10, 0, 2, 0, 3, 0, 9, 0, 8, 0, 11, 0, 7, 0, 9, 0, 12, 0, 8, 0, 1, 0, 6, 0, 3, 0, 6, 0, 5, 0, 12, 0, 5, 0, 4, 0, 11, 0, 10, 0, 13, 0, 7, 0, 10, 0, 14, 0, 13, 0, 14, 0, 0, 0, 13, 0), +"primitive": 3, +"vertex_count": 15, +"vertex_data": PackedByteArray(189, 255, 147, 188, 151, 191, 78, 188, 175, 181, 140, 186, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 192, 255, 147, 188, 99, 4, 76, 186, 175, 181, 140, 186, 199, 255, 147, 188, 27, 110, 179, 59, 173, 181, 140, 186, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 167, 255, 147, 188, 99, 4, 76, 186, 230, 37, 45, 58, 163, 255, 147, 188, 27, 110, 179, 59, 233, 37, 45, 58, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 55, 201, 7, 62, 99, 4, 76, 186, 8, 139, 88, 185, 80, 21, 16, 62, 27, 110, 179, 59, 8, 139, 88, 185, 176, 255, 147, 188, 151, 191, 78, 188, 228, 37, 45, 58, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_anmh6"] resource_name = "knife_Cube" -surfaces/0 = { -"aabb": AABB( -0.151323, -0.0185672, -0.00441226, 0.137108, 0.0360727, 0.00861567 ), -"array_data": PoolByteArray( 236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 8, 138, 118, 67, 90, 41, 37, 57, 236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 0, 0, 126, 63, 141, 44, 217, 59, 236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 184, 202, 202, 99, 167, 53, 229, 56, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 8, 138, 118, 67, 90, 41, 163, 57, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 129, 127, 126, 63, 140, 44, 225, 57, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 184, 202, 202, 99, 167, 53, 103, 56, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 127, 0, 0, 127, 90, 57, 232, 56, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 244, 142, 114, 57, 172, 59, 163, 57, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 127, 127, 126, 63, 229, 59, 214, 57, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 127, 0, 0, 127, 90, 57, 107, 56, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 244, 142, 114, 57, 172, 59, 37, 57, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 0, 0, 126, 63, 229, 59, 228, 59, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 8, 118, 118, 59, 90, 41, 162, 57, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 0, 0, 126, 63, 140, 44, 225, 57, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 184, 54, 54, 99, 32, 57, 229, 56, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 8, 118, 118, 59, 90, 41, 36, 57, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 129, 127, 126, 63, 140, 44, 217, 59, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 184, 54, 54, 99, 32, 57, 103, 56, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 127, 0, 0, 126, 105, 59, 232, 56, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 244, 114, 114, 69, 172, 59, 36, 57, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 127, 127, 126, 63, 229, 59, 228, 59, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 127, 0, 0, 126, 105, 59, 107, 56, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 244, 114, 114, 69, 172, 59, 162, 57, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 0, 0, 126, 63, 229, 59, 213, 57, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 0, 0, 126, 63, 183, 32, 49, 59, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 129, 0, 0, 127, 76, 55, 229, 56, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 184, 202, 202, 99, 76, 55, 229, 56, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 0, 0, 126, 63, 179, 32, 137, 58, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 129, 0, 0, 127, 77, 56, 229, 56, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 184, 54, 54, 99, 77, 56, 229, 56, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 129, 127, 126, 63, 179, 32, 49, 59, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 129, 0, 0, 127, 77, 56, 103, 56, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 184, 54, 54, 99, 77, 56, 103, 56, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 129, 127, 126, 63, 179, 32, 137, 58, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 129, 0, 0, 127, 76, 55, 103, 56, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 184, 202, 202, 99, 76, 55, 103, 56, 106, 231, 104, 188, 63, 156, 179, 59, 176, 148, 144, 187, 127, 0, 0, 126, 185, 58, 232, 56, 106, 231, 104, 188, 63, 156, 179, 59, 176, 148, 144, 187, 127, 127, 126, 63, 229, 59, 53, 59, 106, 231, 104, 188, 67, 102, 214, 187, 176, 148, 144, 187, 127, 0, 0, 126, 10, 58, 232, 56, 106, 231, 104, 188, 67, 102, 214, 187, 176, 148, 144, 187, 127, 127, 126, 63, 229, 59, 133, 58, 106, 231, 104, 188, 63, 156, 179, 59, 223, 104, 137, 59, 127, 0, 0, 126, 185, 58, 107, 56, 106, 231, 104, 188, 63, 156, 179, 59, 223, 104, 137, 59, 0, 0, 126, 63, 229, 59, 132, 58, 106, 231, 104, 188, 67, 102, 214, 187, 223, 104, 137, 59, 127, 0, 0, 126, 10, 58, 107, 56, 106, 231, 104, 188, 67, 102, 214, 187, 223, 104, 137, 59, 0, 0, 126, 63, 229, 59, 52, 59, 187, 150, 29, 189, 149, 59, 114, 60, 177, 148, 144, 187, 250, 120, 120, 66, 72, 58, 36, 57, 187, 150, 29, 189, 149, 59, 114, 60, 177, 148, 144, 187, 127, 127, 126, 63, 130, 58, 189, 59, 187, 150, 29, 189, 76, 208, 129, 188, 177, 148, 144, 187, 250, 136, 120, 60, 72, 58, 163, 57, 187, 150, 29, 189, 76, 208, 129, 188, 177, 148, 144, 187, 127, 127, 127, 63, 130, 58, 253, 57, 187, 150, 29, 189, 149, 59, 114, 60, 223, 104, 137, 59, 250, 120, 120, 66, 72, 58, 162, 57, 187, 150, 29, 189, 149, 59, 114, 60, 223, 104, 137, 59, 0, 0, 126, 63, 130, 58, 253, 57, 187, 150, 29, 189, 76, 208, 129, 188, 223, 104, 137, 59, 250, 136, 120, 60, 72, 58, 37, 57, 187, 150, 29, 189, 76, 208, 129, 188, 223, 104, 137, 59, 0, 0, 126, 63, 131, 58, 188, 59, 187, 150, 29, 189, 98, 228, 149, 59, 177, 148, 144, 187, 127, 127, 126, 63, 130, 58, 40, 59, 187, 150, 29, 189, 102, 174, 184, 187, 177, 148, 144, 187, 127, 127, 126, 63, 130, 58, 146, 58, 187, 150, 29, 189, 98, 228, 149, 59, 223, 104, 137, 59, 0, 0, 126, 63, 130, 58, 146, 58, 187, 150, 29, 189, 102, 174, 184, 187, 223, 104, 137, 59, 0, 0, 126, 63, 131, 58, 39, 59, 248, 105, 240, 189, 76, 208, 129, 188, 177, 148, 144, 187, 4, 134, 122, 65, 30, 51, 163, 57, 248, 105, 240, 189, 76, 208, 129, 188, 177, 148, 144, 187, 129, 127, 126, 63, 4, 52, 253, 57, 248, 105, 240, 189, 149, 59, 114, 60, 224, 104, 137, 59, 4, 122, 122, 61, 30, 51, 162, 57, 248, 105, 240, 189, 149, 59, 114, 60, 224, 104, 137, 59, 0, 0, 126, 63, 4, 52, 253, 57, 248, 105, 240, 189, 98, 228, 149, 59, 177, 148, 144, 187, 129, 127, 126, 63, 4, 52, 40, 59, 248, 105, 240, 189, 102, 174, 184, 187, 177, 148, 144, 187, 129, 127, 126, 63, 4, 52, 146, 58, 248, 105, 240, 189, 149, 59, 114, 60, 177, 148, 144, 187, 4, 122, 122, 61, 30, 51, 36, 57, 248, 105, 240, 189, 149, 59, 114, 60, 177, 148, 144, 187, 129, 127, 127, 63, 4, 52, 189, 59, 248, 105, 240, 189, 76, 208, 129, 188, 224, 104, 137, 59, 4, 134, 122, 65, 30, 51, 37, 57, 248, 105, 240, 189, 76, 208, 129, 188, 224, 104, 137, 59, 0, 0, 126, 63, 5, 52, 188, 59, 248, 105, 240, 189, 98, 228, 149, 59, 224, 104, 137, 59, 0, 0, 126, 63, 4, 52, 146, 58, 248, 105, 240, 189, 102, 174, 184, 187, 224, 104, 137, 59, 0, 0, 126, 63, 4, 52, 39, 59, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 130, 0, 0, 63, 161, 31, 168, 34, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 130, 0, 0, 63, 131, 36, 168, 34, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 130, 0, 0, 63, 161, 31, 224, 47, 192, 255, 147, 188, 99, 4, 76, 186, 175, 181, 140, 186, 130, 0, 0, 63, 161, 31, 135, 45, 199, 255, 147, 188, 27, 110, 179, 59, 173, 181, 140, 186, 130, 0, 0, 63, 161, 31, 92, 42, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 130, 0, 0, 63, 131, 36, 224, 47, 167, 255, 147, 188, 99, 4, 76, 186, 230, 37, 45, 58, 130, 0, 0, 63, 131, 36, 135, 45, 163, 255, 147, 188, 27, 110, 179, 59, 233, 37, 45, 58, 130, 0, 0, 63, 131, 36, 92, 42 ), -"array_index_data": PoolByteArray( 35, 0, 2, 0, 5, 0, 53, 0, 8, 0, 39, 0, 42, 0, 6, 0, 9, 0, 24, 0, 65, 0, 1, 0, 46, 0, 10, 0, 7, 0, 62, 0, 12, 0, 15, 0, 17, 0, 29, 0, 32, 0, 31, 0, 25, 0, 34, 0, 20, 0, 52, 0, 37, 0, 37, 0, 53, 0, 39, 0, 21, 0, 36, 0, 40, 0, 40, 0, 38, 0, 42, 0, 59, 0, 27, 0, 13, 0, 27, 0, 67, 0, 24, 0, 53, 0, 57, 0, 47, 0, 55, 0, 11, 0, 51, 0, 56, 0, 50, 0, 46, 0, 19, 0, 48, 0, 44, 0, 45, 0, 60, 0, 52, 0, 52, 0, 61, 0, 53, 0, 23, 0, 54, 0, 49, 0, 54, 0, 43, 0, 55, 0, 67, 0, 51, 0, 65, 0, 44, 0, 58, 0, 62, 0, 59, 0, 54, 0, 66, 0, 66, 0, 55, 0, 67, 0, 33, 0, 57, 0, 61, 0, 3, 0, 64, 0, 56, 0, 63, 0, 30, 0, 60, 0, 60, 0, 33, 0, 61, 0, 75, 0, 68, 0, 69, 0, 73, 0, 71, 0, 74, 0, 74, 0, 72, 0, 75, 0, 26, 0, 2, 0, 35, 0, 47, 0, 8, 0, 53, 0, 38, 0, 6, 0, 42, 0, 67, 0, 65, 0, 24, 0, 50, 0, 10, 0, 46, 0, 58, 0, 12, 0, 62, 0, 14, 0, 29, 0, 17, 0, 28, 0, 25, 0, 31, 0, 45, 0, 52, 0, 20, 0, 52, 0, 53, 0, 37, 0, 18, 0, 36, 0, 21, 0, 36, 0, 38, 0, 40, 0, 66, 0, 27, 0, 59, 0, 66, 0, 67, 0, 27, 0, 61, 0, 57, 0, 53, 0, 43, 0, 11, 0, 55, 0, 64, 0, 50, 0, 56, 0, 22, 0, 48, 0, 19, 0, 63, 0, 60, 0, 45, 0, 60, 0, 61, 0, 52, 0, 41, 0, 54, 0, 23, 0, 41, 0, 43, 0, 54, 0, 55, 0, 51, 0, 67, 0, 48, 0, 58, 0, 44, 0, 49, 0, 54, 0, 59, 0, 54, 0, 55, 0, 66, 0, 4, 0, 57, 0, 33, 0, 0, 0, 64, 0, 3, 0, 16, 0, 30, 0, 63, 0, 30, 0, 33, 0, 60, 0, 72, 0, 68, 0, 75, 0, 70, 0, 71, 0, 73, 0, 71, 0, 72, 0, 74, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.151323, -0.0185672, -0.00441226, 0.137108, 0.0360727, 0.00861567), +"attribute_data": PackedByteArray(80, 87, 43, 61, 194, 190, 36, 63, 96, 178, 145, 61, 169, 36, 123, 63, 84, 244, 180, 62, 137, 173, 28, 63, 128, 87, 43, 61, 181, 116, 52, 63, 212, 148, 145, 61, 173, 54, 60, 63, 86, 244, 180, 62, 152, 247, 12, 63, 41, 86, 43, 63, 128, 29, 29, 63, 116, 148, 117, 63, 217, 116, 52, 63, 116, 168, 124, 63, 236, 192, 58, 63, 41, 86, 43, 63, 142, 103, 13, 63, 120, 148, 117, 63, 232, 190, 36, 63, 74, 172, 124, 63, 176, 133, 124, 63, 80, 87, 43, 61, 136, 78, 52, 63, 56, 134, 145, 61, 46, 53, 60, 63, 194, 9, 36, 63, 141, 173, 28, 63, 168, 87, 43, 61, 144, 152, 36, 63, 212, 148, 145, 61, 27, 38, 123, 63, 195, 9, 36, 63, 156, 247, 12, 63, 22, 49, 109, 63, 132, 29, 29, 63, 118, 148, 117, 63, 144, 152, 36, 63, 116, 168, 124, 63, 215, 155, 124, 63, 24, 49, 109, 63, 146, 103, 13, 63, 120, 148, 117, 63, 127, 78, 52, 63, 119, 166, 124, 63, 206, 170, 58, 63, 193, 227, 22, 60, 142, 43, 102, 63, 110, 137, 233, 62, 139, 173, 28, 63, 110, 137, 233, 62, 139, 173, 28, 63, 129, 109, 22, 60, 16, 49, 81, 63, 51, 191, 9, 63, 141, 173, 28, 63, 51, 191, 9, 63, 141, 173, 28, 63, 65, 110, 22, 60, 161, 43, 102, 63, 53, 191, 9, 63, 154, 247, 12, 63, 53, 191, 9, 63, 154, 247, 12, 63, 129, 109, 22, 60, 38, 49, 81, 63, 114, 137, 233, 62, 154, 247, 12, 63, 114, 137, 233, 62, 154, 247, 12, 63, 113, 61, 87, 63, 128, 29, 29, 63, 114, 168, 124, 63, 50, 168, 102, 63, 206, 73, 65, 63, 128, 29, 29, 63, 114, 168, 124, 63, 143, 180, 80, 63, 116, 61, 87, 63, 144, 103, 13, 63, 104, 168, 124, 63, 112, 158, 80, 63, 206, 73, 65, 63, 142, 103, 13, 63, 90, 170, 124, 63, 15, 146, 102, 63, 244, 3, 73, 63, 156, 152, 36, 63, 0, 95, 80, 63, 67, 164, 119, 63, 238, 3, 73, 63, 206, 116, 52, 63, 0, 95, 80, 63, 128, 184, 63, 63, 246, 3, 73, 63, 139, 78, 52, 63, 127, 93, 80, 63, 80, 166, 63, 63, 242, 3, 73, 63, 220, 190, 36, 63, 110, 98, 80, 63, 5, 146, 119, 63, 0, 95, 80, 63, 87, 0, 101, 63, 0, 95, 80, 63, 106, 92, 82, 63, 36, 95, 80, 63, 54, 74, 82, 63, 201, 96, 80, 63, 29, 238, 100, 63, 104, 199, 99, 62, 174, 116, 52, 63, 188, 153, 128, 62, 134, 184, 63, 63, 156, 199, 99, 62, 143, 78, 52, 63, 194, 150, 128, 62, 252, 178, 63, 63, 188, 153, 128, 62, 89, 0, 101, 63, 188, 153, 128, 62, 112, 92, 82, 63, 162, 199, 99, 62, 156, 152, 36, 63, 188, 153, 128, 62, 66, 164, 119, 63, 106, 199, 99, 62, 186, 190, 36, 63, 150, 160, 128, 62, 195, 158, 119, 63, 8, 154, 128, 62, 232, 86, 82, 63, 76, 157, 128, 62, 214, 250, 100, 63, 62, 60, 244, 59, 128, 5, 85, 60, 160, 105, 144, 60, 128, 5, 85, 60, 62, 60, 244, 59, 136, 24, 252, 61, 62, 60, 244, 59, 144, 240, 176, 61, 62, 60, 244, 59, 32, 145, 75, 61, 96, 105, 144, 60, 136, 24, 252, 61, 96, 105, 144, 60, 144, 240, 176, 61, 160, 105, 144, 60, 32, 145, 75, 61, 110, 137, 233, 62, 139, 173, 28, 63, 114, 137, 233, 62, 154, 247, 12, 63), +"format": 4119, "index_count": 198, -"material": SubResource( 1 ), +"index_data": PackedByteArray(35, 0, 2, 0, 5, 0, 53, 0, 8, 0, 39, 0, 42, 0, 6, 0, 9, 0, 24, 0, 65, 0, 1, 0, 46, 0, 10, 0, 7, 0, 62, 0, 12, 0, 15, 0, 17, 0, 29, 0, 32, 0, 31, 0, 25, 0, 34, 0, 20, 0, 52, 0, 37, 0, 37, 0, 53, 0, 39, 0, 21, 0, 36, 0, 40, 0, 40, 0, 38, 0, 42, 0, 59, 0, 27, 0, 13, 0, 27, 0, 67, 0, 24, 0, 53, 0, 57, 0, 47, 0, 55, 0, 11, 0, 51, 0, 56, 0, 50, 0, 46, 0, 19, 0, 48, 0, 44, 0, 45, 0, 60, 0, 52, 0, 52, 0, 61, 0, 53, 0, 23, 0, 54, 0, 49, 0, 54, 0, 43, 0, 55, 0, 67, 0, 51, 0, 65, 0, 44, 0, 58, 0, 62, 0, 59, 0, 54, 0, 66, 0, 66, 0, 55, 0, 67, 0, 33, 0, 57, 0, 61, 0, 3, 0, 64, 0, 56, 0, 63, 0, 30, 0, 60, 0, 60, 0, 33, 0, 61, 0, 75, 0, 68, 0, 69, 0, 73, 0, 71, 0, 74, 0, 74, 0, 72, 0, 75, 0, 26, 0, 2, 0, 35, 0, 47, 0, 8, 0, 53, 0, 38, 0, 6, 0, 42, 0, 67, 0, 65, 0, 24, 0, 50, 0, 10, 0, 46, 0, 58, 0, 12, 0, 62, 0, 14, 0, 29, 0, 17, 0, 28, 0, 25, 0, 31, 0, 45, 0, 52, 0, 20, 0, 52, 0, 53, 0, 37, 0, 18, 0, 36, 0, 21, 0, 36, 0, 38, 0, 40, 0, 66, 0, 27, 0, 59, 0, 66, 0, 67, 0, 27, 0, 61, 0, 57, 0, 53, 0, 43, 0, 11, 0, 55, 0, 64, 0, 50, 0, 56, 0, 22, 0, 48, 0, 19, 0, 63, 0, 60, 0, 45, 0, 60, 0, 61, 0, 52, 0, 41, 0, 54, 0, 23, 0, 41, 0, 43, 0, 54, 0, 55, 0, 51, 0, 67, 0, 48, 0, 58, 0, 44, 0, 49, 0, 54, 0, 59, 0, 54, 0, 55, 0, 66, 0, 4, 0, 57, 0, 33, 0, 0, 0, 64, 0, 3, 0, 16, 0, 30, 0, 63, 0, 30, 0, 33, 0, 60, 0, 72, 0, 68, 0, 75, 0, 70, 0, 71, 0, 73, 0, 71, 0, 72, 0, 74, 0), +"lods": [0.0036423, PackedByteArray(34, 0, 2, 0, 5, 0, 25, 0, 2, 0, 34, 0, 42, 0, 6, 0, 9, 0, 36, 0, 6, 0, 42, 0, 21, 0, 36, 0, 42, 0, 18, 0, 36, 0, 21, 0, 24, 0, 65, 0, 1, 0, 59, 0, 65, 0, 24, 0, 59, 0, 24, 0, 13, 0, 59, 0, 11, 0, 65, 0, 43, 0, 11, 0, 59, 0, 43, 0, 59, 0, 23, 0, 46, 0, 10, 0, 7, 0, 64, 0, 10, 0, 46, 0, 3, 0, 64, 0, 46, 0, 0, 0, 64, 0, 3, 0, 62, 0, 12, 0, 15, 0, 58, 0, 12, 0, 62, 0, 19, 0, 58, 0, 62, 0, 22, 0, 58, 0, 19, 0, 17, 0, 76, 0, 77, 0, 14, 0, 76, 0, 17, 0, 75, 0, 68, 0, 69, 0, 72, 0, 68, 0, 75, 0, 74, 0, 72, 0, 75, 0, 71, 0, 72, 0, 74, 0, 73, 0, 71, 0, 74, 0, 70, 0, 71, 0, 73, 0, 47, 0, 8, 0, 37, 0, 33, 0, 47, 0, 37, 0, 4, 0, 47, 0, 33, 0, 63, 0, 33, 0, 37, 0, 16, 0, 33, 0, 63, 0, 63, 0, 37, 0, 20, 0)], +"material": SubResource("1"), "name": "Handle", -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 76 -} -surfaces/1 = { -"aabb": AABB( -0.0180663, -0.0126189, -0.00107353, 0.161609, 0.0243487, 0.00173404 ), -"array_data": PoolByteArray( 189, 255, 147, 188, 151, 191, 78, 188, 175, 181, 140, 186, 125, 130, 125, 63, 25, 40, 117, 33, 189, 255, 147, 188, 151, 191, 78, 188, 175, 181, 140, 186, 0, 129, 126, 63, 242, 41, 88, 53, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 127, 126, 126, 63, 122, 40, 5, 49, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 0, 127, 127, 63, 144, 40, 116, 49, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 0, 127, 127, 63, 144, 40, 199, 49, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 0, 0, 127, 63, 193, 40, 96, 50, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 126, 130, 126, 63, 241, 59, 5, 49, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 0, 127, 127, 63, 242, 59, 157, 49, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 0, 0, 127, 63, 245, 59, 96, 50, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 126, 130, 126, 63, 122, 40, 18, 42, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 126, 130, 125, 63, 159, 40, 217, 41, 192, 255, 147, 188, 99, 4, 76, 186, 175, 181, 140, 186, 126, 130, 126, 63, 122, 40, 95, 45, 199, 255, 147, 188, 27, 110, 179, 59, 173, 181, 140, 186, 126, 130, 126, 63, 122, 40, 180, 47, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 0, 0, 126, 63, 193, 40, 240, 52, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 0, 0, 126, 63, 202, 40, 244, 52, 167, 255, 147, 188, 99, 4, 76, 186, 230, 37, 45, 58, 0, 0, 127, 63, 193, 40, 91, 52, 163, 255, 147, 188, 27, 110, 179, 59, 233, 37, 45, 58, 0, 0, 127, 63, 193, 40, 139, 51, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 125, 130, 126, 63, 174, 58, 18, 42, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 0, 255, 126, 63, 176, 58, 244, 52, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 125, 130, 126, 63, 177, 58, 244, 41, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 0, 255, 126, 63, 179, 58, 240, 52, 55, 201, 7, 62, 99, 4, 76, 186, 8, 139, 88, 185, 125, 130, 126, 63, 80, 59, 95, 45, 55, 201, 7, 62, 99, 4, 76, 186, 8, 139, 88, 185, 0, 255, 127, 63, 84, 59, 91, 52, 80, 21, 16, 62, 27, 110, 179, 59, 8, 139, 88, 185, 126, 130, 126, 63, 176, 59, 180, 47, 80, 21, 16, 62, 27, 110, 179, 59, 8, 139, 88, 185, 0, 0, 127, 63, 181, 59, 139, 51, 176, 255, 147, 188, 151, 191, 78, 188, 228, 37, 45, 58, 0, 255, 126, 63, 175, 40, 137, 53, 176, 255, 147, 188, 151, 191, 78, 188, 228, 37, 45, 58, 0, 129, 126, 63, 242, 41, 50, 53, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185, 0, 129, 126, 63, 89, 57, 72, 53, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185, 0, 255, 126, 63, 175, 57, 137, 53, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185, 125, 130, 126, 63, 175, 57, 144, 31 ), -"array_index_data": PoolByteArray( 16, 0, 8, 0, 24, 0, 13, 0, 22, 0, 20, 0, 15, 0, 24, 0, 22, 0, 3, 0, 7, 0, 4, 0, 10, 0, 29, 0, 19, 0, 10, 0, 0, 0, 29, 0, 6, 0, 12, 0, 23, 0, 23, 0, 11, 0, 21, 0, 21, 0, 9, 0, 17, 0, 5, 0, 8, 0, 16, 0, 15, 0, 22, 0, 13, 0, 16, 0, 24, 0, 15, 0, 2, 0, 12, 0, 6, 0, 12, 0, 11, 0, 23, 0, 11, 0, 9, 0, 21, 0, 18, 0, 25, 0, 14, 0, 18, 0, 28, 0, 25, 0, 27, 0, 1, 0, 26, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +"primitive": 3, +"vertex_count": 78, +"vertex_data": PackedByteArray(236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 12, 137, 12, 9, 242, 246, 133, 196, 236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 236, 16, 18, 190, 31, 141, 145, 188, 223, 104, 137, 59, 20, 55, 234, 72, 234, 72, 116, 228, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 12, 137, 12, 9, 242, 246, 133, 196, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 0, 0, 255, 255, 254, 255, 255, 191, 236, 16, 18, 190, 31, 141, 145, 188, 176, 148, 144, 187, 20, 55, 234, 72, 234, 72, 116, 228, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 255, 255, 255, 127, 255, 127, 255, 255, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 22, 115, 232, 12, 22, 243, 139, 185, 106, 231, 104, 188, 50, 26, 152, 188, 176, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 255, 255, 255, 127, 255, 127, 255, 255, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 22, 115, 232, 12, 22, 243, 139, 185, 106, 231, 104, 188, 50, 26, 152, 188, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 12, 137, 242, 246, 242, 246, 120, 187, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 236, 16, 18, 190, 158, 218, 136, 60, 223, 104, 137, 59, 20, 55, 20, 183, 20, 183, 116, 228, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 12, 137, 242, 246, 242, 246, 120, 187, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 0, 0, 255, 255, 254, 255, 255, 191, 236, 16, 18, 190, 158, 218, 136, 60, 176, 148, 144, 187, 20, 55, 20, 183, 20, 183, 116, 228, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 255, 255, 255, 127, 255, 127, 254, 255, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 22, 115, 22, 243, 22, 243, 115, 198, 106, 231, 104, 188, 177, 103, 143, 60, 176, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 255, 255, 255, 127, 255, 127, 254, 255, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 22, 115, 22, 243, 22, 243, 115, 198, 106, 231, 104, 188, 177, 103, 143, 60, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 0, 0, 255, 127, 255, 127, 255, 255, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 20, 55, 234, 72, 234, 72, 116, 228, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 0, 0, 255, 127, 255, 127, 255, 255, 115, 244, 26, 190, 38, 224, 170, 59, 223, 104, 137, 59, 20, 55, 20, 183, 20, 183, 116, 228, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 0, 0, 255, 255, 254, 255, 255, 191, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 0, 0, 255, 127, 255, 127, 255, 255, 115, 244, 26, 190, 38, 224, 170, 59, 176, 148, 144, 187, 20, 55, 20, 183, 20, 183, 116, 228, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 0, 0, 255, 255, 254, 255, 255, 191, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 0, 0, 255, 127, 255, 127, 255, 255, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 20, 55, 234, 72, 234, 72, 116, 228, 106, 231, 104, 188, 63, 156, 179, 59, 176, 148, 144, 187, 255, 255, 255, 127, 255, 127, 254, 255, 106, 231, 104, 188, 63, 156, 179, 59, 176, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 106, 231, 104, 188, 67, 102, 214, 187, 176, 148, 144, 187, 255, 255, 255, 127, 255, 127, 254, 255, 106, 231, 104, 188, 67, 102, 214, 187, 176, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 106, 231, 104, 188, 63, 156, 179, 59, 223, 104, 137, 59, 255, 255, 255, 127, 255, 127, 254, 255, 106, 231, 104, 188, 63, 156, 179, 59, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 106, 231, 104, 188, 67, 102, 214, 187, 223, 104, 137, 59, 255, 255, 255, 127, 255, 127, 254, 255, 106, 231, 104, 188, 67, 102, 214, 187, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 187, 150, 29, 189, 149, 59, 114, 60, 177, 148, 144, 187, 56, 121, 56, 249, 56, 249, 98, 195, 187, 150, 29, 189, 149, 59, 114, 60, 177, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 187, 150, 29, 189, 76, 208, 129, 188, 177, 148, 144, 187, 56, 121, 198, 6, 56, 249, 155, 188, 187, 150, 29, 189, 76, 208, 129, 188, 177, 148, 144, 187, 255, 255, 255, 255, 255, 255, 255, 191, 187, 150, 29, 189, 149, 59, 114, 60, 223, 104, 137, 59, 56, 121, 56, 249, 56, 249, 98, 195, 187, 150, 29, 189, 149, 59, 114, 60, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 187, 150, 29, 189, 76, 208, 129, 188, 223, 104, 137, 59, 56, 121, 198, 6, 56, 249, 155, 188, 187, 150, 29, 189, 76, 208, 129, 188, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 187, 150, 29, 189, 98, 228, 149, 59, 177, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 187, 150, 29, 189, 102, 174, 184, 187, 177, 148, 144, 187, 255, 255, 255, 255, 254, 255, 255, 191, 187, 150, 29, 189, 98, 228, 149, 59, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 187, 150, 29, 189, 102, 174, 184, 187, 223, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 248, 105, 240, 189, 76, 208, 129, 188, 177, 148, 144, 187, 174, 132, 175, 4, 79, 251, 86, 194, 248, 105, 240, 189, 76, 208, 129, 188, 177, 148, 144, 187, 0, 0, 255, 255, 255, 255, 255, 191, 248, 105, 240, 189, 149, 59, 114, 60, 224, 104, 137, 59, 174, 132, 79, 251, 79, 251, 167, 189, 248, 105, 240, 189, 149, 59, 114, 60, 224, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 248, 105, 240, 189, 98, 228, 149, 59, 177, 148, 144, 187, 0, 0, 255, 255, 255, 255, 255, 191, 248, 105, 240, 189, 102, 174, 184, 187, 177, 148, 144, 187, 0, 0, 255, 255, 255, 255, 255, 191, 248, 105, 240, 189, 149, 59, 114, 60, 177, 148, 144, 187, 174, 132, 79, 251, 79, 251, 167, 189, 248, 105, 240, 189, 149, 59, 114, 60, 177, 148, 144, 187, 0, 0, 255, 255, 255, 255, 255, 191, 248, 105, 240, 189, 76, 208, 129, 188, 224, 104, 137, 59, 174, 132, 175, 4, 79, 251, 86, 194, 248, 105, 240, 189, 76, 208, 129, 188, 224, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 248, 105, 240, 189, 98, 228, 149, 59, 224, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 248, 105, 240, 189, 102, 174, 184, 187, 224, 104, 137, 59, 255, 127, 255, 127, 243, 255, 249, 191, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 1, 0, 255, 127, 1, 128, 255, 191, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 1, 0, 255, 127, 1, 128, 255, 191, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 0, 0, 255, 127, 255, 127, 255, 191, 192, 255, 147, 188, 99, 4, 76, 186, 175, 181, 140, 186, 0, 0, 255, 127, 0, 128, 255, 191, 199, 255, 147, 188, 27, 110, 179, 59, 173, 181, 140, 186, 1, 0, 255, 127, 0, 128, 255, 191, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 0, 0, 255, 127, 0, 128, 255, 191, 167, 255, 147, 188, 99, 4, 76, 186, 230, 37, 45, 58, 0, 0, 255, 127, 0, 128, 255, 191, 163, 255, 147, 188, 27, 110, 179, 59, 233, 37, 45, 58, 1, 0, 255, 127, 0, 128, 255, 191, 115, 244, 26, 190, 42, 170, 205, 187, 223, 104, 137, 59, 202, 34, 202, 162, 255, 127, 255, 255, 115, 244, 26, 190, 42, 170, 205, 187, 176, 148, 144, 187, 210, 40, 209, 168, 255, 127, 255, 255) +}, { +"aabb": AABB(-0.0180663, -0.0126189, -0.00107353, 0.161609, 0.0243487, 0.00173404), +"attribute_data": PackedByteArray(167, 34, 3, 61, 128, 182, 46, 60, 120, 83, 62, 61, 244, 12, 171, 62, 248, 80, 15, 61, 140, 172, 32, 62, 8, 15, 18, 61, 116, 145, 46, 62, 160, 15, 18, 61, 184, 237, 56, 62, 56, 33, 24, 61, 196, 20, 76, 62, 175, 47, 126, 63, 140, 172, 32, 62, 139, 91, 126, 63, 152, 191, 51, 62, 164, 188, 126, 63, 196, 20, 76, 62, 32, 81, 15, 61, 48, 75, 66, 61, 158, 233, 19, 61, 176, 54, 59, 61, 32, 81, 15, 61, 112, 225, 171, 61, 248, 80, 15, 61, 64, 157, 246, 61, 240, 32, 24, 61, 68, 23, 158, 62, 118, 66, 25, 61, 64, 138, 158, 62, 8, 33, 24, 61, 76, 104, 139, 62, 16, 33, 24, 61, 176, 114, 113, 62, 159, 215, 85, 63, 48, 75, 66, 61, 5, 22, 86, 63, 40, 138, 158, 62, 201, 52, 86, 63, 240, 155, 62, 61, 152, 100, 86, 63, 68, 23, 158, 62, 166, 3, 106, 63, 112, 225, 171, 61, 157, 144, 106, 63, 76, 104, 139, 62, 18, 30, 118, 63, 64, 157, 246, 61, 8, 171, 118, 63, 176, 114, 113, 62, 47, 231, 21, 61, 130, 51, 177, 62, 96, 83, 62, 61, 108, 82, 166, 62, 232, 44, 43, 63, 186, 17, 169, 62, 148, 241, 53, 63, 94, 52, 177, 62, 246, 253, 53, 63, 0, 10, 242, 59), +"format": 4119, "index_count": 54, -"material": SubResource( 2 ), +"index_data": PackedByteArray(16, 0, 8, 0, 24, 0, 13, 0, 22, 0, 20, 0, 15, 0, 24, 0, 22, 0, 3, 0, 7, 0, 4, 0, 10, 0, 29, 0, 19, 0, 10, 0, 0, 0, 29, 0, 6, 0, 12, 0, 23, 0, 23, 0, 11, 0, 21, 0, 21, 0, 9, 0, 17, 0, 5, 0, 8, 0, 16, 0, 15, 0, 22, 0, 13, 0, 16, 0, 24, 0, 15, 0, 2, 0, 12, 0, 6, 0, 12, 0, 11, 0, 23, 0, 11, 0, 9, 0, 21, 0, 18, 0, 25, 0, 14, 0, 18, 0, 28, 0, 25, 0, 27, 0, 1, 0, 26, 0), +"material": SubResource("2"), "name": "Blade", -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 30 -} +"primitive": 3, +"vertex_count": 30, +"vertex_data": PackedByteArray(189, 255, 147, 188, 151, 191, 78, 188, 175, 181, 140, 186, 156, 254, 217, 0, 151, 254, 70, 192, 189, 255, 147, 188, 151, 191, 78, 188, 175, 181, 140, 186, 255, 127, 0, 0, 216, 255, 255, 191, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 255, 255, 80, 255, 80, 255, 255, 191, 202, 255, 147, 188, 98, 46, 64, 60, 173, 181, 140, 186, 255, 127, 255, 255, 255, 255, 255, 191, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 255, 127, 255, 255, 255, 255, 255, 191, 154, 255, 147, 188, 98, 46, 64, 60, 236, 37, 45, 58, 174, 128, 255, 127, 255, 255, 167, 191, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 177, 255, 177, 0, 77, 255, 255, 191, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 255, 127, 255, 255, 255, 255, 255, 191, 243, 252, 18, 62, 96, 46, 64, 60, 8, 139, 88, 185, 176, 128, 177, 127, 255, 255, 166, 191, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 70, 255, 203, 0, 50, 255, 255, 191, 189, 255, 147, 188, 53, 111, 230, 187, 175, 181, 140, 186, 70, 255, 203, 0, 171, 254, 67, 192, 192, 255, 147, 188, 99, 4, 76, 186, 175, 181, 140, 186, 251, 255, 182, 0, 72, 255, 255, 191, 199, 255, 147, 188, 27, 110, 179, 59, 173, 181, 140, 186, 254, 255, 176, 0, 78, 255, 255, 191, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 202, 128, 71, 127, 254, 255, 101, 192, 176, 255, 147, 188, 53, 111, 230, 187, 228, 37, 45, 58, 202, 128, 71, 127, 254, 255, 153, 191, 167, 255, 147, 188, 99, 4, 76, 186, 230, 37, 45, 58, 182, 128, 252, 127, 255, 255, 163, 191, 163, 255, 147, 188, 27, 110, 179, 59, 233, 37, 45, 58, 175, 128, 254, 127, 255, 255, 167, 191, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 80, 254, 204, 0, 47, 255, 255, 191, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 204, 128, 81, 126, 254, 255, 151, 191, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 80, 254, 204, 0, 19, 255, 241, 191, 35, 234, 243, 61, 53, 111, 230, 187, 8, 139, 88, 185, 204, 128, 81, 126, 254, 255, 102, 192, 55, 201, 7, 62, 99, 4, 76, 186, 8, 139, 88, 185, 246, 254, 188, 0, 65, 255, 255, 191, 55, 201, 7, 62, 99, 4, 76, 186, 8, 139, 88, 185, 187, 128, 247, 126, 255, 255, 160, 191, 80, 21, 16, 62, 27, 110, 179, 59, 8, 139, 88, 185, 138, 255, 179, 0, 74, 255, 255, 191, 80, 21, 16, 62, 27, 110, 179, 59, 8, 139, 88, 185, 179, 128, 138, 127, 255, 255, 165, 191, 176, 255, 147, 188, 151, 191, 78, 188, 228, 37, 45, 58, 217, 128, 156, 126, 254, 255, 109, 192, 176, 255, 147, 188, 151, 191, 78, 188, 228, 37, 45, 58, 255, 127, 0, 0, 216, 255, 255, 191, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185, 255, 127, 0, 0, 216, 255, 255, 191, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185, 217, 128, 156, 126, 254, 255, 109, 192, 7, 174, 206, 61, 151, 191, 78, 188, 8, 139, 88, 185, 156, 254, 217, 0, 9, 255, 242, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_v104j") -[sub_resource type="ConvexPolygonShape" id=4] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_2tu7g"] margin = 0.005 -points = PoolVector3Array( -0.0142231, 0.0175055, 0.00419341, -0.0142231, -0.0185672, 0.00419341, 0.143543, 0.0117288, -0.000207138, -0.0142231, 0.0175055, -0.00441226, -0.142664, 0.016704, 0.00419341, -0.0142231, -0.0185672, -0.00441226, 0.100912, -0.012621, -0.000207138, 0.119096, -0.00703494, -0.000207138, 0.132575, -0.00078154, -0.000207138, 0.140686, 0.00547539, -0.000207138, -0.142664, -0.0177692, 0.00419341, -0.142664, 0.016704, -0.00441226, -0.151323, 0.0052141, 0.00419341, -0.142664, -0.0177692, -0.00441226, -0.151323, -0.0062793, 0.00419341, -0.151323, 0.0052141, -0.00441226, -0.151323, -0.0062793, -0.00441226 ) +points = PackedVector3Array(-0.0142231, 0.0175055, 0.00419341, -0.0142231, -0.0185672, 0.00419341, 0.143543, 0.0117288, -0.000207138, -0.0142231, 0.0175055, -0.00441226, -0.142664, 0.016704, 0.00419341, -0.0142231, -0.0185672, -0.00441226, 0.100912, -0.012621, -0.000207138, 0.119096, -0.00703494, -0.000207138, 0.132575, -0.00078154, -0.000207138, 0.140686, 0.00547539, -0.000207138, -0.142664, -0.0177692, 0.00419341, -0.142664, 0.016704, -0.00441226, -0.151323, 0.0052141, 0.00419341, -0.142664, -0.0177692, -0.00441226, -0.151323, -0.0062793, 0.00419341, -0.151323, 0.0052141, -0.00441226, -0.151323, -0.0062793, -0.00441226) -[node name="Knife" instance=ExtResource( 1 )] -script = ExtResource( 7 ) +[node name="Knife" instance=ExtResource("1")] +continuous_cd = true +script = ExtResource("7") -[node name="Knife" type="MeshInstance" parent="." index="0"] -mesh = SubResource( 3 ) +[node name="Knife" type="MeshInstance3D" parent="." index="0"] +mesh = SubResource("ArrayMesh_anmh6") +skeleton = NodePath("") -[node name="CollisionShape" parent="." index="1"] -shape = SubResource( 4 ) +[node name="CollisionShape3D" parent="." index="1"] +shape = SubResource("ConvexPolygonShape3D_2tu7g") -[node name="GrabPointHandLeft" parent="." index="2" instance=ExtResource( 5 )] -transform = Transform( -0.0412479, 0.99089, -0.128202, -5.60865e-09, 0.128311, 0.991734, 0.999149, 0.040907, -0.00529256, -0.0267695, -0.0835771, 0.0177133 ) +[node name="GrabPointHandLeft" parent="." index="2" instance=ExtResource("5")] +transform = Transform3D(-0.0412479, 0.99089, -0.128202, -5.60865e-09, 0.128311, 0.991734, 0.999149, 0.040907, -0.00529256, -0.0267695, -0.0835771, 0.0177133) -[node name="GrabPointHandRight" parent="." index="3" instance=ExtResource( 4 )] -transform = Transform( 0.0412479, 0.99089, -0.128202, 0, 0.128311, 0.991734, 0.999149, -0.0409069, 0.00529256, -0.027, -0.084, -0.018 ) +[node name="GrabPointHandRight" parent="." index="3" instance=ExtResource("4")] +transform = Transform3D(0.0412479, 0.99089, -0.128202, 0, 0.128311, 0.991734, 0.999149, -0.0409069, 0.00529256, -0.027, -0.084, -0.018) -[node name="GrabPointGripLeft" parent="." index="4" instance=ExtResource( 5 )] -transform = Transform( 0.0412478, -0.99089, 0.128202, -5.60865e-09, 0.128311, 0.991734, -0.999149, -0.0409069, 0.00529255, -0.136863, -0.084, -0.018 ) +[node name="GrabPointGripLeft" parent="." index="4" instance=ExtResource("5")] +transform = Transform3D(0.0412478, -0.99089, 0.128202, -5.60865e-09, 0.128311, 0.991734, -0.999149, -0.0409069, 0.00529255, -0.136863, -0.084, -0.018) -[node name="GrabPointGripRight" parent="." index="5" instance=ExtResource( 4 )] -transform = Transform( -0.041248, -0.99089, 0.128202, 0, 0.128311, 0.991734, -0.999149, 0.040907, -0.00529257, -0.137, -0.084, 0.018 ) +[node name="GrabPointGripRight" parent="." index="5" instance=ExtResource("4")] +transform = Transform3D(-0.041248, -0.99089, 0.128202, 0, 0.128311, 0.991734, -0.999149, 0.040907, -0.00529257, -0.137, -0.084, 0.018) -[node name="HighlightRing" parent="." index="6" instance=ExtResource( 8 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0795496, 0, 0 ) +[node name="HighlightRing" parent="." index="6" instance=ExtResource("8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0795496, 0, 0) diff --git a/scenes/pickable_demo/objects/saucer.tscn b/scenes/pickable_demo/objects/saucer.tscn index 377c54e0..12faa1c5 100644 --- a/scenes/pickable_demo/objects/saucer.tscn +++ b/scenes/pickable_demo/objects/saucer.tscn @@ -1,34 +1,55 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=7 format=3 uid="uid://gi3cc6cxi81j"] -[ext_resource path="res://addons/godot-xr-tools/objects/snap_zone.tscn" type="PackedScene" id=1] +[ext_resource type="PackedScene" uid="uid://ce7vysyvondf8" path="res://addons/godot-xr-tools/objects/snap_zone.tscn" id="1"] +[ext_resource type="Material" path="res://scenes/pickable_demo/materials/porcelain.tres" id="1_ycnf3"] -[sub_resource type="ArrayMesh" id=1] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3anyq"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_eeav4"] +_surfaces = [{ +"aabb": AABB(-0.11, -0.004, -0.11, 0.22, 0.016, 0.22), +"format": 4097, +"index_count": 756, +"index_data": PackedByteArray(24, 0, 86, 0, 22, 0, 24, 0, 88, 0, 86, 0, 57, 0, 123, 0, 59, 0, 57, 0, 121, 0, 123, 0, 6, 0, 68, 0, 4, 0, 6, 0, 70, 0, 68, 0, 39, 0, 105, 0, 41, 0, 39, 0, 103, 0, 105, 0, 58, 0, 120, 0, 56, 0, 58, 0, 122, 0, 120, 0, 21, 0, 87, 0, 23, 0, 21, 0, 85, 0, 87, 0, 40, 0, 102, 0, 38, 0, 40, 0, 104, 0, 102, 0, 3, 0, 69, 0, 5, 0, 3, 0, 66, 0, 69, 0, 22, 0, 84, 0, 20, 0, 22, 0, 86, 0, 84, 0, 55, 0, 121, 0, 57, 0, 55, 0, 119, 0, 121, 0, 4, 0, 65, 0, 2, 0, 4, 0, 68, 0, 65, 0, 37, 0, 103, 0, 39, 0, 37, 0, 101, 0, 103, 0, 56, 0, 118, 0, 54, 0, 56, 0, 120, 0, 118, 0, 19, 0, 85, 0, 21, 0, 19, 0, 83, 0, 85, 0, 38, 0, 100, 0, 36, 0, 38, 0, 102, 0, 100, 0, 20, 0, 82, 0, 18, 0, 20, 0, 84, 0, 82, 0, 53, 0, 119, 0, 55, 0, 53, 0, 117, 0, 119, 0, 1, 0, 66, 0, 3, 0, 1, 0, 67, 0, 66, 0, 35, 0, 101, 0, 37, 0, 35, 0, 99, 0, 101, 0, 54, 0, 116, 0, 52, 0, 54, 0, 118, 0, 116, 0, 2, 0, 64, 0, 0, 0, 2, 0, 65, 0, 64, 0, 17, 0, 83, 0, 19, 0, 17, 0, 81, 0, 83, 0, 36, 0, 98, 0, 34, 0, 36, 0, 100, 0, 98, 0, 18, 0, 80, 0, 16, 0, 18, 0, 82, 0, 80, 0, 51, 0, 117, 0, 53, 0, 51, 0, 115, 0, 117, 0, 33, 0, 99, 0, 35, 0, 33, 0, 97, 0, 99, 0, 52, 0, 114, 0, 50, 0, 52, 0, 116, 0, 114, 0, 15, 0, 81, 0, 17, 0, 15, 0, 79, 0, 81, 0, 34, 0, 96, 0, 32, 0, 34, 0, 98, 0, 96, 0, 16, 0, 78, 0, 14, 0, 16, 0, 80, 0, 78, 0, 5, 0, 1, 0, 3, 0, 1, 0, 61, 0, 63, 0, 61, 0, 57, 0, 59, 0, 57, 0, 53, 0, 55, 0, 53, 0, 49, 0, 51, 0, 49, 0, 45, 0, 47, 0, 45, 0, 41, 0, 43, 0, 41, 0, 37, 0, 39, 0, 37, 0, 33, 0, 35, 0, 33, 0, 29, 0, 31, 0, 29, 0, 25, 0, 27, 0, 25, 0, 21, 0, 23, 0, 21, 0, 17, 0, 19, 0, 17, 0, 13, 0, 15, 0, 13, 0, 9, 0, 11, 0, 9, 0, 5, 0, 7, 0, 5, 0, 61, 0, 1, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 5, 0, 9, 0, 5, 0, 53, 0, 61, 0, 53, 0, 37, 0, 45, 0, 37, 0, 21, 0, 29, 0, 21, 0, 5, 0, 13, 0, 5, 0, 37, 0, 53, 0, 37, 0, 5, 0, 21, 0, 49, 0, 115, 0, 51, 0, 49, 0, 113, 0, 115, 0, 31, 0, 97, 0, 33, 0, 31, 0, 95, 0, 97, 0, 62, 0, 2, 0, 0, 0, 2, 0, 6, 0, 4, 0, 6, 0, 10, 0, 8, 0, 10, 0, 14, 0, 12, 0, 14, 0, 18, 0, 16, 0, 18, 0, 22, 0, 20, 0, 22, 0, 26, 0, 24, 0, 26, 0, 30, 0, 28, 0, 30, 0, 34, 0, 32, 0, 34, 0, 38, 0, 36, 0, 38, 0, 42, 0, 40, 0, 42, 0, 46, 0, 44, 0, 46, 0, 50, 0, 48, 0, 50, 0, 54, 0, 52, 0, 54, 0, 58, 0, 56, 0, 58, 0, 62, 0, 60, 0, 62, 0, 6, 0, 2, 0, 6, 0, 14, 0, 10, 0, 14, 0, 22, 0, 18, 0, 22, 0, 30, 0, 26, 0, 30, 0, 38, 0, 34, 0, 38, 0, 46, 0, 42, 0, 46, 0, 54, 0, 50, 0, 54, 0, 62, 0, 58, 0, 62, 0, 14, 0, 6, 0, 14, 0, 30, 0, 22, 0, 30, 0, 46, 0, 38, 0, 46, 0, 62, 0, 54, 0, 62, 0, 30, 0, 14, 0, 30, 0, 62, 0, 46, 0, 64, 0, 66, 0, 67, 0, 64, 0, 65, 0, 66, 0, 65, 0, 69, 0, 66, 0, 65, 0, 68, 0, 69, 0, 68, 0, 71, 0, 69, 0, 68, 0, 70, 0, 71, 0, 70, 0, 73, 0, 71, 0, 70, 0, 72, 0, 73, 0, 72, 0, 75, 0, 73, 0, 72, 0, 74, 0, 75, 0, 74, 0, 77, 0, 75, 0, 74, 0, 76, 0, 77, 0, 76, 0, 79, 0, 77, 0, 76, 0, 78, 0, 79, 0, 78, 0, 81, 0, 79, 0, 78, 0, 80, 0, 81, 0, 80, 0, 83, 0, 81, 0, 80, 0, 82, 0, 83, 0, 82, 0, 85, 0, 83, 0, 82, 0, 84, 0, 85, 0, 84, 0, 87, 0, 85, 0, 84, 0, 86, 0, 87, 0, 86, 0, 89, 0, 87, 0, 86, 0, 88, 0, 89, 0, 88, 0, 91, 0, 89, 0, 88, 0, 90, 0, 91, 0, 90, 0, 93, 0, 91, 0, 90, 0, 92, 0, 93, 0, 92, 0, 95, 0, 93, 0, 92, 0, 94, 0, 95, 0, 94, 0, 97, 0, 95, 0, 94, 0, 96, 0, 97, 0, 96, 0, 99, 0, 97, 0, 96, 0, 98, 0, 99, 0, 98, 0, 101, 0, 99, 0, 98, 0, 100, 0, 101, 0, 100, 0, 103, 0, 101, 0, 100, 0, 102, 0, 103, 0, 102, 0, 105, 0, 103, 0, 102, 0, 104, 0, 105, 0, 104, 0, 107, 0, 105, 0, 104, 0, 106, 0, 107, 0, 106, 0, 109, 0, 107, 0, 106, 0, 108, 0, 109, 0, 108, 0, 111, 0, 109, 0, 108, 0, 110, 0, 111, 0, 110, 0, 113, 0, 111, 0, 110, 0, 112, 0, 113, 0, 112, 0, 115, 0, 113, 0, 112, 0, 114, 0, 115, 0, 114, 0, 117, 0, 115, 0, 114, 0, 116, 0, 117, 0, 116, 0, 119, 0, 117, 0, 116, 0, 118, 0, 119, 0, 118, 0, 121, 0, 119, 0, 118, 0, 120, 0, 121, 0, 120, 0, 123, 0, 121, 0, 120, 0, 122, 0, 123, 0, 122, 0, 125, 0, 123, 0, 122, 0, 124, 0, 125, 0, 124, 0, 127, 0, 125, 0, 124, 0, 126, 0, 127, 0, 126, 0, 67, 0, 127, 0, 126, 0, 64, 0, 67, 0, 5, 0, 71, 0, 7, 0, 5, 0, 69, 0, 71, 0, 42, 0, 104, 0, 40, 0, 42, 0, 106, 0, 104, 0, 23, 0, 89, 0, 25, 0, 23, 0, 87, 0, 89, 0, 60, 0, 122, 0, 58, 0, 60, 0, 124, 0, 122, 0, 41, 0, 107, 0, 43, 0, 41, 0, 105, 0, 107, 0, 8, 0, 70, 0, 6, 0, 8, 0, 72, 0, 70, 0, 59, 0, 125, 0, 61, 0, 59, 0, 123, 0, 125, 0, 26, 0, 88, 0, 24, 0, 26, 0, 90, 0, 88, 0, 7, 0, 73, 0, 9, 0, 7, 0, 71, 0, 73, 0, 44, 0, 106, 0, 42, 0, 44, 0, 108, 0, 106, 0, 25, 0, 91, 0, 27, 0, 25, 0, 89, 0, 91, 0, 62, 0, 124, 0, 60, 0, 62, 0, 126, 0, 124, 0, 43, 0, 109, 0, 45, 0, 43, 0, 107, 0, 109, 0, 10, 0, 72, 0, 8, 0, 10, 0, 74, 0, 72, 0, 61, 0, 127, 0, 63, 0, 61, 0, 125, 0, 127, 0, 28, 0, 90, 0, 26, 0, 28, 0, 92, 0, 90, 0, 9, 0, 75, 0, 11, 0, 9, 0, 73, 0, 75, 0, 46, 0, 108, 0, 44, 0, 46, 0, 110, 0, 108, 0, 27, 0, 93, 0, 29, 0, 27, 0, 91, 0, 93, 0, 0, 0, 126, 0, 62, 0, 0, 0, 64, 0, 126, 0, 45, 0, 111, 0, 47, 0, 45, 0, 109, 0, 111, 0, 12, 0, 74, 0, 10, 0, 12, 0, 76, 0, 74, 0, 63, 0, 67, 0, 1, 0, 63, 0, 127, 0, 67, 0, 30, 0, 92, 0, 28, 0, 30, 0, 94, 0, 92, 0, 11, 0, 77, 0, 13, 0, 11, 0, 75, 0, 77, 0, 48, 0, 110, 0, 46, 0, 48, 0, 112, 0, 110, 0, 29, 0, 95, 0, 31, 0, 29, 0, 93, 0, 95, 0, 47, 0, 113, 0, 49, 0, 47, 0, 111, 0, 113, 0, 14, 0, 76, 0, 12, 0, 14, 0, 78, 0, 76, 0, 32, 0, 94, 0, 30, 0, 32, 0, 96, 0, 94, 0, 13, 0, 79, 0, 15, 0, 13, 0, 77, 0, 79, 0, 50, 0, 112, 0, 48, 0, 50, 0, 114, 0, 112, 0), +"lods": [0.00958653, PackedByteArray(71, 0, 66, 0, 69, 0, 71, 0, 67, 0, 66, 0, 71, 0, 73, 0, 75, 0, 71, 0, 75, 0, 77, 0, 71, 0, 77, 0, 79, 0, 71, 0, 79, 0, 81, 0, 121, 0, 67, 0, 71, 0, 121, 0, 127, 0, 67, 0, 121, 0, 125, 0, 127, 0, 121, 0, 123, 0, 125, 0, 71, 0, 81, 0, 87, 0, 87, 0, 81, 0, 83, 0, 87, 0, 83, 0, 85, 0, 121, 0, 117, 0, 119, 0, 121, 0, 115, 0, 117, 0, 121, 0, 113, 0, 115, 0, 71, 0, 105, 0, 121, 0, 105, 0, 113, 0, 121, 0, 105, 0, 71, 0, 87, 0, 105, 0, 111, 0, 113, 0, 105, 0, 109, 0, 111, 0, 105, 0, 107, 0, 109, 0, 105, 0, 101, 0, 103, 0, 105, 0, 99, 0, 101, 0, 105, 0, 97, 0, 99, 0, 87, 0, 97, 0, 105, 0, 87, 0, 95, 0, 97, 0, 87, 0, 93, 0, 95, 0, 87, 0, 91, 0, 93, 0, 87, 0, 89, 0, 91, 0, 72, 0, 65, 0, 120, 0, 120, 0, 65, 0, 126, 0, 72, 0, 70, 0, 65, 0, 72, 0, 78, 0, 76, 0, 72, 0, 82, 0, 78, 0, 88, 0, 82, 0, 72, 0, 120, 0, 88, 0, 72, 0, 88, 0, 86, 0, 82, 0, 120, 0, 118, 0, 114, 0, 120, 0, 114, 0, 104, 0, 88, 0, 120, 0, 104, 0, 104, 0, 114, 0, 112, 0, 104, 0, 112, 0, 110, 0, 104, 0, 98, 0, 88, 0, 88, 0, 98, 0, 94, 0, 104, 0, 102, 0, 98, 0, 65, 0, 66, 0, 67, 0, 65, 0, 69, 0, 66, 0, 126, 0, 65, 0, 67, 0, 65, 0, 70, 0, 69, 0, 126, 0, 67, 0, 127, 0, 70, 0, 71, 0, 69, 0, 126, 0, 127, 0, 125, 0, 70, 0, 73, 0, 71, 0, 120, 0, 126, 0, 125, 0, 70, 0, 72, 0, 73, 0, 120, 0, 125, 0, 123, 0, 72, 0, 75, 0, 73, 0, 120, 0, 123, 0, 121, 0, 72, 0, 77, 0, 75, 0, 118, 0, 120, 0, 121, 0, 72, 0, 76, 0, 77, 0, 118, 0, 121, 0, 119, 0, 76, 0, 79, 0, 77, 0, 118, 0, 119, 0, 117, 0, 76, 0, 78, 0, 79, 0, 114, 0, 118, 0, 117, 0, 78, 0, 81, 0, 79, 0, 114, 0, 117, 0, 115, 0, 78, 0, 82, 0, 81, 0, 112, 0, 114, 0, 115, 0, 82, 0, 83, 0, 81, 0, 112, 0, 115, 0, 113, 0, 82, 0, 85, 0, 83, 0, 110, 0, 112, 0, 113, 0, 82, 0, 86, 0, 85, 0, 110, 0, 113, 0, 111, 0, 86, 0, 87, 0, 85, 0, 110, 0, 111, 0, 109, 0, 86, 0, 89, 0, 87, 0, 104, 0, 110, 0, 109, 0, 86, 0, 88, 0, 89, 0, 104, 0, 109, 0, 107, 0, 88, 0, 91, 0, 89, 0, 104, 0, 107, 0, 105, 0, 88, 0, 93, 0, 91, 0, 102, 0, 104, 0, 105, 0, 88, 0, 94, 0, 93, 0, 102, 0, 105, 0, 103, 0, 94, 0, 95, 0, 93, 0, 102, 0, 103, 0, 101, 0, 94, 0, 97, 0, 95, 0, 98, 0, 102, 0, 101, 0, 94, 0, 98, 0, 97, 0, 98, 0, 101, 0, 99, 0, 98, 0, 99, 0, 97, 0), 0.0182738, PackedByteArray(105, 0, 99, 0, 103, 0, 87, 0, 99, 0, 105, 0, 87, 0, 95, 0, 99, 0, 87, 0, 91, 0, 95, 0, 105, 0, 71, 0, 87, 0, 71, 0, 83, 0, 87, 0, 71, 0, 79, 0, 83, 0, 71, 0, 75, 0, 79, 0, 71, 0, 105, 0, 121, 0, 121, 0, 67, 0, 71, 0, 121, 0, 127, 0, 67, 0, 105, 0, 115, 0, 121, 0, 121, 0, 115, 0, 119, 0, 105, 0, 111, 0, 115, 0, 114, 0, 65, 0, 64, 0, 114, 0, 64, 0, 126, 0, 65, 0, 80, 0, 76, 0, 65, 0, 84, 0, 80, 0, 114, 0, 84, 0, 65, 0, 84, 0, 114, 0, 98, 0, 98, 0, 114, 0, 110, 0, 84, 0, 98, 0, 94, 0, 64, 0, 65, 0, 67, 0, 126, 0, 64, 0, 67, 0, 65, 0, 71, 0, 67, 0, 126, 0, 67, 0, 127, 0, 65, 0, 75, 0, 71, 0, 65, 0, 79, 0, 75, 0, 65, 0, 76, 0, 79, 0, 76, 0, 80, 0, 79, 0, 80, 0, 83, 0, 79, 0, 114, 0, 126, 0, 127, 0, 114, 0, 127, 0, 121, 0, 114, 0, 121, 0, 119, 0, 114, 0, 119, 0, 115, 0, 110, 0, 114, 0, 115, 0, 110, 0, 115, 0, 111, 0, 80, 0, 84, 0, 83, 0, 84, 0, 87, 0, 83, 0, 84, 0, 91, 0, 87, 0, 84, 0, 95, 0, 91, 0, 84, 0, 94, 0, 95, 0, 94, 0, 99, 0, 95, 0, 98, 0, 110, 0, 111, 0, 94, 0, 98, 0, 99, 0, 98, 0, 111, 0, 105, 0, 98, 0, 103, 0, 99, 0, 98, 0, 105, 0, 103, 0), 0.0249856, PackedByteArray(100, 0, 84, 0, 65, 0, 114, 0, 100, 0, 65, 0, 71, 0, 105, 0, 121, 0, 105, 0, 71, 0, 87, 0, 65, 0, 71, 0, 121, 0, 65, 0, 84, 0, 71, 0, 114, 0, 65, 0, 121, 0, 84, 0, 87, 0, 71, 0, 114, 0, 121, 0, 105, 0, 84, 0, 100, 0, 87, 0, 100, 0, 114, 0, 105, 0, 100, 0, 105, 0, 87, 0), 0.0341249, PackedByteArray(100, 0, 84, 0, 65, 0, 65, 0, 84, 0, 76, 0, 110, 0, 100, 0, 65, 0, 71, 0, 83, 0, 87, 0, 87, 0, 95, 0, 103, 0, 87, 0, 103, 0, 105, 0, 105, 0, 71, 0, 87, 0, 71, 0, 105, 0, 121, 0, 105, 0, 119, 0, 121, 0, 121, 0, 127, 0, 71, 0, 65, 0, 71, 0, 127, 0, 65, 0, 83, 0, 71, 0, 65, 0, 76, 0, 83, 0, 76, 0, 84, 0, 83, 0, 84, 0, 87, 0, 83, 0, 110, 0, 65, 0, 127, 0, 110, 0, 127, 0, 121, 0, 110, 0, 121, 0, 119, 0, 110, 0, 119, 0, 105, 0, 84, 0, 100, 0, 87, 0, 100, 0, 110, 0, 105, 0, 100, 0, 95, 0, 87, 0, 100, 0, 105, 0, 103, 0, 100, 0, 103, 0, 95, 0)], +"primitive": 3, +"vertex_count": 128, +"vertex_data": PackedByteArray(0, 0, 0, 0, 112, 18, 131, 187, 10, 215, 163, 189, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 189, 115, 181, 127, 60, 112, 18, 131, 187, 29, 177, 160, 189, 115, 181, 127, 60, 0, 0, 0, 0, 29, 177, 160, 189, 161, 203, 250, 60, 112, 18, 131, 187, 80, 94, 151, 189, 161, 203, 250, 60, 0, 0, 0, 0, 80, 94, 151, 189, 156, 12, 54, 61, 112, 18, 131, 187, 93, 58, 136, 189, 156, 12, 54, 61, 0, 0, 0, 0, 93, 58, 136, 189, 106, 180, 103, 61, 112, 18, 131, 187, 106, 180, 103, 189, 106, 180, 103, 61, 0, 0, 0, 0, 106, 180, 103, 189, 93, 58, 136, 61, 112, 18, 131, 187, 156, 12, 54, 189, 93, 58, 136, 61, 0, 0, 0, 0, 156, 12, 54, 189, 80, 94, 151, 61, 112, 18, 131, 187, 161, 203, 250, 188, 80, 94, 151, 61, 0, 0, 0, 0, 161, 203, 250, 188, 29, 177, 160, 61, 112, 18, 131, 187, 115, 181, 127, 188, 29, 177, 160, 61, 0, 0, 0, 0, 115, 181, 127, 188, 10, 215, 163, 61, 112, 18, 131, 187, 0, 0, 0, 128, 10, 215, 163, 61, 0, 0, 0, 0, 0, 0, 0, 128, 29, 177, 160, 61, 112, 18, 131, 187, 115, 181, 127, 60, 29, 177, 160, 61, 0, 0, 0, 0, 115, 181, 127, 60, 80, 94, 151, 61, 112, 18, 131, 187, 161, 203, 250, 60, 80, 94, 151, 61, 0, 0, 0, 0, 161, 203, 250, 60, 93, 58, 136, 61, 112, 18, 131, 187, 156, 12, 54, 61, 93, 58, 136, 61, 0, 0, 0, 0, 156, 12, 54, 61, 106, 180, 103, 61, 112, 18, 131, 187, 106, 180, 103, 61, 106, 180, 103, 61, 0, 0, 0, 0, 106, 180, 103, 61, 156, 12, 54, 61, 112, 18, 131, 187, 93, 58, 136, 61, 156, 12, 54, 61, 0, 0, 0, 0, 93, 58, 136, 61, 161, 203, 250, 60, 112, 18, 131, 187, 80, 94, 151, 61, 161, 203, 250, 60, 0, 0, 0, 0, 80, 94, 151, 61, 115, 181, 127, 60, 112, 18, 131, 187, 29, 177, 160, 61, 115, 181, 127, 60, 0, 0, 0, 0, 29, 177, 160, 61, 0, 0, 0, 0, 112, 18, 131, 187, 10, 215, 163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 61, 115, 181, 127, 188, 112, 18, 131, 187, 29, 177, 160, 61, 115, 181, 127, 188, 0, 0, 0, 0, 29, 177, 160, 61, 161, 203, 250, 188, 112, 18, 131, 187, 80, 94, 151, 61, 161, 203, 250, 188, 0, 0, 0, 0, 80, 94, 151, 61, 156, 12, 54, 189, 112, 18, 131, 187, 93, 58, 136, 61, 156, 12, 54, 189, 0, 0, 0, 0, 93, 58, 136, 61, 106, 180, 103, 189, 112, 18, 131, 187, 106, 180, 103, 61, 106, 180, 103, 189, 0, 0, 0, 0, 106, 180, 103, 61, 93, 58, 136, 189, 112, 18, 131, 187, 156, 12, 54, 61, 93, 58, 136, 189, 0, 0, 0, 0, 156, 12, 54, 61, 80, 94, 151, 189, 112, 18, 131, 187, 161, 203, 250, 60, 80, 94, 151, 189, 0, 0, 0, 0, 161, 203, 250, 60, 29, 177, 160, 189, 112, 18, 131, 187, 115, 181, 127, 60, 29, 177, 160, 189, 0, 0, 0, 0, 115, 181, 127, 60, 10, 215, 163, 189, 112, 18, 131, 187, 0, 0, 0, 128, 10, 215, 163, 189, 0, 0, 0, 0, 0, 0, 0, 128, 29, 177, 160, 189, 112, 18, 131, 187, 115, 181, 127, 188, 29, 177, 160, 189, 0, 0, 0, 0, 115, 181, 127, 188, 80, 94, 151, 189, 112, 18, 131, 187, 161, 203, 250, 188, 80, 94, 151, 189, 0, 0, 0, 0, 161, 203, 250, 188, 93, 58, 136, 189, 112, 18, 131, 187, 156, 12, 54, 189, 93, 58, 136, 189, 0, 0, 0, 0, 156, 12, 54, 189, 106, 180, 103, 189, 112, 18, 131, 187, 106, 180, 103, 189, 106, 180, 103, 189, 0, 0, 0, 0, 106, 180, 103, 189, 156, 12, 54, 189, 112, 18, 131, 187, 93, 58, 136, 189, 156, 12, 54, 189, 0, 0, 0, 0, 93, 58, 136, 189, 161, 203, 250, 188, 112, 18, 131, 187, 80, 94, 151, 189, 161, 203, 250, 188, 0, 0, 0, 0, 80, 94, 151, 189, 115, 181, 127, 188, 112, 18, 131, 187, 29, 177, 160, 189, 115, 181, 127, 188, 0, 0, 0, 0, 29, 177, 160, 189, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 189, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 189, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 189, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 189, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 189, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 189, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 189, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 189, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 189, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 189, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 189, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 189, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 189, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 189, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 188, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 188, 174, 71, 225, 61, 104, 18, 3, 60, 0, 0, 0, 128, 174, 71, 225, 61, 160, 155, 68, 60, 0, 0, 0, 128, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 60, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 60, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 61, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 61, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 61, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 61, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 61, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 61, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 61, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 61, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 61, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 61, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 61, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 61, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 61, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 61, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 61, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 61, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 61, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 61, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 61, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 61, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 61, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 61, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 61, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 61, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 61, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 61, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 60, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 60, 174, 71, 225, 189, 104, 18, 3, 60, 0, 0, 0, 128, 174, 71, 225, 189, 160, 155, 68, 60, 0, 0, 0, 128, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 188, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 188, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 189, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 189, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 189, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 189, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 189, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 189, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 189, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 189, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 189, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 189, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 189, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 189) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_le8dc"] resource_name = "saucer_Cylinder001" -surfaces/0 = { -"aabb": AABB( -0.11, -0.004, -0.11, 0.22, 0.016, 0.22 ), -"array_data": PoolByteArray( 0, 0, 0, 0, 112, 18, 131, 187, 10, 215, 163, 189, 21, 129, 25, 54, 139, 45, 96, 58, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 189, 0, 105, 230, 54, 177, 56, 113, 58, 115, 181, 127, 60, 112, 18, 131, 187, 29, 177, 160, 189, 24, 134, 26, 55, 100, 46, 161, 58, 115, 181, 127, 60, 0, 0, 0, 0, 29, 177, 160, 189, 252, 102, 231, 54, 163, 56, 43, 58, 161, 203, 250, 60, 112, 18, 131, 187, 80, 94, 151, 189, 26, 137, 27, 56, 158, 47, 219, 58, 161, 203, 250, 60, 0, 0, 0, 0, 80, 94, 151, 189, 249, 100, 232, 54, 163, 56, 229, 57, 156, 12, 54, 61, 112, 18, 131, 187, 93, 58, 136, 189, 28, 141, 28, 57, 150, 48, 13, 59, 156, 12, 54, 61, 0, 0, 0, 0, 93, 58, 136, 189, 245, 98, 232, 54, 177, 56, 160, 57, 106, 180, 103, 61, 112, 18, 131, 187, 106, 180, 103, 189, 28, 144, 28, 59, 129, 49, 52, 59, 106, 180, 103, 61, 0, 0, 0, 0, 106, 180, 103, 189, 242, 98, 232, 55, 204, 56, 95, 57, 93, 58, 136, 61, 112, 18, 131, 187, 156, 12, 54, 189, 28, 146, 29, 60, 133, 50, 79, 59, 93, 58, 136, 61, 0, 0, 0, 0, 156, 12, 54, 189, 240, 98, 232, 56, 243, 56, 36, 57, 80, 94, 151, 61, 112, 18, 131, 187, 161, 203, 250, 188, 26, 148, 29, 62, 154, 51, 92, 59, 80, 94, 151, 61, 0, 0, 0, 0, 161, 203, 250, 188, 238, 100, 231, 57, 36, 57, 242, 56, 29, 177, 160, 61, 112, 18, 131, 187, 115, 181, 127, 188, 24, 150, 28, 64, 89, 52, 92, 59, 29, 177, 160, 61, 0, 0, 0, 0, 115, 181, 127, 188, 236, 102, 230, 59, 95, 57, 203, 56, 10, 215, 163, 61, 112, 18, 131, 187, 0, 0, 0, 128, 21, 151, 27, 66, 227, 52, 78, 59, 10, 215, 163, 61, 0, 0, 0, 0, 0, 0, 0, 128, 235, 105, 229, 60, 160, 57, 176, 56, 29, 177, 160, 61, 112, 18, 131, 187, 115, 181, 127, 60, 20, 154, 26, 67, 101, 53, 51, 59, 29, 177, 160, 61, 0, 0, 0, 0, 115, 181, 127, 60, 232, 106, 228, 62, 229, 57, 162, 56, 80, 94, 151, 61, 112, 18, 131, 187, 161, 203, 250, 60, 18, 156, 25, 69, 218, 53, 12, 59, 80, 94, 151, 61, 0, 0, 0, 0, 161, 203, 250, 60, 230, 108, 227, 64, 43, 58, 162, 56, 93, 58, 136, 61, 112, 18, 131, 187, 156, 12, 54, 61, 16, 158, 24, 70, 61, 54, 218, 58, 93, 58, 136, 61, 0, 0, 0, 0, 156, 12, 54, 61, 228, 110, 227, 66, 112, 58, 176, 56, 106, 180, 103, 61, 112, 18, 131, 187, 106, 180, 103, 61, 14, 158, 24, 71, 139, 54, 159, 58, 106, 180, 103, 61, 0, 0, 0, 0, 106, 180, 103, 61, 228, 112, 228, 67, 177, 58, 203, 56, 156, 12, 54, 61, 112, 18, 131, 187, 93, 58, 136, 61, 11, 158, 24, 72, 193, 54, 94, 58, 156, 12, 54, 61, 0, 0, 0, 0, 93, 58, 136, 61, 228, 115, 228, 69, 236, 58, 242, 56, 161, 203, 250, 60, 112, 18, 131, 187, 80, 94, 151, 61, 7, 156, 24, 72, 220, 54, 25, 58, 161, 203, 250, 60, 0, 0, 0, 0, 80, 94, 151, 61, 230, 119, 229, 70, 30, 59, 36, 57, 115, 181, 127, 60, 112, 18, 131, 187, 29, 177, 160, 61, 4, 154, 25, 72, 220, 54, 211, 57, 115, 181, 127, 60, 0, 0, 0, 0, 29, 177, 160, 61, 232, 122, 230, 71, 69, 59, 95, 57, 0, 0, 0, 0, 112, 18, 131, 187, 10, 215, 163, 61, 0, 151, 25, 72, 192, 54, 142, 57, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 61, 21, 127, 230, 72, 96, 59, 160, 57, 115, 181, 127, 188, 112, 18, 131, 187, 29, 177, 160, 61, 252, 154, 26, 71, 138, 54, 77, 57, 115, 181, 127, 188, 0, 0, 0, 0, 29, 177, 160, 61, 24, 122, 231, 72, 109, 59, 229, 57, 161, 203, 250, 188, 112, 18, 131, 187, 80, 94, 151, 61, 249, 156, 27, 70, 59, 54, 18, 57, 161, 203, 250, 188, 0, 0, 0, 0, 80, 94, 151, 61, 26, 119, 232, 72, 109, 59, 43, 58, 156, 12, 54, 189, 112, 18, 131, 187, 93, 58, 136, 61, 245, 158, 28, 69, 215, 53, 225, 56, 156, 12, 54, 189, 0, 0, 0, 0, 93, 58, 136, 61, 28, 115, 232, 72, 96, 59, 112, 58, 106, 180, 103, 189, 112, 18, 131, 187, 106, 180, 103, 61, 242, 158, 28, 67, 98, 53, 186, 56, 106, 180, 103, 189, 0, 0, 0, 0, 106, 180, 103, 61, 28, 112, 232, 71, 69, 59, 177, 58, 93, 58, 136, 189, 112, 18, 131, 187, 156, 12, 54, 61, 240, 158, 29, 66, 224, 52, 159, 56, 93, 58, 136, 189, 0, 0, 0, 0, 156, 12, 54, 61, 28, 110, 232, 70, 30, 59, 236, 58, 80, 94, 151, 189, 112, 18, 131, 187, 161, 203, 250, 60, 238, 156, 29, 64, 85, 52, 145, 56, 80, 94, 151, 189, 0, 0, 0, 0, 161, 203, 250, 60, 26, 108, 231, 69, 236, 58, 30, 59, 29, 177, 160, 189, 112, 18, 131, 187, 115, 181, 127, 60, 236, 154, 28, 62, 146, 51, 145, 56, 29, 177, 160, 189, 0, 0, 0, 0, 115, 181, 127, 60, 24, 106, 230, 67, 178, 58, 69, 59, 10, 215, 163, 189, 112, 18, 131, 187, 0, 0, 0, 128, 235, 151, 27, 60, 126, 50, 159, 56, 10, 215, 163, 189, 0, 0, 0, 0, 0, 0, 0, 128, 21, 105, 229, 66, 113, 58, 96, 59, 29, 177, 160, 189, 112, 18, 131, 187, 115, 181, 127, 188, 232, 150, 26, 59, 122, 49, 186, 56, 29, 177, 160, 189, 0, 0, 0, 0, 115, 181, 127, 188, 20, 102, 228, 64, 44, 58, 110, 59, 80, 94, 151, 189, 112, 18, 131, 187, 161, 203, 250, 188, 230, 148, 25, 57, 144, 48, 226, 56, 80, 94, 151, 189, 0, 0, 0, 0, 161, 203, 250, 188, 18, 100, 227, 62, 230, 57, 110, 59, 93, 58, 136, 189, 112, 18, 131, 187, 156, 12, 54, 189, 228, 146, 24, 56, 148, 47, 20, 57, 93, 58, 136, 189, 0, 0, 0, 0, 156, 12, 54, 189, 16, 98, 227, 60, 161, 57, 96, 59, 106, 180, 103, 189, 112, 18, 131, 187, 106, 180, 103, 189, 228, 144, 24, 55, 93, 46, 78, 57, 106, 180, 103, 189, 0, 0, 0, 0, 106, 180, 103, 189, 14, 98, 228, 59, 96, 57, 69, 59, 156, 12, 54, 189, 112, 18, 131, 187, 93, 58, 136, 189, 228, 141, 24, 54, 135, 45, 143, 57, 156, 12, 54, 189, 0, 0, 0, 0, 93, 58, 136, 189, 11, 98, 228, 57, 37, 57, 30, 59, 161, 203, 250, 188, 112, 18, 131, 187, 80, 94, 151, 189, 230, 137, 24, 54, 26, 45, 213, 57, 161, 203, 250, 188, 0, 0, 0, 0, 80, 94, 151, 189, 7, 100, 229, 56, 243, 56, 236, 58, 115, 181, 127, 188, 112, 18, 131, 187, 29, 177, 160, 189, 232, 134, 25, 54, 28, 45, 27, 58, 115, 181, 127, 188, 0, 0, 0, 0, 29, 177, 160, 189, 4, 102, 230, 55, 204, 56, 178, 58, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 189, 127, 127, 31, 15, 203, 36, 137, 58, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 189, 36, 129, 23, 48, 203, 36, 137, 58, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 189, 40, 136, 24, 49, 194, 40, 228, 58, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 189, 127, 105, 42, 25, 194, 40, 228, 58, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 189, 250, 86, 234, 48, 17, 56, 58, 58, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 189, 127, 105, 40, 24, 109, 39, 237, 58, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 189, 127, 127, 29, 14, 12, 33, 143, 58, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 189, 0, 90, 233, 48, 37, 56, 155, 58, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 189, 43, 142, 25, 51, 24, 44, 54, 59, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 189, 127, 89, 47, 33, 24, 44, 54, 59, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 189, 244, 83, 234, 48, 17, 56, 214, 57, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 189, 127, 89, 46, 32, 69, 43, 67, 59, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 189, 45, 148, 26, 53, 71, 46, 124, 59, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 189, 127, 76, 48, 40, 71, 46, 124, 59, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 189, 238, 81, 235, 48, 37, 56, 117, 57, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 189, 127, 76, 48, 40, 231, 45, 139, 59, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 189, 45, 152, 27, 55, 108, 48, 179, 59, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 189, 127, 63, 46, 46, 108, 48, 179, 59, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 189, 234, 81, 235, 49, 74, 56, 26, 57, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 189, 127, 63, 46, 46, 72, 48, 196, 59, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 189, 45, 157, 28, 58, 217, 49, 217, 59, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 189, 127, 50, 42, 52, 217, 49, 217, 59, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 189, 229, 81, 235, 50, 129, 56, 199, 56, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 189, 127, 50, 41, 52, 195, 49, 235, 59, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 189, 43, 160, 29, 61, 93, 51, 236, 59, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 189, 127, 37, 34, 59, 93, 51, 236, 59, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 189, 226, 83, 234, 52, 199, 56, 129, 56, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 189, 127, 37, 34, 59, 86, 51, 255, 59, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 188, 40, 163, 28, 65, 116, 52, 236, 59, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 188, 127, 21, 19, 68, 116, 52, 236, 59, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 188, 223, 86, 233, 55, 26, 57, 74, 56, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 188, 127, 21, 19, 68, 120, 52, 255, 59, 174, 71, 225, 61, 104, 18, 3, 60, 0, 0, 0, 128, 36, 166, 25, 68, 54, 53, 217, 59, 174, 71, 225, 61, 104, 18, 3, 60, 0, 0, 0, 128, 127, 0, 0, 78, 54, 53, 217, 59, 174, 71, 225, 61, 160, 155, 68, 60, 0, 0, 0, 128, 220, 90, 231, 58, 117, 57, 36, 56, 174, 71, 225, 61, 160, 155, 68, 60, 0, 0, 0, 128, 127, 0, 0, 78, 65, 53, 235, 59, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 60, 33, 170, 24, 71, 236, 53, 179, 59, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 60, 105, 0, 242, 83, 236, 53, 179, 59, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 60, 216, 93, 228, 61, 215, 57, 17, 56, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 60, 105, 0, 242, 83, 254, 53, 196, 59, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 61, 30, 173, 22, 74, 145, 54, 124, 59, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 61, 89, 0, 234, 87, 145, 54, 124, 59, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 61, 213, 96, 227, 65, 58, 58, 17, 56, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 61, 89, 0, 233, 87, 169, 54, 139, 59, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 61, 27, 175, 21, 76, 28, 55, 55, 59, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 61, 76, 0, 229, 93, 28, 55, 55, 59, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 61, 211, 99, 228, 68, 155, 58, 36, 56, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 61, 76, 0, 229, 92, 58, 55, 67, 59, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 61, 22, 175, 21, 77, 138, 55, 228, 58, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 61, 63, 0, 229, 99, 138, 55, 228, 58, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 61, 211, 104, 229, 71, 247, 58, 74, 56, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 61, 63, 0, 229, 99, 172, 55, 237, 58, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 61, 18, 175, 21, 78, 214, 55, 137, 58, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 61, 50, 0, 234, 108, 214, 55, 137, 58, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 61, 211, 108, 230, 73, 73, 59, 129, 56, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 61, 50, 0, 233, 107, 250, 55, 143, 58, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 61, 12, 173, 21, 78, 252, 55, 40, 58, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 61, 37, 0, 247, 120, 252, 55, 40, 58, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 61, 213, 114, 231, 75, 143, 59, 199, 56, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 61, 37, 0, 245, 119, 17, 56, 42, 58, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 61, 6, 170, 22, 78, 252, 55, 197, 57, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 61, 21, 0, 15, 120, 252, 55, 197, 57, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 61, 216, 120, 232, 77, 198, 59, 26, 57, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 61, 21, 0, 12, 121, 17, 56, 195, 57, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 61, 0, 166, 23, 78, 214, 55, 100, 57, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 61, 0, 0, 31, 111, 214, 55, 100, 57, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 61, 0, 0, 29, 112, 250, 55, 95, 57, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 61, 36, 127, 233, 78, 236, 59, 117, 57, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 61, 235, 0, 42, 101, 138, 55, 9, 57, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 61, 250, 170, 24, 77, 138, 55, 9, 57, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 61, 235, 0, 40, 102, 172, 55, 0, 57, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 61, 40, 120, 234, 78, 255, 59, 215, 57, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 61, 219, 0, 47, 93, 29, 55, 183, 56, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 61, 244, 173, 25, 75, 29, 55, 183, 56, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 61, 219, 0, 46, 94, 58, 55, 171, 56, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 61, 43, 114, 234, 78, 255, 59, 58, 58, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 61, 206, 0, 48, 86, 145, 54, 113, 56, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 61, 238, 175, 26, 73, 145, 54, 113, 56, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 61, 206, 0, 48, 86, 169, 54, 98, 56, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 61, 45, 108, 235, 78, 236, 59, 155, 58, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 61, 193, 0, 46, 80, 237, 53, 58, 56, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 61, 234, 175, 27, 71, 237, 53, 58, 56, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 61, 193, 0, 46, 80, 254, 53, 41, 56, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 61, 45, 104, 235, 77, 198, 59, 246, 58, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 61, 180, 0, 42, 74, 54, 53, 20, 56, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 61, 229, 175, 28, 68, 54, 53, 20, 56, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 61, 180, 0, 41, 74, 65, 53, 2, 56, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 61, 45, 99, 235, 76, 143, 59, 73, 59, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 61, 167, 0, 34, 67, 116, 52, 1, 56, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 61, 226, 173, 29, 65, 116, 52, 1, 56, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 61, 167, 0, 34, 67, 120, 52, 221, 55, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 61, 43, 96, 234, 74, 73, 59, 143, 59, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 60, 151, 0, 19, 58, 93, 51, 1, 56, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 60, 223, 170, 28, 61, 93, 51, 1, 56, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 60, 151, 0, 19, 58, 86, 51, 221, 55, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 60, 40, 93, 233, 71, 247, 58, 198, 59, 174, 71, 225, 189, 104, 18, 3, 60, 0, 0, 0, 128, 129, 0, 0, 48, 218, 49, 20, 56, 174, 71, 225, 189, 104, 18, 3, 60, 0, 0, 0, 128, 220, 166, 25, 58, 218, 49, 20, 56, 174, 71, 225, 189, 160, 155, 68, 60, 0, 0, 0, 128, 129, 0, 0, 48, 195, 49, 2, 56, 174, 71, 225, 189, 160, 155, 68, 60, 0, 0, 0, 128, 36, 90, 231, 68, 155, 58, 236, 59, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 188, 129, 21, 242, 43, 108, 48, 58, 56, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 188, 216, 163, 24, 55, 108, 48, 58, 56, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 188, 129, 21, 242, 43, 72, 48, 41, 56, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 188, 33, 86, 228, 65, 58, 58, 255, 59, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 189, 129, 37, 234, 39, 72, 46, 113, 56, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 189, 213, 160, 22, 52, 72, 46, 113, 56, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 189, 129, 37, 233, 39, 231, 45, 98, 56, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 189, 30, 83, 227, 61, 215, 57, 255, 59, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 189, 129, 50, 229, 33, 25, 44, 183, 56, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 189, 211, 157, 21, 50, 25, 44, 183, 56, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 189, 129, 50, 229, 34, 71, 43, 171, 56, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 189, 27, 81, 228, 58, 118, 57, 236, 59, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 189, 129, 63, 229, 27, 195, 40, 9, 57, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 189, 211, 152, 21, 49, 195, 40, 9, 57, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 189, 129, 63, 229, 27, 110, 39, 0, 57, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 189, 22, 81, 229, 55, 26, 57, 198, 59, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 189, 129, 76, 234, 18, 205, 36, 100, 57, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 189, 211, 148, 21, 48, 205, 36, 100, 57, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 189, 129, 76, 233, 19, 13, 33, 95, 57, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 189, 18, 81, 230, 53, 200, 56, 143, 59, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 189, 129, 89, 247, 6, 200, 32, 197, 57, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 189, 213, 142, 21, 48, 200, 32, 197, 57, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 189, 129, 89, 245, 7, 141, 6, 195, 57, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 189, 12, 83, 230, 51, 130, 56, 73, 59, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 189, 129, 105, 15, 6, 199, 32, 40, 58, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 189, 216, 136, 22, 48, 199, 32, 40, 58, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 189, 129, 105, 12, 5, 141, 6, 42, 58, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 189, 6, 86, 231, 49, 75, 56, 246, 58 ), -"array_index_data": PoolByteArray( 24, 0, 108, 0, 22, 0, 24, 0, 112, 0, 108, 0, 57, 0, 183, 0, 59, 0, 57, 0, 179, 0, 183, 0, 6, 0, 72, 0, 4, 0, 6, 0, 76, 0, 72, 0, 39, 0, 147, 0, 41, 0, 39, 0, 143, 0, 147, 0, 58, 0, 177, 0, 56, 0, 58, 0, 181, 0, 177, 0, 21, 0, 110, 0, 23, 0, 21, 0, 106, 0, 110, 0, 40, 0, 141, 0, 38, 0, 40, 0, 145, 0, 141, 0, 3, 0, 74, 0, 5, 0, 3, 0, 68, 0, 74, 0, 22, 0, 104, 0, 20, 0, 22, 0, 108, 0, 104, 0, 55, 0, 179, 0, 57, 0, 55, 0, 175, 0, 179, 0, 4, 0, 66, 0, 2, 0, 4, 0, 72, 0, 66, 0, 37, 0, 143, 0, 39, 0, 37, 0, 139, 0, 143, 0, 56, 0, 173, 0, 54, 0, 56, 0, 177, 0, 173, 0, 19, 0, 106, 0, 21, 0, 19, 0, 102, 0, 106, 0, 38, 0, 137, 0, 36, 0, 38, 0, 141, 0, 137, 0, 20, 0, 100, 0, 18, 0, 20, 0, 104, 0, 100, 0, 53, 0, 175, 0, 55, 0, 53, 0, 171, 0, 175, 0, 1, 0, 68, 0, 3, 0, 1, 0, 71, 0, 68, 0, 35, 0, 139, 0, 37, 0, 35, 0, 135, 0, 139, 0, 54, 0, 169, 0, 52, 0, 54, 0, 173, 0, 169, 0, 2, 0, 65, 0, 0, 0, 2, 0, 66, 0, 65, 0, 17, 0, 102, 0, 19, 0, 17, 0, 98, 0, 102, 0, 36, 0, 133, 0, 34, 0, 36, 0, 137, 0, 133, 0, 18, 0, 96, 0, 16, 0, 18, 0, 100, 0, 96, 0, 51, 0, 171, 0, 53, 0, 51, 0, 167, 0, 171, 0, 33, 0, 135, 0, 35, 0, 33, 0, 131, 0, 135, 0, 52, 0, 165, 0, 50, 0, 52, 0, 169, 0, 165, 0, 15, 0, 98, 0, 17, 0, 15, 0, 94, 0, 98, 0, 34, 0, 128, 0, 32, 0, 34, 0, 133, 0, 128, 0, 16, 0, 92, 0, 14, 0, 16, 0, 96, 0, 92, 0, 5, 0, 1, 0, 3, 0, 1, 0, 61, 0, 63, 0, 61, 0, 57, 0, 59, 0, 57, 0, 53, 0, 55, 0, 53, 0, 49, 0, 51, 0, 49, 0, 45, 0, 47, 0, 45, 0, 41, 0, 43, 0, 41, 0, 37, 0, 39, 0, 37, 0, 33, 0, 35, 0, 33, 0, 29, 0, 31, 0, 29, 0, 25, 0, 27, 0, 25, 0, 21, 0, 23, 0, 21, 0, 17, 0, 19, 0, 17, 0, 13, 0, 15, 0, 13, 0, 9, 0, 11, 0, 9, 0, 5, 0, 7, 0, 5, 0, 61, 0, 1, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 5, 0, 9, 0, 5, 0, 53, 0, 61, 0, 53, 0, 37, 0, 45, 0, 37, 0, 21, 0, 29, 0, 21, 0, 5, 0, 13, 0, 5, 0, 37, 0, 53, 0, 37, 0, 5, 0, 21, 0, 49, 0, 167, 0, 51, 0, 49, 0, 163, 0, 167, 0, 31, 0, 131, 0, 33, 0, 31, 0, 126, 0, 131, 0, 62, 0, 2, 0, 0, 0, 2, 0, 6, 0, 4, 0, 6, 0, 10, 0, 8, 0, 10, 0, 14, 0, 12, 0, 14, 0, 18, 0, 16, 0, 18, 0, 22, 0, 20, 0, 22, 0, 26, 0, 24, 0, 26, 0, 30, 0, 28, 0, 30, 0, 34, 0, 32, 0, 34, 0, 38, 0, 36, 0, 38, 0, 42, 0, 40, 0, 42, 0, 46, 0, 44, 0, 46, 0, 50, 0, 48, 0, 50, 0, 54, 0, 52, 0, 54, 0, 58, 0, 56, 0, 58, 0, 62, 0, 60, 0, 62, 0, 6, 0, 2, 0, 6, 0, 14, 0, 10, 0, 14, 0, 22, 0, 18, 0, 22, 0, 30, 0, 26, 0, 30, 0, 38, 0, 34, 0, 38, 0, 46, 0, 42, 0, 46, 0, 54, 0, 50, 0, 54, 0, 62, 0, 58, 0, 62, 0, 14, 0, 6, 0, 14, 0, 30, 0, 22, 0, 30, 0, 46, 0, 38, 0, 46, 0, 62, 0, 54, 0, 62, 0, 30, 0, 14, 0, 30, 0, 62, 0, 46, 0, 64, 0, 69, 0, 70, 0, 64, 0, 67, 0, 69, 0, 67, 0, 75, 0, 69, 0, 67, 0, 73, 0, 75, 0, 73, 0, 79, 0, 75, 0, 73, 0, 77, 0, 79, 0, 77, 0, 83, 0, 79, 0, 77, 0, 81, 0, 83, 0, 81, 0, 87, 0, 83, 0, 81, 0, 85, 0, 87, 0, 85, 0, 91, 0, 87, 0, 85, 0, 89, 0, 91, 0, 89, 0, 95, 0, 91, 0, 89, 0, 93, 0, 95, 0, 93, 0, 99, 0, 95, 0, 93, 0, 97, 0, 99, 0, 97, 0, 103, 0, 99, 0, 97, 0, 101, 0, 103, 0, 101, 0, 107, 0, 103, 0, 101, 0, 105, 0, 107, 0, 105, 0, 111, 0, 107, 0, 105, 0, 109, 0, 111, 0, 109, 0, 115, 0, 111, 0, 109, 0, 113, 0, 115, 0, 113, 0, 119, 0, 115, 0, 113, 0, 117, 0, 119, 0, 117, 0, 123, 0, 119, 0, 117, 0, 121, 0, 123, 0, 121, 0, 127, 0, 123, 0, 121, 0, 125, 0, 127, 0, 125, 0, 130, 0, 127, 0, 125, 0, 129, 0, 130, 0, 129, 0, 134, 0, 130, 0, 129, 0, 132, 0, 134, 0, 132, 0, 138, 0, 134, 0, 132, 0, 136, 0, 138, 0, 136, 0, 142, 0, 138, 0, 136, 0, 140, 0, 142, 0, 140, 0, 146, 0, 142, 0, 140, 0, 144, 0, 146, 0, 144, 0, 150, 0, 146, 0, 144, 0, 148, 0, 150, 0, 148, 0, 154, 0, 150, 0, 148, 0, 152, 0, 154, 0, 152, 0, 158, 0, 154, 0, 152, 0, 156, 0, 158, 0, 156, 0, 162, 0, 158, 0, 156, 0, 160, 0, 162, 0, 160, 0, 166, 0, 162, 0, 160, 0, 164, 0, 166, 0, 164, 0, 170, 0, 166, 0, 164, 0, 168, 0, 170, 0, 168, 0, 174, 0, 170, 0, 168, 0, 172, 0, 174, 0, 172, 0, 178, 0, 174, 0, 172, 0, 176, 0, 178, 0, 176, 0, 182, 0, 178, 0, 176, 0, 180, 0, 182, 0, 180, 0, 186, 0, 182, 0, 180, 0, 184, 0, 186, 0, 184, 0, 190, 0, 186, 0, 184, 0, 188, 0, 190, 0, 188, 0, 70, 0, 190, 0, 188, 0, 64, 0, 70, 0, 5, 0, 78, 0, 7, 0, 5, 0, 74, 0, 78, 0, 42, 0, 145, 0, 40, 0, 42, 0, 149, 0, 145, 0, 23, 0, 114, 0, 25, 0, 23, 0, 110, 0, 114, 0, 60, 0, 181, 0, 58, 0, 60, 0, 185, 0, 181, 0, 41, 0, 151, 0, 43, 0, 41, 0, 147, 0, 151, 0, 8, 0, 76, 0, 6, 0, 8, 0, 80, 0, 76, 0, 59, 0, 187, 0, 61, 0, 59, 0, 183, 0, 187, 0, 26, 0, 112, 0, 24, 0, 26, 0, 116, 0, 112, 0, 7, 0, 82, 0, 9, 0, 7, 0, 78, 0, 82, 0, 44, 0, 149, 0, 42, 0, 44, 0, 153, 0, 149, 0, 25, 0, 118, 0, 27, 0, 25, 0, 114, 0, 118, 0, 62, 0, 185, 0, 60, 0, 62, 0, 189, 0, 185, 0, 43, 0, 155, 0, 45, 0, 43, 0, 151, 0, 155, 0, 10, 0, 80, 0, 8, 0, 10, 0, 84, 0, 80, 0, 61, 0, 191, 0, 63, 0, 61, 0, 187, 0, 191, 0, 28, 0, 116, 0, 26, 0, 28, 0, 120, 0, 116, 0, 9, 0, 86, 0, 11, 0, 9, 0, 82, 0, 86, 0, 46, 0, 153, 0, 44, 0, 46, 0, 157, 0, 153, 0, 27, 0, 122, 0, 29, 0, 27, 0, 118, 0, 122, 0, 0, 0, 189, 0, 62, 0, 0, 0, 65, 0, 189, 0, 45, 0, 159, 0, 47, 0, 45, 0, 155, 0, 159, 0, 12, 0, 84, 0, 10, 0, 12, 0, 88, 0, 84, 0, 63, 0, 71, 0, 1, 0, 63, 0, 191, 0, 71, 0, 30, 0, 120, 0, 28, 0, 30, 0, 124, 0, 120, 0, 11, 0, 90, 0, 13, 0, 11, 0, 86, 0, 90, 0, 48, 0, 157, 0, 46, 0, 48, 0, 161, 0, 157, 0, 29, 0, 126, 0, 31, 0, 29, 0, 122, 0, 126, 0, 47, 0, 163, 0, 49, 0, 47, 0, 159, 0, 163, 0, 14, 0, 88, 0, 12, 0, 14, 0, 92, 0, 88, 0, 32, 0, 124, 0, 30, 0, 32, 0, 128, 0, 124, 0, 13, 0, 94, 0, 15, 0, 13, 0, 90, 0, 94, 0, 50, 0, 161, 0, 48, 0, 50, 0, 165, 0, 161, 0 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.11, -0.004, -0.11, 0.22, 0.016, 0.22), +"attribute_data": PackedByteArray(92, 107, 177, 61, 58, 12, 76, 63, 42, 46, 22, 63, 10, 32, 78, 63, 253, 128, 204, 61, 20, 43, 84, 63, 59, 117, 20, 63, 8, 126, 69, 63, 213, 197, 243, 61, 168, 120, 91, 63, 204, 116, 20, 63, 104, 175, 60, 63, 22, 216, 18, 62, 115, 172, 97, 63, 45, 39, 22, 63, 30, 12, 52, 63, 213, 41, 48, 62, 127, 138, 102, 63, 25, 129, 25, 63, 12, 233, 43, 63, 124, 187, 80, 62, 60, 226, 105, 63, 31, 97, 30, 63, 116, 150, 36, 63, 47, 76, 115, 62, 35, 148, 107, 63, 208, 151, 36, 63, 242, 91, 30, 63, 221, 63, 139, 62, 0, 142, 107, 63, 114, 230, 43, 63, 121, 118, 25, 63, 170, 125, 156, 62, 123, 210, 105, 63, 181, 5, 52, 63, 50, 23, 22, 63, 138, 187, 172, 62, 219, 111, 102, 63, 177, 165, 60, 63, 34, 95, 20, 63, 220, 86, 187, 62, 82, 135, 97, 63, 224, 113, 69, 63, 124, 95, 20, 63, 156, 190, 199, 62, 23, 74, 91, 63, 107, 20, 78, 63, 2, 22, 22, 63, 221, 122, 209, 62, 186, 245, 83, 63, 149, 54, 86, 63, 186, 115, 25, 63, 134, 42, 216, 62, 96, 209, 75, 63, 118, 136, 93, 63, 176, 87, 30, 63, 122, 142, 219, 62, 70, 45, 67, 63, 4, 194, 99, 63, 202, 145, 36, 63, 97, 130, 219, 62, 122, 96, 58, 63, 181, 167, 104, 63, 200, 225, 43, 63, 39, 11, 216, 62, 176, 193, 49, 63, 24, 7, 108, 63, 190, 2, 52, 63, 189, 69, 209, 62, 214, 162, 41, 63, 34, 191, 109, 63, 228, 164, 60, 63, 135, 116, 199, 62, 66, 85, 34, 63, 255, 190, 109, 63, 118, 115, 69, 63, 243, 249, 186, 62, 120, 33, 28, 63, 29, 13, 108, 63, 217, 21, 78, 63, 20, 81, 172, 62, 108, 67, 23, 63, 140, 179, 104, 63, 18, 56, 86, 63, 65, 8, 156, 62, 174, 235, 19, 63, 238, 211, 99, 63, 32, 138, 93, 63, 230, 191, 138, 62, 199, 57, 18, 63, 180, 157, 93, 63, 31, 196, 99, 63, 68, 76, 114, 62, 235, 63, 18, 63, 125, 79, 86, 63, 160, 169, 104, 63, 168, 208, 79, 62, 112, 251, 19, 63, 172, 48, 78, 63, 19, 9, 108, 63, 232, 84, 47, 62, 16, 94, 23, 63, 12, 145, 69, 63, 120, 193, 109, 63, 72, 30, 18, 62, 152, 70, 28, 63, 14, 197, 60, 63, 152, 193, 109, 63, 137, 157, 242, 61, 210, 131, 34, 63, 208, 34, 52, 63, 247, 11, 108, 63, 126, 172, 203, 61, 48, 216, 41, 63, 197, 0, 44, 63, 20, 175, 104, 63, 213, 237, 176, 61, 138, 252, 49, 63, 255, 174, 36, 63, 227, 203, 99, 63, 15, 94, 163, 61, 164, 160, 58, 63, 83, 117, 30, 63, 202, 145, 93, 63, 122, 142, 163, 61, 113, 109, 67, 63, 122, 142, 25, 63, 40, 65, 86, 63, 136, 109, 153, 60, 105, 47, 81, 63, 136, 109, 153, 60, 105, 47, 81, 63, 15, 75, 24, 61, 113, 152, 92, 63, 15, 75, 24, 61, 113, 152, 92, 63, 99, 58, 2, 63, 63, 66, 71, 63, 229, 166, 237, 60, 210, 184, 93, 63, 47, 128, 33, 60, 187, 225, 81, 63, 57, 165, 4, 63, 193, 105, 83, 63, 137, 7, 131, 61, 208, 221, 102, 63, 137, 7, 131, 61, 208, 221, 102, 63, 139, 57, 2, 63, 161, 222, 58, 63, 245, 190, 104, 61, 43, 97, 104, 63, 107, 229, 200, 61, 134, 154, 111, 63, 107, 229, 200, 61, 134, 154, 111, 63, 224, 161, 4, 63, 70, 183, 46, 63, 144, 225, 188, 61, 0, 114, 113, 63, 127, 136, 13, 62, 50, 120, 118, 63, 127, 136, 13, 62, 50, 120, 118, 63, 56, 93, 9, 63, 187, 67, 35, 63, 41, 20, 9, 62, 176, 145, 120, 63, 24, 49, 59, 62, 175, 50, 123, 63, 24, 49, 59, 62, 175, 50, 123, 63, 135, 61, 16, 63, 52, 245, 24, 63, 81, 118, 56, 62, 125, 121, 125, 63, 197, 169, 107, 62, 209, 155, 125, 63, 197, 169, 107, 62, 209, 155, 125, 63, 242, 254, 24, 63, 58, 49, 16, 63, 27, 195, 106, 62, 115, 249, 127, 63, 221, 137, 142, 62, 76, 156, 125, 63, 221, 137, 142, 62, 76, 156, 125, 63, 107, 75, 35, 63, 58, 78, 9, 63, 212, 4, 143, 62, 107, 249, 127, 63, 224, 195, 166, 62, 152, 52, 123, 63, 224, 195, 166, 62, 152, 52, 123, 63, 122, 189, 46, 63, 93, 144, 4, 63, 127, 40, 168, 62, 6, 122, 125, 63, 8, 150, 189, 62, 102, 123, 118, 63, 8, 150, 189, 62, 102, 123, 118, 63, 30, 228, 58, 63, 38, 38, 2, 63, 196, 214, 191, 62, 225, 146, 120, 63, 233, 32, 210, 62, 59, 159, 111, 63, 233, 32, 210, 62, 59, 159, 111, 63, 182, 71, 71, 63, 234, 38, 2, 63, 151, 39, 213, 62, 64, 116, 113, 63, 132, 154, 227, 62, 148, 227, 102, 63, 132, 154, 227, 62, 148, 227, 102, 63, 43, 111, 83, 63, 138, 146, 4, 63, 109, 73, 231, 62, 20, 100, 104, 63, 10, 86, 241, 62, 52, 158, 92, 63, 10, 86, 241, 62, 52, 158, 92, 63, 28, 226, 94, 63, 217, 81, 9, 63, 2, 137, 245, 62, 78, 187, 93, 63, 53, 203, 250, 62, 26, 52, 81, 63, 53, 203, 250, 62, 26, 52, 81, 63, 79, 47, 105, 63, 246, 53, 16, 63, 206, 88, 255, 62, 208, 226, 81, 63, 158, 157, 255, 62, 246, 21, 69, 63, 158, 157, 255, 62, 246, 21, 69, 63, 93, 241, 113, 63, 32, 250, 24, 63, 112, 44, 2, 63, 163, 79, 69, 63, 160, 158, 255, 62, 126, 187, 56, 63, 160, 158, 255, 62, 126, 187, 56, 63, 237, 210, 120, 63, 118, 72, 35, 63, 112, 44, 2, 63, 2, 126, 56, 63, 37, 207, 250, 62, 130, 158, 44, 63, 37, 207, 250, 62, 130, 158, 44, 63, 249, 89, 255, 62, 48, 236, 43, 63, 189, 143, 125, 63, 121, 187, 46, 63, 154, 92, 241, 62, 122, 53, 33, 63, 154, 92, 241, 62, 122, 53, 33, 63, 142, 139, 245, 62, 25, 21, 32, 63, 114, 249, 127, 63, 38, 226, 58, 63, 27, 164, 227, 62, 28, 240, 22, 63, 27, 164, 227, 62, 28, 240, 22, 63, 30, 78, 231, 62, 192, 108, 21, 63, 114, 249, 127, 63, 184, 68, 71, 63, 162, 44, 210, 62, 100, 51, 14, 63, 162, 44, 210, 62, 100, 51, 14, 63, 153, 45, 213, 62, 236, 91, 12, 63, 236, 144, 125, 63, 199, 106, 83, 63, 192, 161, 189, 62, 185, 85, 7, 63, 192, 161, 189, 62, 185, 85, 7, 63, 235, 219, 191, 62, 59, 60, 5, 63, 224, 213, 120, 63, 0, 221, 94, 63, 115, 205, 166, 62, 60, 155, 2, 63, 115, 205, 166, 62, 60, 155, 2, 63, 215, 42, 168, 62, 110, 84, 0, 63, 65, 246, 113, 63, 118, 42, 105, 63, 27, 145, 142, 62, 24, 50, 0, 63, 27, 145, 142, 62, 24, 50, 0, 63, 113, 4, 143, 62, 240, 168, 251, 62, 217, 53, 105, 63, 182, 237, 113, 63, 66, 184, 107, 62, 158, 49, 0, 63, 66, 184, 107, 62, 158, 49, 0, 63, 85, 194, 106, 62, 254, 168, 251, 62, 114, 234, 94, 63, 132, 208, 120, 63, 61, 68, 59, 62, 82, 153, 2, 63, 61, 68, 59, 62, 82, 153, 2, 63, 255, 122, 56, 62, 228, 83, 0, 63, 105, 121, 83, 63, 147, 142, 125, 63, 236, 159, 13, 62, 132, 82, 7, 63, 236, 159, 13, 62, 132, 82, 7, 63, 117, 30, 9, 62, 8, 59, 5, 63, 181, 83, 71, 63, 82, 249, 127, 63, 82, 20, 201, 61, 175, 46, 14, 63, 82, 20, 201, 61, 175, 46, 14, 63, 153, 249, 188, 61, 169, 89, 12, 63, 235, 240, 58, 63, 115, 249, 127, 63, 230, 45, 131, 61, 86, 234, 22, 63, 230, 45, 131, 61, 86, 234, 22, 63, 119, 228, 104, 61, 214, 105, 21, 63, 7, 202, 46, 63, 18, 143, 125, 63, 142, 127, 24, 61, 182, 47, 33, 63, 142, 127, 24, 61, 182, 47, 33, 63, 185, 207, 237, 60, 156, 18, 32, 63, 54, 87, 35, 63, 32, 209, 120, 63, 69, 172, 153, 60, 208, 153, 44, 63, 69, 172, 153, 60, 208, 153, 44, 63, 149, 165, 33, 60, 26, 235, 43, 63, 179, 9, 25, 63, 59, 238, 113, 63, 184, 11, 25, 60, 244, 183, 56, 63, 184, 11, 25, 60, 244, 183, 56, 63, 119, 187, 209, 56, 71, 126, 56, 63, 172, 70, 16, 63, 29, 43, 105, 63, 117, 235, 24, 60, 109, 18, 69, 63, 117, 235, 24, 60, 109, 18, 69, 63, 50, 169, 209, 56, 233, 79, 69, 63, 132, 99, 9, 63, 44, 221, 94, 63), +"format": 4119, "index_count": 756, -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 192 -} +"index_data": PackedByteArray(24, 0, 108, 0, 22, 0, 24, 0, 112, 0, 108, 0, 57, 0, 183, 0, 59, 0, 57, 0, 179, 0, 183, 0, 6, 0, 72, 0, 4, 0, 6, 0, 76, 0, 72, 0, 39, 0, 147, 0, 41, 0, 39, 0, 143, 0, 147, 0, 58, 0, 177, 0, 56, 0, 58, 0, 181, 0, 177, 0, 21, 0, 110, 0, 23, 0, 21, 0, 106, 0, 110, 0, 40, 0, 141, 0, 38, 0, 40, 0, 145, 0, 141, 0, 3, 0, 74, 0, 5, 0, 3, 0, 68, 0, 74, 0, 22, 0, 104, 0, 20, 0, 22, 0, 108, 0, 104, 0, 55, 0, 179, 0, 57, 0, 55, 0, 175, 0, 179, 0, 4, 0, 66, 0, 2, 0, 4, 0, 72, 0, 66, 0, 37, 0, 143, 0, 39, 0, 37, 0, 139, 0, 143, 0, 56, 0, 173, 0, 54, 0, 56, 0, 177, 0, 173, 0, 19, 0, 106, 0, 21, 0, 19, 0, 102, 0, 106, 0, 38, 0, 137, 0, 36, 0, 38, 0, 141, 0, 137, 0, 20, 0, 100, 0, 18, 0, 20, 0, 104, 0, 100, 0, 53, 0, 175, 0, 55, 0, 53, 0, 171, 0, 175, 0, 1, 0, 68, 0, 3, 0, 1, 0, 71, 0, 68, 0, 35, 0, 139, 0, 37, 0, 35, 0, 135, 0, 139, 0, 54, 0, 169, 0, 52, 0, 54, 0, 173, 0, 169, 0, 2, 0, 65, 0, 0, 0, 2, 0, 66, 0, 65, 0, 17, 0, 102, 0, 19, 0, 17, 0, 98, 0, 102, 0, 36, 0, 133, 0, 34, 0, 36, 0, 137, 0, 133, 0, 18, 0, 96, 0, 16, 0, 18, 0, 100, 0, 96, 0, 51, 0, 171, 0, 53, 0, 51, 0, 167, 0, 171, 0, 33, 0, 135, 0, 35, 0, 33, 0, 131, 0, 135, 0, 52, 0, 165, 0, 50, 0, 52, 0, 169, 0, 165, 0, 15, 0, 98, 0, 17, 0, 15, 0, 94, 0, 98, 0, 34, 0, 128, 0, 32, 0, 34, 0, 133, 0, 128, 0, 16, 0, 92, 0, 14, 0, 16, 0, 96, 0, 92, 0, 5, 0, 1, 0, 3, 0, 1, 0, 61, 0, 63, 0, 61, 0, 57, 0, 59, 0, 57, 0, 53, 0, 55, 0, 53, 0, 49, 0, 51, 0, 49, 0, 45, 0, 47, 0, 45, 0, 41, 0, 43, 0, 41, 0, 37, 0, 39, 0, 37, 0, 33, 0, 35, 0, 33, 0, 29, 0, 31, 0, 29, 0, 25, 0, 27, 0, 25, 0, 21, 0, 23, 0, 21, 0, 17, 0, 19, 0, 17, 0, 13, 0, 15, 0, 13, 0, 9, 0, 11, 0, 9, 0, 5, 0, 7, 0, 5, 0, 61, 0, 1, 0, 61, 0, 53, 0, 57, 0, 53, 0, 45, 0, 49, 0, 45, 0, 37, 0, 41, 0, 37, 0, 29, 0, 33, 0, 29, 0, 21, 0, 25, 0, 21, 0, 13, 0, 17, 0, 13, 0, 5, 0, 9, 0, 5, 0, 53, 0, 61, 0, 53, 0, 37, 0, 45, 0, 37, 0, 21, 0, 29, 0, 21, 0, 5, 0, 13, 0, 5, 0, 37, 0, 53, 0, 37, 0, 5, 0, 21, 0, 49, 0, 167, 0, 51, 0, 49, 0, 163, 0, 167, 0, 31, 0, 131, 0, 33, 0, 31, 0, 126, 0, 131, 0, 62, 0, 2, 0, 0, 0, 2, 0, 6, 0, 4, 0, 6, 0, 10, 0, 8, 0, 10, 0, 14, 0, 12, 0, 14, 0, 18, 0, 16, 0, 18, 0, 22, 0, 20, 0, 22, 0, 26, 0, 24, 0, 26, 0, 30, 0, 28, 0, 30, 0, 34, 0, 32, 0, 34, 0, 38, 0, 36, 0, 38, 0, 42, 0, 40, 0, 42, 0, 46, 0, 44, 0, 46, 0, 50, 0, 48, 0, 50, 0, 54, 0, 52, 0, 54, 0, 58, 0, 56, 0, 58, 0, 62, 0, 60, 0, 62, 0, 6, 0, 2, 0, 6, 0, 14, 0, 10, 0, 14, 0, 22, 0, 18, 0, 22, 0, 30, 0, 26, 0, 30, 0, 38, 0, 34, 0, 38, 0, 46, 0, 42, 0, 46, 0, 54, 0, 50, 0, 54, 0, 62, 0, 58, 0, 62, 0, 14, 0, 6, 0, 14, 0, 30, 0, 22, 0, 30, 0, 46, 0, 38, 0, 46, 0, 62, 0, 54, 0, 62, 0, 30, 0, 14, 0, 30, 0, 62, 0, 46, 0, 64, 0, 69, 0, 70, 0, 64, 0, 67, 0, 69, 0, 67, 0, 75, 0, 69, 0, 67, 0, 73, 0, 75, 0, 73, 0, 79, 0, 75, 0, 73, 0, 77, 0, 79, 0, 77, 0, 83, 0, 79, 0, 77, 0, 81, 0, 83, 0, 81, 0, 87, 0, 83, 0, 81, 0, 85, 0, 87, 0, 85, 0, 91, 0, 87, 0, 85, 0, 89, 0, 91, 0, 89, 0, 95, 0, 91, 0, 89, 0, 93, 0, 95, 0, 93, 0, 99, 0, 95, 0, 93, 0, 97, 0, 99, 0, 97, 0, 103, 0, 99, 0, 97, 0, 101, 0, 103, 0, 101, 0, 107, 0, 103, 0, 101, 0, 105, 0, 107, 0, 105, 0, 111, 0, 107, 0, 105, 0, 109, 0, 111, 0, 109, 0, 115, 0, 111, 0, 109, 0, 113, 0, 115, 0, 113, 0, 119, 0, 115, 0, 113, 0, 117, 0, 119, 0, 117, 0, 123, 0, 119, 0, 117, 0, 121, 0, 123, 0, 121, 0, 127, 0, 123, 0, 121, 0, 125, 0, 127, 0, 125, 0, 130, 0, 127, 0, 125, 0, 129, 0, 130, 0, 129, 0, 134, 0, 130, 0, 129, 0, 132, 0, 134, 0, 132, 0, 138, 0, 134, 0, 132, 0, 136, 0, 138, 0, 136, 0, 142, 0, 138, 0, 136, 0, 140, 0, 142, 0, 140, 0, 146, 0, 142, 0, 140, 0, 144, 0, 146, 0, 144, 0, 150, 0, 146, 0, 144, 0, 148, 0, 150, 0, 148, 0, 154, 0, 150, 0, 148, 0, 152, 0, 154, 0, 152, 0, 158, 0, 154, 0, 152, 0, 156, 0, 158, 0, 156, 0, 162, 0, 158, 0, 156, 0, 160, 0, 162, 0, 160, 0, 166, 0, 162, 0, 160, 0, 164, 0, 166, 0, 164, 0, 170, 0, 166, 0, 164, 0, 168, 0, 170, 0, 168, 0, 174, 0, 170, 0, 168, 0, 172, 0, 174, 0, 172, 0, 178, 0, 174, 0, 172, 0, 176, 0, 178, 0, 176, 0, 182, 0, 178, 0, 176, 0, 180, 0, 182, 0, 180, 0, 186, 0, 182, 0, 180, 0, 184, 0, 186, 0, 184, 0, 190, 0, 186, 0, 184, 0, 188, 0, 190, 0, 188, 0, 70, 0, 190, 0, 188, 0, 64, 0, 70, 0, 5, 0, 78, 0, 7, 0, 5, 0, 74, 0, 78, 0, 42, 0, 145, 0, 40, 0, 42, 0, 149, 0, 145, 0, 23, 0, 114, 0, 25, 0, 23, 0, 110, 0, 114, 0, 60, 0, 181, 0, 58, 0, 60, 0, 185, 0, 181, 0, 41, 0, 151, 0, 43, 0, 41, 0, 147, 0, 151, 0, 8, 0, 76, 0, 6, 0, 8, 0, 80, 0, 76, 0, 59, 0, 187, 0, 61, 0, 59, 0, 183, 0, 187, 0, 26, 0, 112, 0, 24, 0, 26, 0, 116, 0, 112, 0, 7, 0, 82, 0, 9, 0, 7, 0, 78, 0, 82, 0, 44, 0, 149, 0, 42, 0, 44, 0, 153, 0, 149, 0, 25, 0, 118, 0, 27, 0, 25, 0, 114, 0, 118, 0, 62, 0, 185, 0, 60, 0, 62, 0, 189, 0, 185, 0, 43, 0, 155, 0, 45, 0, 43, 0, 151, 0, 155, 0, 10, 0, 80, 0, 8, 0, 10, 0, 84, 0, 80, 0, 61, 0, 191, 0, 63, 0, 61, 0, 187, 0, 191, 0, 28, 0, 116, 0, 26, 0, 28, 0, 120, 0, 116, 0, 9, 0, 86, 0, 11, 0, 9, 0, 82, 0, 86, 0, 46, 0, 153, 0, 44, 0, 46, 0, 157, 0, 153, 0, 27, 0, 122, 0, 29, 0, 27, 0, 118, 0, 122, 0, 0, 0, 189, 0, 62, 0, 0, 0, 65, 0, 189, 0, 45, 0, 159, 0, 47, 0, 45, 0, 155, 0, 159, 0, 12, 0, 84, 0, 10, 0, 12, 0, 88, 0, 84, 0, 63, 0, 71, 0, 1, 0, 63, 0, 191, 0, 71, 0, 30, 0, 120, 0, 28, 0, 30, 0, 124, 0, 120, 0, 11, 0, 90, 0, 13, 0, 11, 0, 86, 0, 90, 0, 48, 0, 157, 0, 46, 0, 48, 0, 161, 0, 157, 0, 29, 0, 126, 0, 31, 0, 29, 0, 122, 0, 126, 0, 47, 0, 163, 0, 49, 0, 47, 0, 159, 0, 163, 0, 14, 0, 88, 0, 12, 0, 14, 0, 92, 0, 88, 0, 32, 0, 124, 0, 30, 0, 32, 0, 128, 0, 124, 0, 13, 0, 94, 0, 15, 0, 13, 0, 90, 0, 94, 0, 50, 0, 161, 0, 48, 0, 50, 0, 165, 0, 161, 0), +"lods": [0.00958653, PackedByteArray(78, 0, 68, 0, 74, 0, 78, 0, 71, 0, 68, 0, 78, 0, 82, 0, 86, 0, 78, 0, 86, 0, 90, 0, 78, 0, 90, 0, 94, 0, 78, 0, 94, 0, 98, 0, 179, 0, 71, 0, 78, 0, 179, 0, 191, 0, 71, 0, 179, 0, 187, 0, 191, 0, 179, 0, 183, 0, 187, 0, 78, 0, 98, 0, 110, 0, 110, 0, 98, 0, 102, 0, 110, 0, 102, 0, 106, 0, 179, 0, 171, 0, 175, 0, 179, 0, 167, 0, 171, 0, 179, 0, 163, 0, 167, 0, 78, 0, 147, 0, 179, 0, 147, 0, 163, 0, 179, 0, 147, 0, 78, 0, 110, 0, 147, 0, 159, 0, 163, 0, 147, 0, 155, 0, 159, 0, 147, 0, 151, 0, 155, 0, 147, 0, 139, 0, 143, 0, 147, 0, 135, 0, 139, 0, 147, 0, 131, 0, 135, 0, 110, 0, 131, 0, 147, 0, 110, 0, 126, 0, 131, 0, 110, 0, 122, 0, 126, 0, 110, 0, 118, 0, 122, 0, 110, 0, 114, 0, 118, 0, 80, 0, 66, 0, 177, 0, 177, 0, 66, 0, 189, 0, 80, 0, 76, 0, 66, 0, 80, 0, 92, 0, 88, 0, 80, 0, 100, 0, 92, 0, 112, 0, 100, 0, 80, 0, 177, 0, 112, 0, 80, 0, 112, 0, 108, 0, 100, 0, 177, 0, 173, 0, 165, 0, 177, 0, 165, 0, 145, 0, 112, 0, 177, 0, 145, 0, 145, 0, 165, 0, 161, 0, 145, 0, 161, 0, 157, 0, 145, 0, 133, 0, 112, 0, 112, 0, 133, 0, 124, 0, 145, 0, 141, 0, 133, 0, 67, 0, 69, 0, 70, 0, 67, 0, 75, 0, 69, 0, 188, 0, 67, 0, 70, 0, 67, 0, 77, 0, 75, 0, 188, 0, 70, 0, 190, 0, 77, 0, 79, 0, 75, 0, 188, 0, 190, 0, 186, 0, 77, 0, 83, 0, 79, 0, 176, 0, 188, 0, 186, 0, 77, 0, 81, 0, 83, 0, 176, 0, 186, 0, 182, 0, 81, 0, 87, 0, 83, 0, 176, 0, 182, 0, 178, 0, 81, 0, 91, 0, 87, 0, 172, 0, 176, 0, 178, 0, 81, 0, 89, 0, 91, 0, 172, 0, 178, 0, 174, 0, 89, 0, 95, 0, 91, 0, 172, 0, 174, 0, 170, 0, 89, 0, 93, 0, 95, 0, 164, 0, 172, 0, 170, 0, 93, 0, 99, 0, 95, 0, 164, 0, 170, 0, 166, 0, 93, 0, 101, 0, 99, 0, 160, 0, 164, 0, 166, 0, 101, 0, 103, 0, 99, 0, 160, 0, 166, 0, 162, 0, 101, 0, 107, 0, 103, 0, 156, 0, 160, 0, 162, 0, 101, 0, 109, 0, 107, 0, 156, 0, 162, 0, 158, 0, 109, 0, 111, 0, 107, 0, 156, 0, 158, 0, 154, 0, 109, 0, 115, 0, 111, 0, 144, 0, 156, 0, 154, 0, 109, 0, 113, 0, 115, 0, 144, 0, 154, 0, 150, 0, 113, 0, 119, 0, 115, 0, 144, 0, 150, 0, 146, 0, 113, 0, 123, 0, 119, 0, 140, 0, 144, 0, 146, 0, 113, 0, 125, 0, 123, 0, 140, 0, 146, 0, 142, 0, 125, 0, 127, 0, 123, 0, 140, 0, 142, 0, 138, 0, 125, 0, 130, 0, 127, 0, 132, 0, 140, 0, 138, 0, 125, 0, 132, 0, 130, 0, 132, 0, 138, 0, 134, 0, 132, 0, 134, 0, 130, 0), 0.0182738, PackedByteArray(147, 0, 135, 0, 143, 0, 110, 0, 135, 0, 147, 0, 110, 0, 126, 0, 135, 0, 110, 0, 118, 0, 126, 0, 147, 0, 78, 0, 110, 0, 78, 0, 102, 0, 110, 0, 78, 0, 94, 0, 102, 0, 78, 0, 86, 0, 94, 0, 78, 0, 147, 0, 179, 0, 179, 0, 71, 0, 78, 0, 179, 0, 191, 0, 71, 0, 147, 0, 167, 0, 179, 0, 179, 0, 167, 0, 175, 0, 147, 0, 159, 0, 167, 0, 165, 0, 66, 0, 65, 0, 165, 0, 65, 0, 189, 0, 66, 0, 96, 0, 88, 0, 66, 0, 104, 0, 96, 0, 165, 0, 104, 0, 66, 0, 104, 0, 165, 0, 133, 0, 133, 0, 165, 0, 157, 0, 104, 0, 133, 0, 124, 0, 64, 0, 67, 0, 70, 0, 188, 0, 64, 0, 70, 0, 67, 0, 79, 0, 70, 0, 188, 0, 70, 0, 190, 0, 67, 0, 87, 0, 79, 0, 67, 0, 95, 0, 87, 0, 67, 0, 89, 0, 95, 0, 89, 0, 97, 0, 95, 0, 97, 0, 103, 0, 95, 0, 164, 0, 188, 0, 190, 0, 164, 0, 190, 0, 178, 0, 164, 0, 178, 0, 174, 0, 164, 0, 174, 0, 166, 0, 156, 0, 164, 0, 166, 0, 156, 0, 166, 0, 158, 0, 97, 0, 105, 0, 103, 0, 105, 0, 111, 0, 103, 0, 105, 0, 119, 0, 111, 0, 105, 0, 127, 0, 119, 0, 105, 0, 125, 0, 127, 0, 125, 0, 134, 0, 127, 0, 132, 0, 156, 0, 158, 0, 125, 0, 132, 0, 134, 0, 132, 0, 158, 0, 146, 0, 132, 0, 142, 0, 134, 0, 132, 0, 146, 0, 142, 0), 0.0249856, PackedByteArray(137, 0, 104, 0, 66, 0, 165, 0, 137, 0, 66, 0, 78, 0, 147, 0, 179, 0, 147, 0, 78, 0, 110, 0, 67, 0, 79, 0, 178, 0, 67, 0, 105, 0, 79, 0, 164, 0, 67, 0, 178, 0, 105, 0, 111, 0, 79, 0, 164, 0, 178, 0, 146, 0, 105, 0, 136, 0, 111, 0, 136, 0, 164, 0, 146, 0, 136, 0, 146, 0, 111, 0), 0.0341249, PackedByteArray(137, 0, 104, 0, 66, 0, 66, 0, 104, 0, 88, 0, 157, 0, 137, 0, 66, 0, 78, 0, 102, 0, 110, 0, 110, 0, 126, 0, 143, 0, 110, 0, 143, 0, 147, 0, 147, 0, 78, 0, 110, 0, 78, 0, 147, 0, 179, 0, 147, 0, 175, 0, 179, 0, 179, 0, 191, 0, 78, 0, 67, 0, 79, 0, 190, 0, 67, 0, 103, 0, 79, 0, 67, 0, 89, 0, 103, 0, 89, 0, 105, 0, 103, 0, 105, 0, 111, 0, 103, 0, 156, 0, 67, 0, 190, 0, 156, 0, 190, 0, 178, 0, 156, 0, 178, 0, 174, 0, 156, 0, 174, 0, 146, 0, 105, 0, 136, 0, 111, 0, 136, 0, 156, 0, 146, 0, 136, 0, 127, 0, 111, 0, 136, 0, 146, 0, 142, 0, 136, 0, 142, 0, 127, 0)], +"material": SubResource("StandardMaterial3D_3anyq"), +"primitive": 3, +"vertex_count": 192, +"vertex_data": PackedByteArray(0, 0, 0, 0, 112, 18, 131, 187, 10, 215, 163, 189, 189, 149, 0, 0, 16, 154, 87, 183, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 189, 255, 127, 65, 234, 148, 101, 94, 183, 115, 181, 127, 60, 112, 18, 131, 187, 29, 177, 160, 189, 210, 152, 30, 4, 227, 154, 254, 183, 115, 181, 127, 60, 0, 0, 0, 0, 29, 177, 160, 189, 225, 123, 44, 231, 61, 102, 6, 183, 161, 203, 250, 60, 112, 18, 131, 187, 80, 94, 151, 189, 255, 154, 232, 7, 172, 155, 239, 184, 161, 203, 250, 60, 0, 0, 0, 0, 80, 94, 151, 189, 23, 120, 255, 228, 230, 102, 253, 182, 156, 12, 54, 61, 112, 18, 131, 187, 93, 58, 136, 189, 75, 156, 85, 11, 78, 156, 32, 186, 156, 12, 54, 61, 0, 0, 0, 0, 93, 58, 136, 189, 170, 116, 179, 227, 73, 103, 73, 183, 106, 180, 103, 61, 112, 18, 131, 187, 106, 180, 103, 189, 185, 156, 92, 14, 233, 156, 144, 187, 106, 180, 103, 61, 0, 0, 0, 0, 106, 180, 103, 189, 162, 113, 69, 227, 99, 103, 232, 183, 93, 58, 136, 61, 112, 18, 131, 187, 156, 12, 54, 189, 75, 156, 246, 16, 95, 157, 53, 189, 93, 58, 136, 61, 0, 0, 0, 0, 156, 12, 54, 189, 9, 111, 179, 227, 36, 103, 213, 184, 80, 94, 151, 61, 112, 18, 131, 187, 161, 203, 250, 188, 255, 154, 23, 19, 200, 157, 10, 191, 80, 94, 151, 61, 0, 0, 0, 0, 161, 203, 250, 188, 232, 108, 255, 228, 145, 102, 11, 186, 29, 177, 160, 61, 112, 18, 131, 187, 115, 181, 127, 188, 210, 152, 180, 20, 47, 157, 254, 192, 29, 177, 160, 61, 0, 0, 0, 0, 115, 181, 127, 188, 75, 107, 44, 231, 166, 101, 129, 187, 10, 215, 163, 61, 112, 18, 131, 187, 0, 0, 0, 128, 189, 149, 189, 21, 191, 155, 214, 194, 10, 215, 163, 61, 0, 0, 0, 0, 0, 0, 0, 128, 65, 106, 65, 234, 111, 100, 45, 189, 29, 177, 160, 61, 112, 18, 131, 187, 115, 181, 127, 60, 179, 148, 210, 24, 142, 154, 129, 196, 29, 177, 160, 61, 0, 0, 0, 0, 115, 181, 127, 60, 44, 103, 74, 235, 1, 99, 6, 191, 80, 94, 151, 61, 112, 18, 131, 187, 161, 203, 250, 60, 22, 147, 255, 26, 165, 153, 246, 197, 80, 94, 151, 61, 0, 0, 0, 0, 161, 203, 250, 60, 255, 100, 231, 236, 90, 98, 248, 192, 93, 58, 136, 61, 112, 18, 131, 187, 156, 12, 54, 61, 245, 144, 75, 28, 251, 152, 41, 199, 93, 58, 136, 61, 0, 0, 0, 0, 156, 12, 54, 61, 179, 99, 8, 239, 164, 98, 202, 194, 106, 180, 103, 61, 112, 18, 131, 187, 106, 180, 103, 61, 92, 142, 185, 28, 164, 152, 22, 200, 106, 180, 103, 61, 0, 0, 0, 0, 106, 180, 103, 61, 69, 99, 162, 241, 10, 99, 109, 196, 156, 12, 54, 61, 112, 18, 131, 187, 93, 58, 136, 61, 84, 139, 75, 28, 179, 152, 180, 200, 156, 12, 54, 61, 0, 0, 0, 0, 93, 58, 136, 61, 179, 99, 169, 244, 140, 99, 218, 197, 161, 203, 250, 60, 112, 18, 131, 187, 80, 94, 151, 61, 231, 135, 255, 26, 27, 153, 0, 201, 161, 203, 250, 60, 0, 0, 0, 0, 80, 94, 151, 61, 255, 100, 22, 248, 47, 100, 11, 199, 115, 181, 127, 60, 112, 18, 131, 187, 29, 177, 160, 61, 29, 132, 210, 24, 128, 153, 252, 200, 115, 181, 127, 60, 0, 0, 0, 0, 29, 177, 160, 61, 44, 103, 224, 251, 215, 100, 248, 199, 0, 0, 0, 0, 112, 18, 131, 187, 10, 215, 163, 61, 255, 127, 189, 21, 16, 154, 167, 200, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 61, 189, 149, 255, 255, 148, 101, 159, 200, 115, 181, 127, 188, 112, 18, 131, 187, 29, 177, 160, 61, 225, 123, 210, 24, 227, 154, 255, 199, 115, 181, 127, 188, 0, 0, 0, 0, 29, 177, 160, 61, 210, 152, 224, 251, 67, 102, 248, 200, 161, 203, 250, 188, 112, 18, 131, 187, 80, 94, 151, 61, 23, 120, 255, 26, 173, 155, 15, 199, 161, 203, 250, 188, 0, 0, 0, 0, 80, 94, 151, 61, 255, 154, 22, 248, 231, 102, 0, 201, 156, 12, 54, 189, 112, 18, 131, 187, 93, 58, 136, 61, 170, 116, 75, 28, 78, 156, 222, 197, 156, 12, 54, 189, 0, 0, 0, 0, 93, 58, 136, 61, 75, 156, 169, 244, 74, 103, 180, 200, 106, 180, 103, 189, 112, 18, 131, 187, 106, 180, 103, 61, 162, 113, 185, 28, 233, 156, 110, 196, 106, 180, 103, 189, 0, 0, 0, 0, 106, 180, 103, 61, 185, 156, 162, 241, 98, 103, 22, 200, 93, 58, 136, 189, 112, 18, 131, 187, 156, 12, 54, 61, 9, 111, 75, 28, 95, 157, 201, 194, 93, 58, 136, 189, 0, 0, 0, 0, 156, 12, 54, 61, 75, 156, 8, 239, 37, 103, 40, 199, 80, 94, 151, 189, 112, 18, 131, 187, 161, 203, 250, 60, 232, 108, 255, 26, 200, 157, 243, 192, 80, 94, 151, 189, 0, 0, 0, 0, 161, 203, 250, 60, 255, 154, 231, 236, 142, 102, 243, 197, 29, 177, 160, 189, 112, 18, 131, 187, 115, 181, 127, 60, 75, 107, 210, 24, 47, 157, 0, 191, 29, 177, 160, 189, 0, 0, 0, 0, 115, 181, 127, 60, 210, 152, 74, 235, 163, 101, 125, 196, 10, 215, 163, 189, 112, 18, 131, 187, 0, 0, 0, 128, 65, 106, 189, 21, 191, 155, 40, 189, 10, 215, 163, 189, 0, 0, 0, 0, 0, 0, 0, 128, 189, 149, 65, 234, 107, 100, 209, 194, 29, 177, 160, 189, 112, 18, 131, 187, 115, 181, 127, 188, 44, 103, 180, 20, 142, 154, 124, 187, 29, 177, 160, 189, 0, 0, 0, 0, 115, 181, 127, 188, 179, 148, 44, 231, 253, 98, 248, 192, 80, 94, 151, 189, 112, 18, 131, 187, 161, 203, 250, 188, 255, 100, 23, 19, 165, 153, 8, 186, 80, 94, 151, 189, 0, 0, 0, 0, 161, 203, 250, 188, 22, 147, 255, 228, 86, 98, 6, 191, 93, 58, 136, 189, 112, 18, 131, 187, 156, 12, 54, 189, 179, 99, 246, 16, 251, 152, 212, 184, 93, 58, 136, 189, 0, 0, 0, 0, 156, 12, 54, 189, 245, 144, 179, 227, 156, 98, 53, 189, 106, 180, 103, 189, 112, 18, 131, 187, 106, 180, 103, 189, 69, 99, 92, 14, 164, 152, 232, 183, 106, 180, 103, 189, 0, 0, 0, 0, 106, 180, 103, 189, 92, 142, 69, 227, 2, 99, 146, 187, 156, 12, 54, 189, 112, 18, 131, 187, 93, 58, 136, 189, 179, 99, 85, 11, 179, 152, 73, 183, 156, 12, 54, 189, 0, 0, 0, 0, 93, 58, 136, 189, 84, 139, 179, 227, 126, 99, 38, 186, 161, 203, 250, 188, 112, 18, 131, 187, 80, 94, 151, 189, 255, 100, 232, 7, 27, 153, 253, 182, 161, 203, 250, 188, 0, 0, 0, 0, 80, 94, 151, 189, 231, 135, 255, 228, 40, 100, 243, 184, 115, 181, 127, 188, 112, 18, 131, 187, 29, 177, 160, 189, 44, 103, 30, 4, 128, 153, 2, 183, 115, 181, 127, 188, 0, 0, 0, 0, 29, 177, 160, 189, 29, 132, 44, 231, 220, 100, 4, 184, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 189, 255, 255, 255, 255, 76, 159, 166, 143, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 189, 145, 164, 0, 0, 163, 151, 22, 177, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 189, 241, 168, 203, 6, 169, 152, 33, 178, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 189, 255, 255, 194, 234, 97, 170, 103, 153, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 189, 52, 121, 13, 215, 211, 104, 148, 176, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 189, 255, 255, 194, 234, 52, 169, 178, 152, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 189, 255, 255, 255, 255, 127, 157, 191, 142, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 189, 255, 127, 108, 219, 214, 103, 41, 177, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 189, 238, 171, 222, 12, 180, 153, 161, 179, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 189, 255, 255, 129, 218, 181, 175, 188, 161, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 189, 33, 115, 15, 212, 163, 105, 126, 176, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 189, 255, 255, 129, 218, 252, 174, 57, 161, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 189, 172, 173, 75, 18, 181, 154, 149, 181, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 189, 255, 255, 186, 204, 214, 176, 188, 168, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 189, 180, 109, 82, 210, 44, 106, 237, 176, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 189, 255, 255, 186, 204, 109, 176, 100, 168, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 189, 62, 174, 31, 23, 165, 155, 251, 183, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 189, 255, 255, 255, 191, 225, 174, 225, 174, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 189, 224, 104, 192, 209, 86, 106, 226, 177, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 189, 255, 255, 255, 191, 170, 174, 170, 174, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 189, 172, 173, 97, 27, 131, 156, 213, 186, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 189, 255, 255, 68, 179, 84, 170, 215, 180, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 189, 158, 100, 82, 210, 10, 106, 94, 179, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 189, 255, 255, 68, 179, 62, 170, 187, 180, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 189, 238, 171, 16, 31, 90, 157, 39, 190, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 189, 255, 255, 124, 165, 247, 162, 178, 187, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 189, 238, 96, 15, 212, 54, 105, 92, 181, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 189, 255, 255, 124, 165, 242, 162, 169, 187, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 188, 241, 168, 38, 34, 122, 156, 216, 193, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 188, 255, 255, 59, 149, 155, 147, 229, 196, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 188, 216, 93, 13, 215, 214, 103, 215, 183, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 188, 255, 255, 59, 149, 155, 147, 229, 196, 174, 71, 225, 61, 104, 18, 3, 60, 0, 0, 0, 128, 145, 164, 146, 36, 38, 154, 58, 197, 174, 71, 225, 61, 104, 18, 3, 60, 0, 0, 0, 128, 255, 255, 255, 127, 255, 127, 176, 206, 174, 71, 225, 61, 160, 155, 68, 60, 0, 0, 0, 128, 109, 91, 108, 219, 240, 101, 201, 186, 174, 71, 225, 61, 160, 155, 68, 60, 0, 0, 0, 128, 255, 255, 255, 127, 255, 127, 166, 206, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 60, 38, 162, 241, 40, 64, 152, 42, 200, 136, 243, 220, 61, 104, 18, 3, 60, 194, 204, 175, 60, 194, 234, 255, 127, 83, 113, 200, 211, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 60, 13, 87, 216, 221, 146, 99, 41, 190, 136, 243, 220, 61, 160, 155, 68, 60, 194, 204, 175, 60, 194, 234, 255, 127, 74, 113, 171, 211, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 61, 16, 159, 239, 43, 211, 150, 162, 202, 175, 33, 208, 61, 104, 18, 3, 60, 254, 107, 44, 61, 129, 218, 255, 127, 223, 104, 133, 216, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 61, 16, 84, 238, 224, 160, 98, 214, 193, 175, 33, 208, 61, 160, 155, 68, 60, 254, 107, 44, 61, 129, 218, 255, 127, 189, 104, 75, 216, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 61, 96, 155, 172, 45, 232, 149, 159, 204, 64, 80, 187, 61, 104, 18, 3, 60, 86, 81, 122, 61, 186, 204, 255, 127, 167, 100, 220, 221, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 61, 82, 82, 157, 228, 85, 99, 32, 197, 64, 80, 187, 61, 160, 155, 68, 60, 86, 81, 122, 61, 186, 204, 255, 127, 89, 100, 123, 221, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 61, 30, 151, 62, 46, 127, 149, 27, 206, 9, 76, 159, 61, 104, 18, 3, 60, 9, 76, 159, 61, 255, 191, 255, 127, 143, 100, 142, 228, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 61, 192, 81, 223, 232, 21, 100, 244, 199, 9, 76, 159, 61, 160, 155, 68, 60, 9, 76, 159, 61, 255, 191, 255, 127, 243, 99, 243, 227, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 61, 74, 146, 172, 45, 137, 149, 19, 207, 86, 81, 122, 61, 104, 18, 3, 60, 64, 80, 187, 61, 68, 179, 255, 127, 194, 105, 114, 237, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 61, 82, 82, 179, 237, 231, 100, 84, 202, 86, 81, 122, 61, 160, 155, 68, 60, 64, 80, 187, 61, 68, 179, 255, 127, 158, 104, 126, 236, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 61, 221, 140, 239, 43, 246, 149, 135, 207, 254, 107, 44, 61, 104, 18, 3, 60, 175, 33, 208, 61, 124, 165, 255, 127, 234, 118, 146, 249, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 61, 16, 84, 32, 243, 208, 101, 69, 204, 254, 107, 44, 61, 160, 155, 68, 60, 175, 33, 208, 61, 124, 165, 255, 127, 209, 116, 23, 248, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 61, 202, 134, 241, 40, 179, 150, 119, 207, 194, 204, 175, 60, 104, 18, 3, 60, 136, 243, 220, 61, 59, 149, 255, 127, 64, 143, 162, 249, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 61, 13, 87, 51, 249, 209, 102, 198, 205, 194, 204, 175, 60, 160, 155, 68, 60, 136, 243, 220, 61, 59, 149, 255, 127, 118, 140, 204, 250, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 61, 255, 127, 146, 36, 163, 151, 231, 206, 0, 0, 0, 0, 104, 18, 3, 60, 174, 71, 225, 61, 255, 127, 255, 127, 76, 159, 88, 240, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 61, 255, 127, 255, 127, 127, 157, 63, 241, 0, 0, 0, 0, 160, 155, 68, 60, 174, 71, 225, 61, 145, 164, 255, 255, 222, 103, 213, 206, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 61, 195, 106, 255, 127, 97, 170, 150, 230, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 61, 52, 121, 241, 40, 169, 152, 221, 205, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 61, 195, 106, 255, 127, 52, 169, 75, 231, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 61, 241, 168, 51, 249, 217, 104, 106, 207, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 61, 130, 90, 255, 127, 181, 175, 66, 222, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 61, 33, 115, 239, 43, 180, 153, 92, 204, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 61, 130, 90, 255, 127, 252, 174, 196, 222, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 61, 238, 171, 32, 243, 166, 105, 128, 207, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 61, 186, 76, 255, 127, 214, 176, 66, 215, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 61, 180, 109, 172, 45, 181, 154, 104, 202, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 61, 186, 76, 255, 127, 108, 176, 154, 215, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 61, 172, 173, 179, 237, 47, 106, 17, 207, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 61, 255, 63, 255, 127, 225, 174, 29, 209, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 61, 224, 104, 62, 46, 165, 155, 3, 200, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 61, 255, 63, 255, 127, 170, 174, 83, 209, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 61, 62, 174, 223, 232, 88, 106, 27, 206, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 61, 68, 51, 255, 127, 84, 170, 38, 203, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 61, 158, 100, 172, 45, 131, 156, 41, 197, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 61, 68, 51, 255, 127, 62, 170, 67, 203, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 61, 172, 173, 157, 228, 11, 106, 159, 204, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 61, 125, 37, 255, 127, 247, 162, 76, 196, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 61, 238, 96, 239, 43, 90, 157, 215, 193, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 61, 125, 37, 255, 127, 242, 162, 85, 196, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 61, 238, 171, 238, 224, 54, 105, 161, 202, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 60, 60, 21, 255, 127, 155, 147, 24, 187, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 60, 216, 93, 241, 40, 122, 156, 38, 190, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 60, 60, 21, 255, 127, 155, 147, 25, 187, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 60, 241, 168, 216, 221, 212, 103, 39, 200, 174, 71, 225, 189, 104, 18, 3, 60, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 77, 177, 174, 71, 225, 189, 104, 18, 3, 60, 0, 0, 0, 128, 109, 91, 146, 36, 38, 154, 196, 186, 174, 71, 225, 189, 160, 155, 68, 60, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 87, 177, 174, 71, 225, 189, 160, 155, 68, 60, 0, 0, 0, 128, 145, 164, 108, 219, 237, 101, 54, 197, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 188, 0, 0, 59, 149, 83, 113, 53, 172, 136, 243, 220, 189, 104, 18, 3, 60, 194, 204, 175, 188, 13, 87, 38, 34, 64, 152, 212, 183, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 188, 0, 0, 59, 149, 74, 113, 83, 172, 136, 243, 220, 189, 160, 155, 68, 60, 194, 204, 175, 188, 38, 162, 13, 215, 142, 99, 213, 193, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 189, 0, 0, 124, 165, 223, 104, 121, 167, 175, 33, 208, 189, 104, 18, 3, 60, 254, 107, 44, 189, 16, 84, 16, 31, 211, 150, 91, 181, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 189, 0, 0, 124, 165, 189, 104, 178, 167, 175, 33, 208, 189, 160, 155, 68, 60, 254, 107, 44, 189, 16, 159, 15, 212, 153, 98, 41, 190, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 189, 0, 0, 68, 179, 167, 100, 33, 162, 64, 80, 187, 189, 104, 18, 3, 60, 86, 81, 122, 189, 82, 82, 97, 27, 232, 149, 95, 179, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 189, 0, 0, 68, 179, 89, 100, 131, 162, 64, 80, 187, 189, 160, 155, 68, 60, 86, 81, 122, 189, 96, 155, 82, 210, 78, 99, 223, 186, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 189, 0, 0, 255, 191, 143, 100, 111, 155, 9, 76, 159, 189, 104, 18, 3, 60, 9, 76, 159, 189, 192, 81, 31, 23, 127, 149, 226, 177, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 189, 0, 0, 255, 191, 243, 99, 11, 156, 9, 76, 159, 189, 160, 155, 68, 60, 9, 76, 159, 189, 30, 151, 192, 209, 14, 100, 12, 184, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 189, 0, 0, 186, 204, 194, 105, 139, 146, 86, 81, 122, 189, 104, 18, 3, 60, 64, 80, 187, 189, 82, 82, 75, 18, 137, 149, 234, 176, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 189, 0, 0, 186, 204, 158, 104, 127, 147, 86, 81, 122, 189, 160, 155, 68, 60, 64, 80, 187, 189, 74, 146, 82, 210, 224, 100, 171, 181, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 189, 0, 0, 129, 218, 234, 118, 107, 134, 254, 107, 44, 189, 104, 18, 3, 60, 175, 33, 208, 189, 16, 84, 222, 12, 246, 149, 118, 176, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 189, 0, 0, 129, 218, 209, 116, 231, 135, 254, 107, 44, 189, 160, 155, 68, 60, 175, 33, 208, 189, 221, 140, 15, 212, 202, 101, 186, 179, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 189, 0, 0, 194, 234, 64, 143, 91, 134, 194, 204, 175, 188, 104, 18, 3, 60, 136, 243, 220, 189, 13, 87, 203, 6, 179, 150, 134, 176, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 189, 0, 0, 194, 234, 118, 140, 50, 133, 194, 204, 175, 188, 160, 155, 68, 60, 136, 243, 220, 189, 202, 134, 13, 215, 202, 102, 56, 178) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_eeav4") -[sub_resource type="ConvexPolygonShape" id=2] -margin = 0.002 -points = PoolVector3Array( 0.11, 0.012, -7.45058e-09, 0.107868, 0.012, 0.0214487, 0.11, 0.00799843, -7.45058e-09, 0.107868, 0.012, -0.0214702, 0.107868, 0.00799843, 0.0214487, 0.101623, 0.012, 0.0420791, 0.0784514, -0.004, 0.0155912, 0.0799804, -0.004, -7.45058e-09, 0.0784514, -0.004, -0.0156128, 0.107868, 0.00799843, -0.0214702, 0.101623, 0.012, -0.0421006, 0.101623, 0.00799843, 0.0420791, 0.0914585, 0.012, 0.0610944, 0.0739076, -0.004, 0.030601, 0.0739076, -0.004, -0.0306226, 0.101623, 0.00799843, -0.0421006, 0.0914585, 0.012, -0.0611159, 0.0914585, 0.00799843, 0.0610944, 0.0777623, 0.012, 0.0777623, 0.0664996, -0.004, 0.0444264, 0.0664996, -0.004, -0.0444479, 0.0914585, 0.00799843, -0.0611159, 0.0777623, 0.012, -0.0777839, 0.0565505, -0.004, 0.0565505, 0.0777623, 0.00799843, 0.0777623, 0.0610944, 0.012, 0.0914585, 0.0565505, -0.004, -0.056572, 0.0777623, 0.00799843, -0.0777839, 0.0610944, 0.012, -0.09148, 0.0610944, 0.00799843, 0.0914585, 0.0444264, -0.004, 0.0664996, 0.0420791, 0.012, 0.101623, 0.0444264, -0.004, -0.0665211, 0.0610944, 0.00799843, -0.09148, 0.0420791, 0.012, -0.101644, 0.0420791, 0.00799843, 0.101623, 0.030601, -0.004, 0.0739076, 0.0214487, 0.012, 0.107868, 0.030601, -0.004, -0.0739291, 0.0420791, 0.00799843, -0.101644, 0.0214487, 0.012, -0.10789, 0.0214487, 0.00799843, 0.107868, 0.0155912, -0.004, 0.0784514, -7.45058e-09, 0.012, 0.11, 0.0155912, -0.004, -0.078473, 0.0214487, 0.00799843, -0.10789, -7.45058e-09, 0.012, -0.11, -7.45058e-09, 0.00799843, 0.11, -7.45058e-09, -0.004, 0.0799804, -0.0214702, 0.012, 0.107868, -7.45058e-09, -0.004, -0.080002, -7.45058e-09, 0.00799843, -0.11, -0.0214702, 0.012, -0.10789, -0.0214702, 0.00799843, 0.107868, -0.0156128, -0.004, 0.0784514, -0.0421006, 0.012, 0.101623, -0.0156128, -0.004, -0.078473, -0.0214702, 0.00799843, -0.10789, -0.0421006, 0.012, -0.101644, -0.0421006, 0.00799843, 0.101623, -0.0306226, -0.004, 0.0739076, -0.0611159, 0.012, 0.0914585, -0.0306226, -0.004, -0.0739291, -0.0421006, 0.00799843, -0.101644, -0.0611159, 0.012, -0.09148, -0.0611159, 0.00799843, 0.0914585, -0.0444479, -0.004, 0.0664996, -0.0777839, 0.012, 0.0777623, -0.0444479, -0.004, -0.0665211, -0.0611159, 0.00799843, -0.09148, -0.0777839, 0.012, -0.0777839, -0.0777839, 0.00799843, 0.0777623, -0.056572, -0.004, 0.0565505, -0.09148, 0.012, 0.0610944, -0.056572, -0.004, -0.056572, -0.0777839, 0.00799843, -0.0777839, -0.09148, 0.012, -0.0611159, -0.09148, 0.00799843, 0.0610944, -0.0665211, -0.004, 0.0444264, -0.101644, 0.012, 0.0420791, -0.0665211, -0.004, -0.0444479, -0.09148, 0.00799843, -0.0611159, -0.101644, 0.012, -0.0421006, -0.101644, 0.00799843, 0.0420791, -0.0739291, -0.004, 0.030601, -0.10789, 0.012, 0.0214487, -0.0739291, -0.004, -0.0306226, -0.101644, 0.00799843, -0.0421006, -0.10789, 0.012, -0.0214702, -0.10789, 0.00799843, 0.0214487, -0.078473, -0.004, 0.0155912, -0.11, 0.012, -7.45058e-09, -0.078473, -0.004, -0.0156128, -0.10789, 0.00799843, -0.0214702, -0.11, 0.00799843, -7.45058e-09, -0.080002, -0.004, -7.45058e-09 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_v45tx"] +points = PackedVector3Array(0.11, 0.012, -7.45058e-09, 0.107868, 0.012, 0.0214487, 0.11, 0.00799843, -7.45058e-09, 0.107868, 0.012, -0.0214702, 0.107868, 0.00799843, 0.0214487, 0.101623, 0.012, 0.0420791, 0.0784514, -0.004, 0.0155912, 0.0799804, -0.004, -7.45058e-09, 0.0784514, -0.004, -0.0156128, 0.107868, 0.00799843, -0.0214702, 0.101623, 0.012, -0.0421006, 0.101623, 0.00799843, 0.0420791, 0.0914585, 0.012, 0.0610944, 0.0739076, -0.004, 0.030601, 0.0739076, -0.004, -0.0306226, 0.101623, 0.00799843, -0.0421006, 0.0914585, 0.012, -0.0611159, 0.0914585, 0.00799843, 0.0610944, 0.0777623, 0.012, 0.0777623, 0.0664996, -0.004, 0.0444264, 0.0664996, -0.004, -0.0444479, 0.0914585, 0.00799843, -0.0611159, 0.0777623, 0.012, -0.0777839, 0.0565505, -0.004, 0.0565505, 0.0777623, 0.00799843, 0.0777623, 0.0610944, 0.012, 0.0914585, 0.0565505, -0.004, -0.056572, 0.0777623, 0.00799843, -0.0777839, 0.0610944, 0.012, -0.09148, 0.0610944, 0.00799843, 0.0914585, 0.0444264, -0.004, 0.0664996, 0.0420791, 0.012, 0.101623, 0.0444264, -0.004, -0.0665211, 0.0610944, 0.00799843, -0.09148, 0.0420791, 0.012, -0.101644, 0.0420791, 0.00799843, 0.101623, 0.030601, -0.004, 0.0739076, 0.0214487, 0.012, 0.107868, 0.030601, -0.004, -0.0739291, 0.0420791, 0.00799843, -0.101644, 0.0214487, 0.012, -0.10789, 0.0214487, 0.00799843, 0.107868, 0.0155912, -0.004, 0.0784514, -7.45058e-09, 0.012, 0.11, 0.0155912, -0.004, -0.078473, 0.0214487, 0.00799843, -0.10789, -7.45058e-09, 0.012, -0.11, -7.45058e-09, 0.00799843, 0.11, -7.45058e-09, -0.004, 0.0799804, -0.0214702, 0.012, 0.107868, -7.45058e-09, -0.004, -0.080002, -7.45058e-09, 0.00799843, -0.11, -0.0214702, 0.012, -0.10789, -0.0214702, 0.00799843, 0.107868, -0.0156128, -0.004, 0.0784514, -0.0421006, 0.012, 0.101623, -0.0156128, -0.004, -0.078473, -0.0214702, 0.00799843, -0.10789, -0.0421006, 0.012, -0.101644, -0.0421006, 0.00799843, 0.101623, -0.0306226, -0.004, 0.0739076, -0.0611159, 0.012, 0.0914585, -0.0306226, -0.004, -0.0739291, -0.0421006, 0.00799843, -0.101644, -0.0611159, 0.012, -0.09148, -0.0611159, 0.00799843, 0.0914585, -0.0444479, -0.004, 0.0664996, -0.0777839, 0.012, 0.0777623, -0.0444479, -0.004, -0.0665211, -0.0611159, 0.00799843, -0.09148, -0.0777839, 0.012, -0.0777839, -0.0777839, 0.00799843, 0.0777623, -0.056572, -0.004, 0.0565505, -0.09148, 0.012, 0.0610944, -0.056572, -0.004, -0.056572, -0.0777839, 0.00799843, -0.0777839, -0.09148, 0.012, -0.0611159, -0.09148, 0.00799843, 0.0610944, -0.0665211, -0.004, 0.0444264, -0.101644, 0.012, 0.0420791, -0.0665211, -0.004, -0.0444479, -0.09148, 0.00799843, -0.0611159, -0.101644, 0.012, -0.0421006, -0.101644, 0.00799843, 0.0420791, -0.0739291, -0.004, 0.030601, -0.10789, 0.012, 0.0214487, -0.0739291, -0.004, -0.0306226, -0.101644, 0.00799843, -0.0421006, -0.10789, 0.012, -0.0214702, -0.10789, 0.00799843, 0.0214487, -0.078473, -0.004, 0.0155912, -0.11, 0.012, -7.45058e-09, -0.078473, -0.004, -0.0156128, -0.10789, 0.00799843, -0.0214702, -0.11, 0.00799843, -7.45058e-09, -0.080002, -0.004, -7.45058e-09) -[node name="Saucer" type="StaticBody"] +[node name="Saucer" type="StaticBody3D"] collision_mask = 0 -[node name="Saucer" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) +[node name="Saucer" type="MeshInstance3D" parent="."] +gi_mode = 0 +mesh = SubResource("ArrayMesh_le8dc") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("1_ycnf3") -[node name="CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 2 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_v45tx") -[node name="SnapZoneTeacup" parent="." instance=ExtResource( 1 )] +[node name="SnapZoneTeacup" parent="." instance=ExtResource("1")] snap_mode = 1 snap_require = "Teacup" diff --git a/scenes/pickable_demo/objects/snap_toy_red.tscn b/scenes/pickable_demo/objects/snap_toy_red.tscn index 2ae30f53..3f1ad2b1 100644 --- a/scenes/pickable_demo/objects/snap_toy_red.tscn +++ b/scenes/pickable_demo/objects/snap_toy_red.tscn @@ -1,31 +1,34 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=6 format=3 uid="uid://cf024hg5alcif"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=2] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="2"] -[sub_resource type="ConvexPolygonShape" id=17] +[sub_resource type="ConvexPolygonShape3D" id="17"] margin = 0.01 -points = PoolVector3Array( -6.78003e-06, -0.04, 0.04, -6.78003e-06, 0.04, 0, -0.034641, -0.04, 0.02, 0.0346342, -0.04, 0.02, 0.0346342, -0.04, -0.0200078, -6.78003e-06, -0.04, -0.04, -0.034641, -0.04, -0.02 ) +points = PackedVector3Array(-6.78003e-06, -0.04, 0.04, -6.78003e-06, 0.04, 0, -0.034641, -0.04, 0.02, 0.0346342, -0.04, 0.02, 0.0346342, -0.04, -0.0200078, -6.78003e-06, -0.04, -0.04, -0.034641, -0.04, -0.02) -[sub_resource type="CylinderMesh" id=1] +[sub_resource type="CylinderMesh" id="1"] top_radius = 0.0 bottom_radius = 0.04 height = 0.08 radial_segments = 6 rings = 0 -[sub_resource type="SpatialMaterial" id=2] -albedo_color = Color( 1, 0, 0, 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_byqew"] +albedo_color = Color(1, 0, 0, 1) -[node name="SnapToyRed" groups=["SnapToy", "SnapToyRed"] instance=ExtResource( 1 )] +[node name="SnapToyRed" groups=["SnapToy", "SnapToyRed"] instance=ExtResource("1")] +collision_layer = 4 collision_mask = 65543 +reset_transform_on_pickup = false +picked_up_layer = 65536 ranged_grab_method = 0 -[node name="CollisionShape" parent="." index="0"] -shape = SubResource( 17 ) +[node name="CollisionShape3D" parent="." index="1"] +shape = SubResource("17") -[node name="MeshInstance" type="MeshInstance" parent="." index="1"] -mesh = SubResource( 1 ) -material/0 = SubResource( 2 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="2"] +mesh = SubResource("1") +surface_material_override/0 = SubResource("StandardMaterial3D_byqew") -[node name="HighlightRing" parent="." index="2" instance=ExtResource( 2 )] +[node name="HighlightRing" parent="." index="3" instance=ExtResource("2")] diff --git a/scenes/pickable_demo/objects/snap_toy_yellow.tscn b/scenes/pickable_demo/objects/snap_toy_yellow.tscn index d4027065..c159fbc6 100644 --- a/scenes/pickable_demo/objects/snap_toy_yellow.tscn +++ b/scenes/pickable_demo/objects/snap_toy_yellow.tscn @@ -1,33 +1,34 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=6 format=3 uid="uid://cboxrvj4xdi6f"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=2] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="2"] -[sub_resource type="ConvexPolygonShape" id=20] +[sub_resource type="ConvexPolygonShape3D" id="20"] margin = 0.01 -points = PoolVector3Array( -0.0285317, -0.04, 0.00926607, -0.017634, -0.04, -0.0242705, -5.58421e-06, -0.04, 0.0299947, -0.0285317, 0.04, 0.00926607, -0.017634, 0.04, -0.0242705, 0.0176284, -0.04, -0.0242705, 0.0285261, -0.04, 0.00926607, -5.58421e-06, 0.04, 0.0299947, 0.0176284, 0.04, -0.0242705, 0.0285261, 0.04, 0.00926607 ) +points = PackedVector3Array(-0.0285317, -0.04, 0.00926607, -0.017634, -0.04, -0.0242705, -5.58421e-06, -0.04, 0.0299947, -0.0285317, 0.04, 0.00926607, -0.017634, 0.04, -0.0242705, 0.0176284, -0.04, -0.0242705, 0.0285261, -0.04, 0.00926607, -5.58421e-06, 0.04, 0.0299947, 0.0176284, 0.04, -0.0242705, 0.0285261, 0.04, 0.00926607) -[sub_resource type="CylinderMesh" id=21] +[sub_resource type="CylinderMesh" id="21"] top_radius = 0.03 bottom_radius = 0.03 height = 0.08 radial_segments = 5 rings = 0 -[sub_resource type="SpatialMaterial" id=22] -albedo_color = Color( 1, 1, 0, 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xkmnl"] +albedo_color = Color(1, 1, 0, 1) -[node name="SnapToyYellow" groups=["SnapToy", "SnapToyYellow"] instance=ExtResource( 1 )] +[node name="SnapToyYellow" groups=["SnapToy", "SnapToyYellow"] instance=ExtResource("1")] collision_layer = 4 collision_mask = 65543 +reset_transform_on_pickup = false picked_up_layer = 65536 ranged_grab_method = 0 -[node name="CollisionShape" parent="." index="0"] -shape = SubResource( 20 ) +[node name="CollisionShape3D" parent="." index="1"] +shape = SubResource("20") -[node name="MeshInstance" type="MeshInstance" parent="." index="1"] -mesh = SubResource( 21 ) -material/0 = SubResource( 22 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="2"] +mesh = SubResource("21") +surface_material_override/0 = SubResource("StandardMaterial3D_xkmnl") -[node name="HighlightRing" parent="." index="2" instance=ExtResource( 2 )] +[node name="HighlightRing" parent="." index="3" instance=ExtResource("2")] diff --git a/scenes/pickable_demo/objects/snap_tray.gd b/scenes/pickable_demo/objects/snap_tray.gd index 5e20581d..2d452e8f 100644 --- a/scenes/pickable_demo/objects/snap_tray.gd +++ b/scenes/pickable_demo/objects/snap_tray.gd @@ -5,19 +5,19 @@ signal pointer_pressed(at) ## Snap-tray active state -export var tray_active : bool = true setget _set_tray_active +@export var tray_active : bool = true: set = _set_tray_active ## Active material -export (Material) var active_material : Material +@export var active_material : Material ## Inactive material -export (Material) var inactive_material : Material +@export var inactive_material : Material ## Called when the node enters the scene tree for the first time. func _ready(): # Connect to the pointer pressed signal - connect("pointer_pressed", self, "_on_pointer_pressed") + pointer_pressed.connect(_on_pointer_pressed) # Update the tray_active state _update_tray_active() @@ -38,7 +38,6 @@ func _set_tray_active(new_value : bool) -> void: ## Update state based on tray_active property func _update_tray_active() -> void: - enabled = tray_active $Body.material_override = active_material if tray_active else inactive_material $SnapArea1/SnapZone1.enabled = tray_active $SnapArea2/SnapZone2.enabled = tray_active diff --git a/scenes/pickable_demo/objects/snap_tray.tscn b/scenes/pickable_demo/objects/snap_tray.tscn index e9d6a7aa..981677d7 100644 --- a/scenes/pickable_demo/objects/snap_tray.tscn +++ b/scenes/pickable_demo/objects/snap_tray.tscn @@ -1,107 +1,99 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=13 format=3 uid="uid://c6rmke57xw5lg"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=2] -[ext_resource path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/objects/snap_zone.tscn" type="PackedScene" id=4] -[ext_resource path="res://scenes/pickable_demo/objects/snap_tray.gd" type="Script" id=5] -[ext_resource path="res://assets/wahooney.itch.io/white_grid.png" type="Texture" id=6] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="2"] +[ext_resource type="Script" path="res://scenes/pickable_demo/objects/snap_tray.gd" id="2_bnyxu"] +[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://ce7vysyvondf8" path="res://addons/godot-xr-tools/objects/snap_zone.tscn" id="4"] +[ext_resource type="Material" path="res://scenes/pickable_demo/objects/snap_tray_inactive_material.tres" id="4_4l77u"] -[sub_resource type="SpatialMaterial" id=15] -albedo_color = Color( 0.247059, 0.247059, 0.247059, 1 ) -albedo_texture = ExtResource( 6 ) -uv1_triplanar = true +[sub_resource type="BoxShape3D" id="9"] +size = Vector3(0.3, 0.4, 0.1) -[sub_resource type="BoxShape" id=9] -extents = Vector3( 0.15, 0.2, 0.05 ) +[sub_resource type="BoxMesh" id="1"] +size = Vector3(0.3, 0.4, 0.1) -[sub_resource type="CubeMesh" id=1] -size = Vector3( 0.3, 0.4, 0.1 ) +[sub_resource type="BoxMesh" id="10"] +size = Vector3(0.08, 0.08, 0.02) -[sub_resource type="CubeMesh" id=10] -size = Vector3( 0.08, 0.08, 0.02 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2eorr"] +albedo_color = Color(1, 0, 0, 1) -[sub_resource type="SpatialMaterial" id=11] -albedo_color = Color( 1, 0, 0, 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ti2r6"] +albedo_color = Color(1, 1, 0, 1) -[sub_resource type="SpatialMaterial" id=12] -albedo_color = Color( 1, 1, 0, 1 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_73h0y"] +albedo_color = Color(0.498039, 0.498039, 0.498039, 1) -[sub_resource type="SpatialMaterial" id=13] -albedo_color = Color( 0.498039, 0.498039, 0.498039, 1 ) - -[sub_resource type="SpatialMaterial" id=14] -albedo_color = Color( 0.498039, 0.498039, 0.498039, 1 ) - -[node name="SnapTray" instance=ExtResource( 1 )] +[node name="SnapTray" instance=ExtResource("1")] collision_layer = 1048580 collision_mask = 65543 -script = ExtResource( 5 ) +script = ExtResource("2_bnyxu") +tray_active = true +active_material = ExtResource("2") +inactive_material = ExtResource("4_4l77u") picked_up_layer = 1114112 ranged_grab_method = 0 -tray_active = false -active_material = ExtResource( 2 ) -inactive_material = SubResource( 15 ) -[node name="CollisionShape" parent="." index="0"] -shape = SubResource( 9 ) +[node name="CollisionShape3D" parent="." index="0"] +shape = SubResource("9") -[node name="Body" type="MeshInstance" parent="." index="1"] -mesh = SubResource( 1 ) -material/0 = ExtResource( 2 ) +[node name="Body" type="MeshInstance3D" parent="." index="1"] +mesh = SubResource("1") +surface_material_override/0 = ExtResource("2") -[node name="SnapArea1" type="MeshInstance" parent="." index="2"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06, 0.06, 0.06 ) -mesh = SubResource( 10 ) -material/0 = SubResource( 11 ) +[node name="SnapArea1" type="MeshInstance3D" parent="." index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06, 0.06, 0.06) +mesh = SubResource("10") +surface_material_override/0 = SubResource("StandardMaterial3D_2eorr") -[node name="SnapZone1" parent="SnapArea1" index="0" instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06 ) +[node name="SnapZone1" parent="SnapArea1" index="0" instance=ExtResource("4")] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06) collision_layer = 4 collision_mask = 65540 grab_distance = 0.05 snap_require = "SnapToyRed" -[node name="HighlightRing" parent="SnapArea1/SnapZone1" index="1" instance=ExtResource( 3 )] +[node name="HighlightRing" parent="SnapArea1/SnapZone1" index="1" instance=ExtResource("3")] -[node name="SnapArea2" type="MeshInstance" parent="." index="3"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0.06, 0.06 ) -mesh = SubResource( 10 ) -material/0 = SubResource( 12 ) +[node name="SnapArea2" type="MeshInstance3D" parent="." index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, 0.06, 0.06) +mesh = SubResource("10") +surface_material_override/0 = SubResource("StandardMaterial3D_ti2r6") -[node name="SnapZone2" parent="SnapArea2" index="0" instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06 ) +[node name="SnapZone2" parent="SnapArea2" index="0" instance=ExtResource("4")] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06) collision_layer = 4 collision_mask = 65540 grab_distance = 0.05 snap_require = "SnapToyYellow" -[node name="HighlightRing" parent="SnapArea2/SnapZone2" index="1" instance=ExtResource( 3 )] +[node name="HighlightRing" parent="SnapArea2/SnapZone2" index="1" instance=ExtResource("3")] -[node name="SnapArea3" type="MeshInstance" parent="." index="4"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06, -0.06, 0.06 ) -mesh = SubResource( 10 ) -material/0 = SubResource( 13 ) +[node name="SnapArea3" type="MeshInstance3D" parent="." index="4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06, -0.06, 0.06) +mesh = SubResource("10") +surface_material_override/0 = SubResource("StandardMaterial3D_73h0y") -[node name="SnapZone3" parent="SnapArea3" index="0" instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06 ) +[node name="SnapZone3" parent="SnapArea3" index="0" instance=ExtResource("4")] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06) collision_layer = 4 collision_mask = 65540 grab_distance = 0.05 snap_require = "SnapToy" -[node name="HighlightRing" parent="SnapArea3/SnapZone3" index="1" instance=ExtResource( 3 )] +[node name="HighlightRing" parent="SnapArea3/SnapZone3" index="1" instance=ExtResource("3")] -[node name="SnapArea4" type="MeshInstance" parent="." index="5"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, -0.06, 0.06 ) -mesh = SubResource( 10 ) -material/0 = SubResource( 14 ) +[node name="SnapArea4" type="MeshInstance3D" parent="." index="5"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.06, -0.06, 0.06) +mesh = SubResource("10") +surface_material_override/0 = SubResource("StandardMaterial3D_73h0y") -[node name="SnapZone4" parent="SnapArea4" index="0" instance=ExtResource( 4 )] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06 ) +[node name="SnapZone4" parent="SnapArea4" index="0" instance=ExtResource("4")] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.06) collision_layer = 4 collision_mask = 65540 grab_distance = 0.05 snap_require = "SnapToy" -[node name="HighlightRing" parent="SnapArea4/SnapZone4" index="1" instance=ExtResource( 3 )] +[node name="HighlightRing" parent="SnapArea4/SnapZone4" index="1" instance=ExtResource("3")] diff --git a/scenes/pickable_demo/objects/teacup.tscn b/scenes/pickable_demo/objects/teacup.tscn index d80e236e..452dc7d1 100644 --- a/scenes/pickable_demo/objects/teacup.tscn +++ b/scenes/pickable_demo/objects/teacup.tscn @@ -1,65 +1,81 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=15 format=3 uid="uid://chww0na0ryl1m"] -[ext_resource path="res://addons/godot-xr-tools/objects/pickable.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn" type="PackedScene" id=4] -[ext_resource path="res://scenes/pickable_demo/materials/porcelain.tres" type="Material" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Pinky.anim" type="Animation" id=7] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Pinky.anim" type="Animation" id=8] +[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_q232w"] +[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://dh8grd7s3n8kg" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn" id="4"] +[ext_resource type="Animation" uid="uid://bqnoubqq7ogwu" path="res://addons/godot-xr-tools/hands/animations/left/Pinky.res" id="4_a44uc"] +[ext_resource type="Material" path="res://scenes/pickable_demo/materials/porcelain.tres" id="5"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_rkolq"] +[ext_resource type="Animation" uid="uid://b6ra3rqia1gvb" path="res://addons/godot-xr-tools/hands/animations/right/Pinky.res" id="7_m23hc"] -[sub_resource type="ArrayMesh" id=1] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ea5pe"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_23l5t"] +_surfaces = [{ +"aabb": AABB(-0.06, -8.3819e-07, -0.06, 0.152087, 0.0689103, 0.12), +"format": 4097, +"index_count": 3276, +"index_data": PackedByteArray(122, 1, 10, 0, 2, 0, 122, 1, 14, 0, 10, 0, 126, 1, 14, 0, 122, 1, 126, 1, 18, 0, 14, 0, 1, 0, 5, 0, 120, 1, 1, 0, 7, 0, 5, 0, 128, 1, 18, 0, 126, 1, 128, 1, 20, 0, 18, 0, 2, 0, 7, 0, 1, 0, 2, 0, 10, 0, 7, 0, 246, 0, 20, 0, 128, 1, 20, 0, 34, 0, 18, 0, 20, 0, 36, 0, 34, 0, 10, 0, 24, 0, 7, 0, 10, 0, 26, 0, 24, 0, 246, 0, 36, 0, 20, 0, 14, 0, 26, 0, 10, 0, 14, 0, 31, 0, 26, 0, 18, 0, 31, 0, 14, 0, 18, 0, 34, 0, 31, 0, 7, 0, 22, 0, 5, 0, 7, 0, 24, 0, 22, 0, 34, 0, 53, 0, 31, 0, 34, 0, 55, 0, 53, 0, 24, 0, 42, 0, 22, 0, 24, 0, 46, 0, 42, 0, 36, 0, 55, 0, 34, 0, 36, 0, 57, 0, 55, 0, 26, 0, 46, 0, 24, 0, 26, 0, 50, 0, 46, 0, 246, 0, 57, 0, 36, 0, 31, 0, 50, 0, 26, 0, 31, 0, 53, 0, 50, 0, 246, 0, 78, 0, 57, 0, 53, 0, 63, 0, 50, 0, 53, 0, 70, 0, 63, 0, 55, 0, 70, 0, 53, 0, 55, 0, 74, 0, 70, 0, 46, 0, 59, 0, 42, 0, 46, 0, 61, 0, 59, 0, 57, 0, 74, 0, 55, 0, 57, 0, 78, 0, 74, 0, 50, 0, 61, 0, 46, 0, 50, 0, 63, 0, 61, 0, 61, 0, 81, 0, 59, 0, 61, 0, 85, 0, 81, 0, 78, 0, 91, 0, 74, 0, 78, 0, 93, 0, 91, 0, 63, 0, 85, 0, 61, 0, 63, 0, 87, 0, 85, 0, 246, 0, 93, 0, 78, 0, 70, 0, 87, 0, 63, 0, 70, 0, 90, 0, 87, 0, 74, 0, 90, 0, 70, 0, 74, 0, 91, 0, 90, 0, 91, 0, 106, 0, 90, 0, 91, 0, 109, 0, 106, 0, 223, 1, 97, 0, 222, 1, 97, 0, 81, 0, 85, 0, 81, 0, 240, 1, 96, 0, 81, 0, 218, 1, 240, 1, 221, 1, 97, 0, 223, 1, 221, 1, 81, 0, 97, 0, 81, 0, 219, 1, 218, 1, 220, 1, 81, 0, 221, 1, 81, 0, 220, 1, 219, 1, 93, 0, 109, 0, 91, 0, 93, 0, 114, 0, 109, 0, 87, 0, 97, 0, 85, 0, 87, 0, 102, 0, 97, 0, 246, 0, 114, 0, 93, 0, 230, 1, 106, 0, 227, 1, 87, 0, 228, 1, 102, 0, 87, 0, 224, 1, 228, 1, 230, 1, 90, 0, 106, 0, 229, 1, 90, 0, 230, 1, 87, 0, 226, 1, 224, 1, 225, 1, 90, 0, 229, 1, 87, 0, 225, 1, 226, 1, 90, 0, 225, 1, 87, 0, 102, 0, 122, 0, 97, 0, 102, 0, 123, 0, 122, 0, 246, 0, 130, 0, 114, 0, 231, 1, 102, 0, 228, 1, 125, 0, 227, 1, 106, 0, 125, 0, 235, 1, 227, 1, 231, 1, 123, 0, 102, 0, 233, 1, 123, 0, 231, 1, 125, 0, 234, 1, 235, 1, 232, 1, 123, 0, 233, 1, 125, 0, 232, 1, 234, 1, 123, 0, 232, 1, 125, 0, 109, 0, 125, 0, 106, 0, 109, 0, 128, 0, 125, 0, 241, 1, 96, 0, 240, 1, 117, 0, 97, 0, 122, 0, 97, 0, 237, 1, 222, 1, 97, 0, 236, 1, 237, 1, 241, 1, 117, 0, 96, 0, 238, 1, 117, 0, 241, 1, 117, 0, 236, 1, 97, 0, 239, 1, 117, 0, 238, 1, 117, 0, 239, 1, 236, 1, 114, 0, 128, 0, 109, 0, 114, 0, 130, 0, 128, 0, 122, 0, 134, 0, 117, 0, 122, 0, 138, 0, 134, 0, 130, 0, 150, 0, 128, 0, 130, 0, 154, 0, 150, 0, 123, 0, 138, 0, 122, 0, 123, 0, 140, 0, 138, 0, 246, 0, 154, 0, 130, 0, 125, 0, 140, 0, 123, 0, 125, 0, 146, 0, 140, 0, 128, 0, 146, 0, 125, 0, 128, 0, 150, 0, 146, 0, 146, 0, 160, 0, 140, 0, 146, 0, 162, 0, 160, 0, 150, 0, 162, 0, 146, 0, 150, 0, 164, 0, 162, 0, 138, 0, 155, 0, 134, 0, 138, 0, 157, 0, 155, 0, 154, 0, 164, 0, 150, 0, 154, 0, 166, 0, 164, 0, 140, 0, 157, 0, 138, 0, 140, 0, 160, 0, 157, 0, 246, 0, 166, 0, 154, 0, 160, 0, 174, 0, 157, 0, 160, 0, 180, 0, 174, 0, 246, 0, 187, 0, 166, 0, 162, 0, 180, 0, 160, 0, 162, 0, 182, 0, 180, 0, 164, 0, 182, 0, 162, 0, 164, 0, 184, 0, 182, 0, 169, 0, 157, 0, 174, 0, 169, 0, 155, 0, 157, 0, 166, 0, 184, 0, 164, 0, 166, 0, 187, 0, 184, 0, 184, 0, 195, 0, 182, 0, 184, 0, 198, 0, 195, 0, 174, 0, 189, 0, 169, 0, 174, 0, 192, 0, 189, 0, 187, 0, 198, 0, 184, 0, 187, 0, 200, 0, 198, 0, 180, 0, 192, 0, 174, 0, 180, 0, 194, 0, 192, 0, 246, 0, 200, 0, 187, 0, 182, 0, 194, 0, 180, 0, 182, 0, 195, 0, 194, 0, 195, 0, 204, 0, 194, 0, 195, 0, 207, 0, 204, 0, 198, 0, 207, 0, 195, 0, 198, 0, 208, 0, 207, 0, 192, 0, 201, 0, 189, 0, 192, 0, 202, 0, 201, 0, 200, 0, 208, 0, 198, 0, 200, 0, 209, 0, 208, 0, 194, 0, 202, 0, 192, 0, 194, 0, 204, 0, 202, 0, 246, 0, 209, 0, 200, 0, 209, 0, 216, 0, 208, 0, 209, 0, 218, 0, 216, 0, 204, 0, 211, 0, 202, 0, 204, 0, 212, 0, 211, 0, 246, 0, 218, 0, 209, 0, 207, 0, 212, 0, 204, 0, 207, 0, 214, 0, 212, 0, 208, 0, 214, 0, 207, 0, 208, 0, 216, 0, 214, 0, 202, 0, 210, 0, 201, 0, 202, 0, 211, 0, 210, 0, 216, 0, 225, 0, 214, 0, 216, 0, 226, 0, 225, 0, 211, 0, 220, 0, 210, 0, 211, 0, 221, 0, 220, 0, 218, 0, 226, 0, 216, 0, 218, 0, 227, 0, 226, 0, 212, 0, 221, 0, 211, 0, 212, 0, 223, 0, 221, 0, 246, 0, 227, 0, 218, 0, 214, 0, 223, 0, 212, 0, 214, 0, 225, 0, 223, 0, 246, 0, 236, 0, 227, 0, 225, 0, 230, 0, 223, 0, 225, 0, 232, 0, 230, 0, 226, 0, 232, 0, 225, 0, 226, 0, 234, 0, 232, 0, 221, 0, 228, 0, 220, 0, 221, 0, 229, 0, 228, 0, 227, 0, 234, 0, 226, 0, 227, 0, 236, 0, 234, 0, 223, 0, 229, 0, 221, 0, 223, 0, 230, 0, 229, 0, 236, 0, 244, 0, 234, 0, 236, 0, 245, 0, 244, 0, 230, 0, 241, 0, 229, 0, 230, 0, 242, 0, 241, 0, 246, 0, 245, 0, 236, 0, 232, 0, 242, 0, 230, 0, 232, 0, 243, 0, 242, 0, 234, 0, 243, 0, 232, 0, 234, 0, 244, 0, 243, 0, 229, 0, 239, 0, 228, 0, 229, 0, 241, 0, 239, 0, 244, 0, 2, 1, 243, 0, 244, 0, 5, 1, 2, 1, 241, 0, 247, 0, 239, 0, 241, 0, 250, 0, 247, 0, 245, 0, 5, 1, 244, 0, 245, 0, 8, 1, 5, 1, 242, 0, 250, 0, 241, 0, 242, 0, 253, 0, 250, 0, 246, 0, 8, 1, 245, 0, 243, 0, 253, 0, 242, 0, 243, 0, 2, 1, 253, 0, 246, 0, 24, 1, 8, 1, 2, 1, 16, 1, 253, 0, 2, 1, 19, 1, 16, 1, 5, 1, 19, 1, 2, 1, 5, 1, 20, 1, 19, 1, 250, 0, 13, 1, 247, 0, 250, 0, 15, 1, 13, 1, 8, 1, 20, 1, 5, 1, 8, 1, 24, 1, 20, 1, 253, 0, 15, 1, 250, 0, 253, 0, 16, 1, 15, 1, 24, 1, 42, 1, 20, 1, 24, 1, 46, 1, 42, 1, 16, 1, 32, 1, 15, 1, 16, 1, 36, 1, 32, 1, 246, 0, 46, 1, 24, 1, 19, 1, 36, 1, 16, 1, 19, 1, 41, 1, 36, 1, 20, 1, 41, 1, 19, 1, 20, 1, 42, 1, 41, 1, 15, 1, 28, 1, 13, 1, 15, 1, 32, 1, 28, 1, 42, 1, 55, 1, 41, 1, 42, 1, 59, 1, 55, 1, 32, 1, 49, 1, 28, 1, 32, 1, 51, 1, 49, 1, 46, 1, 59, 1, 42, 1, 46, 1, 61, 1, 59, 1, 36, 1, 51, 1, 32, 1, 36, 1, 53, 1, 51, 1, 246, 0, 61, 1, 46, 1, 41, 1, 53, 1, 36, 1, 41, 1, 55, 1, 53, 1, 246, 0, 83, 1, 61, 1, 55, 1, 72, 1, 53, 1, 55, 1, 77, 1, 72, 1, 59, 1, 77, 1, 55, 1, 59, 1, 80, 1, 77, 1, 51, 1, 65, 1, 49, 1, 51, 1, 68, 1, 65, 1, 61, 1, 80, 1, 59, 1, 61, 1, 83, 1, 80, 1, 53, 1, 68, 1, 51, 1, 53, 1, 72, 1, 68, 1, 84, 1, 68, 1, 86, 1, 84, 1, 65, 1, 68, 1, 83, 1, 94, 1, 80, 1, 83, 1, 98, 1, 94, 1, 72, 1, 86, 1, 68, 1, 72, 1, 88, 1, 86, 1, 246, 0, 98, 1, 83, 1, 77, 1, 88, 1, 72, 1, 77, 1, 93, 1, 88, 1, 80, 1, 93, 1, 77, 1, 80, 1, 94, 1, 93, 1, 94, 1, 114, 1, 93, 1, 94, 1, 116, 1, 114, 1, 86, 1, 102, 1, 84, 1, 86, 1, 107, 1, 102, 1, 98, 1, 116, 1, 94, 1, 98, 1, 118, 1, 116, 1, 88, 1, 107, 1, 86, 1, 88, 1, 110, 1, 107, 1, 246, 0, 118, 1, 98, 1, 93, 1, 110, 1, 88, 1, 93, 1, 114, 1, 110, 1, 110, 1, 1, 0, 107, 1, 110, 1, 2, 0, 1, 0, 246, 0, 128, 1, 118, 1, 114, 1, 2, 0, 110, 1, 114, 1, 122, 1, 2, 0, 116, 1, 122, 1, 114, 1, 116, 1, 126, 1, 122, 1, 107, 1, 120, 1, 102, 1, 107, 1, 1, 0, 120, 1, 118, 1, 126, 1, 116, 1, 118, 1, 128, 1, 126, 1, 215, 1, 32, 0, 38, 0, 215, 1, 12, 0, 32, 0, 217, 1, 48, 0, 152, 1, 216, 1, 41, 0, 45, 0, 216, 1, 16, 0, 41, 0, 8, 0, 32, 0, 12, 0, 8, 0, 29, 0, 32, 0, 217, 1, 45, 0, 48, 0, 217, 1, 216, 1, 45, 0, 41, 0, 80, 0, 45, 0, 41, 0, 76, 0, 80, 0, 29, 0, 66, 0, 32, 0, 29, 0, 65, 0, 66, 0, 48, 0, 83, 0, 152, 1, 83, 0, 119, 0, 152, 1, 80, 0, 119, 0, 83, 0, 80, 0, 116, 0, 119, 0, 66, 0, 107, 0, 72, 0, 66, 0, 103, 0, 107, 0, 136, 0, 107, 0, 103, 0, 136, 0, 142, 0, 107, 0, 119, 0, 151, 0, 152, 1, 142, 0, 111, 0, 107, 0, 142, 0, 144, 0, 111, 0, 111, 0, 147, 0, 116, 0, 111, 0, 144, 0, 147, 0, 132, 0, 103, 0, 100, 0, 132, 0, 136, 0, 103, 0, 144, 0, 181, 0, 147, 0, 144, 0, 178, 0, 181, 0, 168, 0, 136, 0, 132, 0, 168, 0, 172, 0, 136, 0, 172, 0, 142, 0, 136, 0, 172, 0, 175, 0, 142, 0, 151, 0, 185, 0, 152, 1, 175, 0, 144, 0, 142, 0, 175, 0, 178, 0, 144, 0, 185, 0, 206, 0, 152, 1, 178, 0, 205, 0, 181, 0, 178, 0, 203, 0, 205, 0, 206, 0, 222, 0, 224, 0, 206, 0, 205, 0, 222, 0, 152, 1, 206, 0, 224, 0, 205, 0, 219, 0, 222, 0, 205, 0, 203, 0, 219, 0, 222, 0, 237, 0, 238, 0, 222, 0, 219, 0, 237, 0, 213, 0, 233, 0, 215, 0, 213, 0, 231, 0, 233, 0, 224, 0, 238, 0, 240, 0, 224, 0, 222, 0, 238, 0, 152, 1, 224, 0, 240, 0, 233, 0, 0, 1, 235, 0, 233, 0, 252, 0, 0, 1, 152, 1, 240, 0, 10, 1, 238, 0, 4, 1, 7, 1, 238, 0, 237, 0, 4, 1, 240, 0, 7, 1, 10, 1, 240, 0, 238, 0, 7, 1, 252, 0, 23, 1, 27, 1, 252, 0, 248, 0, 23, 1, 10, 1, 38, 1, 45, 1, 10, 1, 7, 1, 38, 1, 27, 1, 0, 1, 252, 0, 27, 1, 30, 1, 0, 1, 152, 1, 10, 1, 45, 1, 30, 1, 4, 1, 0, 1, 30, 1, 35, 1, 4, 1, 7, 1, 35, 1, 38, 1, 7, 1, 4, 1, 35, 1, 66, 1, 35, 1, 30, 1, 66, 1, 70, 1, 35, 1, 38, 1, 70, 1, 74, 1, 38, 1, 35, 1, 70, 1, 27, 1, 56, 1, 62, 1, 27, 1, 23, 1, 56, 1, 45, 1, 74, 1, 78, 1, 45, 1, 38, 1, 74, 1, 62, 1, 30, 1, 27, 1, 62, 1, 66, 1, 30, 1, 152, 1, 45, 1, 78, 1, 97, 1, 66, 1, 62, 1, 97, 1, 101, 1, 66, 1, 152, 1, 78, 1, 112, 1, 101, 1, 70, 1, 66, 1, 101, 1, 104, 1, 70, 1, 74, 1, 104, 1, 109, 1, 74, 1, 70, 1, 104, 1, 90, 1, 62, 1, 56, 1, 90, 1, 97, 1, 62, 1, 78, 1, 109, 1, 112, 1, 78, 1, 74, 1, 109, 1, 134, 1, 109, 1, 104, 1, 134, 1, 136, 1, 109, 1, 124, 1, 97, 1, 90, 1, 124, 1, 130, 1, 97, 1, 136, 1, 112, 1, 109, 1, 136, 1, 138, 1, 112, 1, 97, 1, 132, 1, 101, 1, 97, 1, 130, 1, 132, 1, 138, 1, 152, 1, 112, 1, 132, 1, 104, 1, 101, 1, 132, 1, 134, 1, 104, 1, 146, 1, 136, 1, 134, 1, 146, 1, 148, 1, 136, 1, 124, 1, 142, 1, 130, 1, 124, 1, 140, 1, 142, 1, 148, 1, 138, 1, 136, 1, 148, 1, 150, 1, 138, 1, 150, 1, 152, 1, 138, 1, 162, 1, 150, 1, 148, 1, 162, 1, 164, 1, 150, 1, 164, 1, 152, 1, 150, 1, 160, 1, 148, 1, 146, 1, 160, 1, 162, 1, 148, 1, 140, 1, 156, 1, 142, 1, 140, 1, 154, 1, 156, 1, 170, 1, 162, 1, 160, 1, 170, 1, 171, 1, 162, 1, 171, 1, 164, 1, 162, 1, 171, 1, 172, 1, 164, 1, 156, 1, 169, 1, 158, 1, 156, 1, 168, 1, 169, 1, 172, 1, 152, 1, 164, 1, 178, 1, 152, 1, 172, 1, 176, 1, 171, 1, 170, 1, 176, 1, 177, 1, 171, 1, 177, 1, 172, 1, 171, 1, 177, 1, 178, 1, 172, 1, 168, 1, 175, 1, 169, 1, 168, 1, 174, 1, 175, 1, 183, 1, 178, 1, 177, 1, 183, 1, 184, 1, 178, 1, 184, 1, 152, 1, 178, 1, 175, 1, 182, 1, 176, 1, 175, 1, 181, 1, 182, 1, 182, 1, 177, 1, 176, 1, 182, 1, 183, 1, 177, 1, 188, 1, 183, 1, 182, 1, 188, 1, 189, 1, 183, 1, 189, 1, 184, 1, 183, 1, 189, 1, 190, 1, 184, 1, 180, 1, 187, 1, 181, 1, 180, 1, 186, 1, 187, 1, 190, 1, 152, 1, 184, 1, 196, 1, 152, 1, 190, 1, 194, 1, 189, 1, 188, 1, 194, 1, 195, 1, 189, 1, 195, 1, 190, 1, 189, 1, 195, 1, 196, 1, 190, 1, 201, 1, 196, 1, 195, 1, 201, 1, 202, 1, 196, 1, 202, 1, 152, 1, 196, 1, 200, 1, 195, 1, 194, 1, 200, 1, 201, 1, 195, 1, 207, 1, 202, 1, 201, 1, 207, 1, 208, 1, 202, 1, 208, 1, 152, 1, 202, 1, 199, 1, 206, 1, 200, 1, 199, 1, 205, 1, 206, 1, 214, 1, 152, 1, 208, 1, 205, 1, 212, 1, 206, 1, 205, 1, 211, 1, 212, 1, 206, 1, 213, 1, 207, 1, 206, 1, 212, 1, 213, 1, 210, 1, 8, 0, 12, 0, 210, 1, 209, 1, 8, 0, 12, 0, 211, 1, 210, 1, 12, 0, 215, 1, 211, 1, 214, 1, 217, 1, 152, 1, 211, 1, 16, 0, 212, 1, 211, 1, 215, 1, 16, 0, 16, 0, 213, 1, 212, 1, 16, 0, 216, 1, 213, 1, 13, 1, 10, 2, 247, 0, 13, 1, 11, 2, 10, 2, 155, 0, 6, 2, 134, 0, 155, 0, 15, 2, 6, 2, 0, 0, 23, 0, 21, 0, 0, 0, 3, 0, 23, 0, 3, 0, 25, 0, 23, 0, 3, 0, 4, 0, 25, 0, 4, 0, 27, 0, 25, 0, 4, 0, 6, 0, 27, 0, 6, 0, 28, 0, 27, 0, 6, 0, 9, 0, 28, 0, 9, 0, 30, 0, 28, 0, 9, 0, 11, 0, 30, 0, 11, 0, 33, 0, 30, 0, 11, 0, 13, 0, 33, 0, 13, 0, 35, 0, 33, 0, 13, 0, 15, 0, 35, 0, 15, 0, 37, 0, 35, 0, 15, 0, 17, 0, 37, 0, 17, 0, 39, 0, 37, 0, 17, 0, 19, 0, 39, 0, 19, 0, 21, 0, 39, 0, 19, 0, 0, 0, 21, 0, 21, 0, 43, 0, 40, 0, 21, 0, 23, 0, 43, 0, 23, 0, 44, 0, 43, 0, 23, 0, 25, 0, 44, 0, 25, 0, 47, 0, 44, 0, 25, 0, 27, 0, 47, 0, 27, 0, 49, 0, 47, 0, 27, 0, 28, 0, 49, 0, 28, 0, 51, 0, 49, 0, 28, 0, 30, 0, 51, 0, 30, 0, 52, 0, 51, 0, 30, 0, 33, 0, 52, 0, 33, 0, 54, 0, 52, 0, 33, 0, 35, 0, 54, 0, 35, 0, 56, 0, 54, 0, 35, 0, 37, 0, 56, 0, 37, 0, 58, 0, 56, 0, 37, 0, 39, 0, 58, 0, 39, 0, 40, 0, 58, 0, 39, 0, 21, 0, 40, 0, 40, 0, 62, 0, 60, 0, 40, 0, 43, 0, 62, 0, 43, 0, 64, 0, 62, 0, 43, 0, 44, 0, 64, 0, 44, 0, 67, 0, 64, 0, 44, 0, 47, 0, 67, 0, 47, 0, 69, 0, 67, 0, 47, 0, 49, 0, 69, 0, 49, 0, 71, 0, 69, 0, 49, 0, 51, 0, 71, 0, 51, 0, 73, 0, 71, 0, 51, 0, 52, 0, 73, 0, 52, 0, 75, 0, 73, 0, 52, 0, 54, 0, 75, 0, 54, 0, 77, 0, 75, 0, 54, 0, 56, 0, 77, 0, 56, 0, 79, 0, 77, 0, 56, 0, 58, 0, 79, 0, 58, 0, 60, 0, 79, 0, 58, 0, 40, 0, 60, 0, 60, 0, 84, 0, 82, 0, 60, 0, 62, 0, 84, 0, 62, 0, 86, 0, 84, 0, 62, 0, 64, 0, 86, 0, 64, 0, 88, 0, 86, 0, 64, 0, 67, 0, 88, 0, 67, 0, 89, 0, 88, 0, 67, 0, 69, 0, 89, 0, 69, 0, 92, 0, 89, 0, 69, 0, 71, 0, 92, 0, 71, 0, 94, 0, 92, 0, 71, 0, 73, 0, 94, 0, 73, 0, 95, 0, 94, 0, 73, 0, 75, 0, 95, 0, 75, 0, 98, 0, 95, 0, 75, 0, 77, 0, 98, 0, 77, 0, 99, 0, 98, 0, 77, 0, 79, 0, 99, 0, 79, 0, 82, 0, 99, 0, 79, 0, 60, 0, 82, 0, 82, 0, 104, 0, 101, 0, 82, 0, 84, 0, 104, 0, 84, 0, 105, 0, 104, 0, 84, 0, 86, 0, 105, 0, 86, 0, 108, 0, 105, 0, 86, 0, 88, 0, 108, 0, 88, 0, 110, 0, 108, 0, 88, 0, 89, 0, 110, 0, 89, 0, 112, 0, 110, 0, 89, 0, 92, 0, 112, 0, 92, 0, 113, 0, 112, 0, 92, 0, 94, 0, 113, 0, 94, 0, 115, 0, 113, 0, 94, 0, 95, 0, 115, 0, 95, 0, 118, 0, 115, 0, 95, 0, 98, 0, 118, 0, 98, 0, 120, 0, 118, 0, 98, 0, 99, 0, 120, 0, 99, 0, 101, 0, 120, 0, 99, 0, 82, 0, 101, 0, 101, 0, 124, 0, 121, 0, 101, 0, 104, 0, 124, 0, 104, 0, 126, 0, 124, 0, 104, 0, 105, 0, 126, 0, 105, 0, 127, 0, 126, 0, 105, 0, 108, 0, 127, 0, 108, 0, 129, 0, 127, 0, 108, 0, 110, 0, 129, 0, 110, 0, 131, 0, 129, 0, 110, 0, 112, 0, 131, 0, 112, 0, 133, 0, 131, 0, 112, 0, 113, 0, 133, 0, 113, 0, 135, 0, 133, 0, 113, 0, 115, 0, 135, 0, 115, 0, 137, 0, 135, 0, 115, 0, 118, 0, 137, 0, 118, 0, 139, 0, 137, 0, 118, 0, 120, 0, 139, 0, 120, 0, 121, 0, 139, 0, 120, 0, 101, 0, 121, 0, 121, 0, 143, 0, 141, 0, 121, 0, 124, 0, 143, 0, 124, 0, 145, 0, 143, 0, 124, 0, 126, 0, 145, 0, 126, 0, 148, 0, 145, 0, 126, 0, 127, 0, 148, 0, 127, 0, 149, 0, 148, 0, 127, 0, 129, 0, 149, 0, 129, 0, 152, 0, 149, 0, 129, 0, 131, 0, 152, 0, 131, 0, 153, 0, 152, 0, 131, 0, 133, 0, 153, 0, 133, 0, 156, 0, 153, 0, 133, 0, 135, 0, 156, 0, 135, 0, 158, 0, 156, 0, 135, 0, 137, 0, 158, 0, 137, 0, 159, 0, 158, 0, 137, 0, 139, 0, 159, 0, 139, 0, 141, 0, 159, 0, 139, 0, 121, 0, 141, 0, 141, 0, 163, 0, 161, 0, 141, 0, 143, 0, 163, 0, 143, 0, 165, 0, 163, 0, 143, 0, 145, 0, 165, 0, 145, 0, 167, 0, 165, 0, 145, 0, 148, 0, 167, 0, 148, 0, 170, 0, 167, 0, 148, 0, 149, 0, 170, 0, 149, 0, 171, 0, 170, 0, 149, 0, 152, 0, 171, 0, 152, 0, 173, 0, 171, 0, 152, 0, 153, 0, 173, 0, 153, 0, 176, 0, 173, 0, 153, 0, 156, 0, 176, 0, 156, 0, 177, 0, 176, 0, 156, 0, 158, 0, 177, 0, 158, 0, 179, 0, 177, 0, 158, 0, 159, 0, 179, 0, 159, 0, 161, 0, 179, 0, 159, 0, 141, 0, 161, 0, 163, 0, 240, 1, 161, 0, 163, 0, 241, 1, 240, 1, 163, 0, 238, 1, 241, 1, 238, 1, 165, 0, 183, 0, 238, 1, 163, 0, 165, 0, 165, 0, 186, 0, 183, 0, 165, 0, 167, 0, 186, 0, 167, 0, 188, 0, 186, 0, 167, 0, 170, 0, 188, 0, 170, 0, 190, 0, 188, 0, 170, 0, 171, 0, 190, 0, 171, 0, 191, 0, 190, 0, 171, 0, 173, 0, 191, 0, 173, 0, 193, 0, 191, 0, 173, 0, 176, 0, 193, 0, 176, 0, 196, 0, 193, 0, 176, 0, 177, 0, 196, 0, 196, 0, 218, 1, 219, 1, 218, 1, 177, 0, 179, 0, 218, 1, 196, 0, 177, 0, 161, 0, 218, 1, 179, 0, 161, 0, 240, 1, 218, 1, 199, 0, 168, 0, 197, 0, 199, 0, 172, 0, 168, 0, 183, 0, 239, 1, 238, 1, 186, 0, 239, 1, 183, 0, 186, 0, 236, 1, 239, 1, 188, 0, 236, 1, 186, 0, 188, 0, 237, 1, 236, 1, 178, 0, 68, 0, 203, 0, 178, 0, 175, 0, 68, 0, 222, 1, 188, 0, 190, 0, 222, 1, 237, 1, 188, 0, 223, 1, 190, 0, 191, 0, 223, 1, 222, 1, 190, 0, 221, 1, 191, 0, 193, 0, 221, 1, 223, 1, 191, 0, 196, 0, 221, 1, 193, 0, 196, 0, 220, 1, 221, 1, 215, 0, 197, 0, 213, 0, 215, 0, 199, 0, 197, 0, 219, 1, 220, 1, 196, 0, 219, 0, 68, 0, 217, 0, 219, 0, 203, 0, 68, 0, 68, 0, 172, 0, 199, 0, 68, 0, 175, 0, 172, 0, 215, 0, 68, 0, 199, 0, 215, 0, 217, 0, 68, 0, 232, 1, 249, 0, 234, 1, 249, 0, 233, 1, 251, 0, 249, 0, 232, 1, 233, 1, 233, 1, 254, 0, 251, 0, 233, 1, 231, 1, 254, 0, 228, 1, 254, 0, 231, 1, 228, 1, 255, 0, 254, 0, 228, 1, 1, 1, 255, 0, 228, 1, 224, 1, 1, 1, 224, 1, 3, 1, 1, 1, 224, 1, 226, 1, 3, 1, 3, 1, 225, 1, 6, 1, 3, 1, 226, 1, 225, 1, 229, 1, 6, 1, 225, 1, 227, 1, 11, 1, 9, 1, 227, 1, 235, 1, 11, 1, 11, 1, 249, 0, 12, 1, 249, 0, 235, 1, 234, 1, 249, 0, 11, 1, 235, 1, 249, 0, 14, 1, 12, 1, 249, 0, 251, 0, 14, 1, 251, 0, 17, 1, 14, 1, 251, 0, 254, 0, 17, 1, 254, 0, 18, 1, 17, 1, 254, 0, 255, 0, 18, 1, 255, 0, 21, 1, 18, 1, 255, 0, 1, 1, 21, 1, 1, 1, 22, 1, 21, 1, 1, 1, 3, 1, 22, 1, 3, 1, 25, 1, 22, 1, 3, 1, 6, 1, 25, 1, 230, 1, 6, 1, 229, 1, 6, 1, 26, 1, 25, 1, 6, 1, 230, 1, 26, 1, 26, 1, 227, 1, 9, 1, 26, 1, 230, 1, 227, 1, 9, 1, 31, 1, 29, 1, 9, 1, 11, 1, 31, 1, 11, 1, 33, 1, 31, 1, 11, 1, 12, 1, 33, 1, 12, 1, 34, 1, 33, 1, 12, 1, 14, 1, 34, 1, 14, 1, 37, 1, 34, 1, 14, 1, 17, 1, 37, 1, 17, 1, 39, 1, 37, 1, 17, 1, 18, 1, 39, 1, 18, 1, 40, 1, 39, 1, 18, 1, 21, 1, 40, 1, 21, 1, 43, 1, 40, 1, 21, 1, 22, 1, 43, 1, 22, 1, 44, 1, 43, 1, 22, 1, 25, 1, 44, 1, 25, 1, 47, 1, 44, 1, 25, 1, 26, 1, 47, 1, 26, 1, 29, 1, 47, 1, 26, 1, 9, 1, 29, 1, 29, 1, 50, 1, 48, 1, 29, 1, 31, 1, 50, 1, 31, 1, 52, 1, 50, 1, 31, 1, 33, 1, 52, 1, 33, 1, 54, 1, 52, 1, 33, 1, 34, 1, 54, 1, 34, 1, 57, 1, 54, 1, 34, 1, 37, 1, 57, 1, 37, 1, 58, 1, 57, 1, 37, 1, 39, 1, 58, 1, 39, 1, 60, 1, 58, 1, 39, 1, 40, 1, 60, 1, 40, 1, 63, 1, 60, 1, 40, 1, 43, 1, 63, 1, 43, 1, 64, 1, 63, 1, 43, 1, 44, 1, 64, 1, 44, 1, 67, 1, 64, 1, 44, 1, 47, 1, 67, 1, 47, 1, 48, 1, 67, 1, 47, 1, 29, 1, 48, 1, 48, 1, 71, 1, 69, 1, 48, 1, 50, 1, 71, 1, 50, 1, 73, 1, 71, 1, 50, 1, 52, 1, 73, 1, 52, 1, 75, 1, 73, 1, 52, 1, 54, 1, 75, 1, 54, 1, 76, 1, 75, 1, 54, 1, 57, 1, 76, 1, 57, 1, 79, 1, 76, 1, 57, 1, 58, 1, 79, 1, 58, 1, 81, 1, 79, 1, 58, 1, 60, 1, 81, 1, 60, 1, 82, 1, 81, 1, 60, 1, 63, 1, 82, 1, 63, 1, 85, 1, 82, 1, 63, 1, 64, 1, 85, 1, 64, 1, 87, 1, 85, 1, 64, 1, 67, 1, 87, 1, 67, 1, 69, 1, 87, 1, 67, 1, 48, 1, 69, 1, 69, 1, 91, 1, 89, 1, 69, 1, 71, 1, 91, 1, 71, 1, 92, 1, 91, 1, 71, 1, 73, 1, 92, 1, 73, 1, 95, 1, 92, 1, 73, 1, 75, 1, 95, 1, 75, 1, 96, 1, 95, 1, 75, 1, 76, 1, 96, 1, 76, 1, 99, 1, 96, 1, 76, 1, 79, 1, 99, 1, 79, 1, 100, 1, 99, 1, 79, 1, 81, 1, 100, 1, 81, 1, 103, 1, 100, 1, 81, 1, 82, 1, 103, 1, 82, 1, 105, 1, 103, 1, 82, 1, 85, 1, 105, 1, 85, 1, 106, 1, 105, 1, 85, 1, 87, 1, 106, 1, 87, 1, 89, 1, 106, 1, 87, 1, 69, 1, 89, 1, 89, 1, 111, 1, 108, 1, 89, 1, 91, 1, 111, 1, 91, 1, 113, 1, 111, 1, 91, 1, 92, 1, 113, 1, 92, 1, 115, 1, 113, 1, 92, 1, 95, 1, 115, 1, 95, 1, 117, 1, 115, 1, 95, 1, 96, 1, 117, 1, 96, 1, 119, 1, 117, 1, 96, 1, 99, 1, 119, 1, 99, 1, 121, 1, 119, 1, 99, 1, 100, 1, 121, 1, 100, 1, 123, 1, 121, 1, 100, 1, 103, 1, 123, 1, 103, 1, 125, 1, 123, 1, 103, 1, 105, 1, 125, 1, 105, 1, 127, 1, 125, 1, 105, 1, 106, 1, 127, 1, 106, 1, 108, 1, 127, 1, 106, 1, 89, 1, 108, 1, 108, 1, 131, 1, 129, 1, 108, 1, 111, 1, 131, 1, 111, 1, 133, 1, 131, 1, 111, 1, 113, 1, 133, 1, 113, 1, 135, 1, 133, 1, 113, 1, 115, 1, 135, 1, 115, 1, 137, 1, 135, 1, 115, 1, 117, 1, 137, 1, 117, 1, 139, 1, 137, 1, 117, 1, 119, 1, 139, 1, 119, 1, 141, 1, 139, 1, 119, 1, 121, 1, 141, 1, 121, 1, 143, 1, 141, 1, 121, 1, 123, 1, 143, 1, 123, 1, 145, 1, 143, 1, 123, 1, 125, 1, 145, 1, 125, 1, 147, 1, 145, 1, 125, 1, 127, 1, 147, 1, 127, 1, 129, 1, 147, 1, 127, 1, 108, 1, 129, 1, 129, 1, 151, 1, 149, 1, 129, 1, 131, 1, 151, 1, 131, 1, 153, 1, 151, 1, 131, 1, 133, 1, 153, 1, 133, 1, 155, 1, 153, 1, 133, 1, 135, 1, 155, 1, 135, 1, 157, 1, 155, 1, 135, 1, 137, 1, 157, 1, 137, 1, 159, 1, 157, 1, 137, 1, 139, 1, 159, 1, 139, 1, 161, 1, 159, 1, 139, 1, 141, 1, 161, 1, 141, 1, 163, 1, 161, 1, 141, 1, 143, 1, 163, 1, 143, 1, 165, 1, 163, 1, 143, 1, 145, 1, 165, 1, 145, 1, 167, 1, 165, 1, 145, 1, 147, 1, 167, 1, 147, 1, 149, 1, 167, 1, 147, 1, 129, 1, 149, 1, 149, 1, 3, 0, 0, 0, 149, 1, 151, 1, 3, 0, 151, 1, 4, 0, 3, 0, 151, 1, 153, 1, 4, 0, 153, 1, 6, 0, 4, 0, 153, 1, 155, 1, 6, 0, 155, 1, 9, 0, 6, 0, 155, 1, 157, 1, 9, 0, 157, 1, 11, 0, 9, 0, 157, 1, 159, 1, 11, 0, 159, 1, 13, 0, 11, 0, 159, 1, 161, 1, 13, 0, 161, 1, 15, 0, 13, 0, 161, 1, 163, 1, 15, 0, 163, 1, 17, 0, 15, 0, 163, 1, 165, 1, 17, 0, 165, 1, 19, 0, 17, 0, 165, 1, 167, 1, 19, 0, 167, 1, 0, 0, 19, 0, 167, 1, 149, 1, 0, 0, 215, 1, 41, 0, 16, 0, 215, 1, 38, 0, 41, 0, 32, 0, 72, 0, 38, 0, 32, 0, 66, 0, 72, 0, 38, 0, 76, 0, 41, 0, 38, 0, 72, 0, 76, 0, 45, 0, 83, 0, 48, 0, 45, 0, 80, 0, 83, 0, 65, 0, 103, 0, 66, 0, 65, 0, 100, 0, 103, 0, 72, 0, 111, 0, 76, 0, 72, 0, 107, 0, 111, 0, 76, 0, 116, 0, 80, 0, 76, 0, 111, 0, 116, 0, 116, 0, 151, 0, 119, 0, 116, 0, 147, 0, 151, 0, 147, 0, 185, 0, 151, 0, 147, 0, 181, 0, 185, 0, 181, 0, 206, 0, 185, 0, 181, 0, 205, 0, 206, 0, 215, 0, 235, 0, 217, 0, 215, 0, 233, 0, 235, 0, 217, 0, 237, 0, 219, 0, 217, 0, 235, 0, 237, 0, 231, 0, 252, 0, 233, 0, 231, 0, 248, 0, 252, 0, 235, 0, 4, 1, 237, 0, 235, 0, 0, 1, 4, 1, 130, 1, 144, 1, 132, 1, 130, 1, 142, 1, 144, 1, 132, 1, 146, 1, 134, 1, 132, 1, 144, 1, 146, 1, 142, 1, 158, 1, 144, 1, 142, 1, 156, 1, 158, 1, 144, 1, 160, 1, 146, 1, 144, 1, 158, 1, 160, 1, 158, 1, 170, 1, 160, 1, 158, 1, 169, 1, 170, 1, 154, 1, 168, 1, 156, 1, 154, 1, 166, 1, 168, 1, 166, 1, 174, 1, 168, 1, 166, 1, 173, 1, 174, 1, 169, 1, 176, 1, 170, 1, 169, 1, 175, 1, 176, 1, 173, 1, 180, 1, 174, 1, 173, 1, 179, 1, 180, 1, 174, 1, 181, 1, 175, 1, 174, 1, 180, 1, 181, 1, 181, 1, 188, 1, 182, 1, 181, 1, 187, 1, 188, 1, 179, 1, 186, 1, 180, 1, 179, 1, 185, 1, 186, 1, 185, 1, 192, 1, 186, 1, 185, 1, 191, 1, 192, 1, 186, 1, 193, 1, 187, 1, 186, 1, 192, 1, 193, 1, 187, 1, 194, 1, 188, 1, 187, 1, 193, 1, 194, 1, 193, 1, 200, 1, 194, 1, 193, 1, 199, 1, 200, 1, 191, 1, 198, 1, 192, 1, 191, 1, 197, 1, 198, 1, 192, 1, 199, 1, 193, 1, 192, 1, 198, 1, 199, 1, 198, 1, 205, 1, 199, 1, 198, 1, 204, 1, 205, 1, 200, 1, 207, 1, 201, 1, 200, 1, 206, 1, 207, 1, 197, 1, 204, 1, 198, 1, 197, 1, 203, 1, 204, 1, 203, 1, 210, 1, 204, 1, 203, 1, 209, 1, 210, 1, 207, 1, 214, 1, 208, 1, 207, 1, 213, 1, 214, 1, 204, 1, 211, 1, 205, 1, 204, 1, 210, 1, 211, 1, 213, 1, 217, 1, 214, 1, 213, 1, 216, 1, 217, 1, 19, 2, 5, 2, 255, 1, 5, 2, 243, 1, 244, 1, 243, 1, 30, 2, 242, 1, 30, 2, 10, 2, 11, 2, 10, 2, 31, 2, 33, 2, 31, 2, 252, 1, 253, 1, 252, 1, 24, 2, 26, 2, 24, 2, 15, 2, 23, 2, 15, 2, 246, 1, 6, 2, 246, 1, 247, 1, 245, 1, 247, 1, 12, 2, 27, 2, 12, 2, 248, 1, 4, 2, 12, 2, 249, 1, 248, 1, 25, 2, 5, 2, 19, 2, 3, 2, 5, 2, 25, 2, 247, 1, 249, 1, 12, 2, 247, 1, 0, 2, 249, 1, 3, 2, 243, 1, 5, 2, 2, 2, 243, 1, 3, 2, 247, 1, 1, 2, 0, 2, 247, 1, 7, 2, 1, 2, 2, 2, 30, 2, 243, 1, 21, 2, 30, 2, 2, 2, 246, 1, 7, 2, 247, 1, 246, 1, 8, 2, 7, 2, 251, 1, 30, 2, 21, 2, 250, 1, 30, 2, 251, 1, 15, 2, 8, 2, 246, 1, 15, 2, 9, 2, 8, 2, 250, 1, 10, 2, 30, 2, 17, 2, 10, 2, 250, 1, 15, 2, 18, 2, 9, 2, 15, 2, 13, 2, 18, 2, 17, 2, 31, 2, 10, 2, 16, 2, 31, 2, 17, 2, 24, 2, 13, 2, 15, 2, 24, 2, 14, 2, 13, 2, 29, 2, 31, 2, 16, 2, 32, 2, 31, 2, 29, 2, 252, 1, 14, 2, 24, 2, 252, 1, 22, 2, 14, 2, 32, 2, 252, 1, 31, 2, 252, 1, 28, 2, 22, 2, 252, 1, 32, 2, 28, 2, 20, 2, 4, 2, 248, 1, 4, 2, 255, 1, 254, 1, 255, 1, 20, 2, 19, 2, 20, 2, 255, 1, 4, 2, 120, 1, 5, 2, 102, 1, 120, 1, 255, 1, 5, 2, 203, 1, 25, 2, 209, 1, 203, 1, 3, 2, 25, 2, 168, 0, 7, 2, 197, 0, 168, 0, 1, 2, 7, 2, 220, 0, 252, 1, 210, 0, 220, 0, 253, 1, 252, 1, 117, 0, 245, 1, 96, 0, 117, 0, 246, 1, 245, 1, 197, 1, 3, 2, 203, 1, 197, 1, 2, 2, 3, 2, 49, 1, 30, 2, 28, 1, 49, 1, 242, 1, 30, 2, 140, 1, 29, 2, 154, 1, 140, 1, 32, 2, 29, 2, 231, 0, 18, 2, 248, 0, 231, 0, 9, 2, 18, 2, 84, 1, 243, 1, 65, 1, 84, 1, 244, 1, 243, 1, 248, 0, 13, 2, 23, 1, 248, 0, 18, 2, 13, 2, 179, 1, 251, 1, 185, 1, 179, 1, 250, 1, 251, 1, 247, 0, 33, 2, 239, 0, 247, 0, 10, 2, 33, 2, 239, 0, 31, 2, 228, 0, 239, 0, 33, 2, 31, 2, 209, 1, 19, 2, 8, 0, 209, 1, 25, 2, 19, 2, 154, 1, 16, 2, 166, 1, 154, 1, 29, 2, 16, 2, 213, 0, 9, 2, 231, 0, 213, 0, 8, 2, 9, 2, 201, 0, 24, 2, 189, 0, 201, 0, 26, 2, 24, 2, 210, 0, 26, 2, 201, 0, 210, 0, 252, 1, 26, 2, 29, 0, 248, 1, 65, 0, 29, 0, 20, 2, 248, 1, 169, 0, 15, 2, 155, 0, 169, 0, 23, 2, 15, 2, 134, 0, 246, 1, 117, 0, 134, 0, 6, 2, 246, 1, 90, 1, 28, 2, 124, 1, 90, 1, 22, 2, 28, 2, 191, 1, 2, 2, 197, 1, 191, 1, 21, 2, 2, 2, 59, 0, 12, 2, 42, 0, 59, 0, 27, 2, 12, 2, 96, 0, 247, 1, 81, 0, 96, 0, 245, 1, 247, 1, 102, 1, 244, 1, 84, 1, 102, 1, 5, 2, 244, 1, 42, 0, 4, 2, 22, 0, 42, 0, 12, 2, 4, 2, 132, 0, 1, 2, 168, 0, 132, 0, 0, 2, 1, 2, 22, 0, 254, 1, 5, 0, 22, 0, 4, 2, 254, 1, 5, 0, 255, 1, 120, 1, 5, 0, 254, 1, 255, 1, 65, 0, 249, 1, 100, 0, 65, 0, 248, 1, 249, 1, 189, 0, 23, 2, 169, 0, 189, 0, 24, 2, 23, 2, 8, 0, 20, 2, 29, 0, 8, 0, 19, 2, 20, 2, 65, 1, 242, 1, 49, 1, 65, 1, 243, 1, 242, 1, 100, 0, 0, 2, 132, 0, 100, 0, 249, 1, 0, 2, 56, 1, 22, 2, 90, 1, 56, 1, 14, 2, 22, 2, 28, 1, 11, 2, 13, 1, 28, 1, 30, 2, 11, 2, 124, 1, 32, 2, 140, 1, 124, 1, 28, 2, 32, 2, 228, 0, 253, 1, 220, 0, 228, 0, 31, 2, 253, 1, 81, 0, 27, 2, 59, 0, 81, 0, 247, 1, 27, 2, 23, 1, 14, 2, 56, 1, 23, 1, 13, 2, 14, 2, 173, 1, 250, 1, 179, 1, 173, 1, 17, 2, 250, 1, 185, 1, 21, 2, 191, 1, 185, 1, 251, 1, 21, 2, 166, 1, 17, 2, 173, 1, 166, 1, 16, 2, 17, 2, 197, 0, 8, 2, 213, 0, 197, 0, 7, 2, 8, 2), +"lods": [0.00381843, PackedByteArray(7, 0, 254, 1, 5, 2, 254, 1, 255, 1, 5, 2, 5, 2, 244, 1, 243, 1, 107, 1, 5, 2, 243, 1, 107, 1, 7, 0, 5, 2, 243, 1, 68, 1, 107, 1, 114, 1, 7, 0, 107, 1, 68, 1, 114, 1, 107, 1, 7, 0, 46, 0, 254, 1, 46, 0, 12, 2, 254, 1, 12, 2, 4, 2, 254, 1, 7, 0, 53, 0, 46, 0, 46, 0, 61, 0, 12, 2, 53, 0, 61, 0, 46, 0, 61, 0, 81, 0, 12, 2, 81, 0, 27, 2, 12, 2, 81, 0, 247, 1, 27, 2, 18, 0, 53, 0, 7, 0, 114, 1, 18, 0, 7, 0, 53, 0, 87, 0, 61, 0, 240, 1, 247, 1, 81, 0, 240, 1, 245, 1, 247, 1, 81, 0, 218, 1, 240, 1, 81, 0, 219, 1, 218, 1, 81, 0, 220, 1, 219, 1, 220, 1, 81, 0, 221, 1, 97, 0, 81, 0, 61, 0, 221, 1, 81, 0, 97, 0, 87, 0, 97, 0, 61, 0, 221, 1, 97, 0, 223, 1, 223, 1, 97, 0, 222, 1, 97, 0, 237, 1, 222, 1, 97, 0, 236, 1, 237, 1, 117, 0, 236, 1, 97, 0, 117, 0, 245, 1, 240, 1, 117, 0, 239, 1, 236, 1, 117, 0, 246, 1, 245, 1, 239, 1, 117, 0, 238, 1, 117, 0, 6, 2, 246, 1, 241, 1, 117, 0, 240, 1, 238, 1, 117, 0, 241, 1, 15, 2, 6, 2, 117, 0, 97, 0, 157, 0, 117, 0, 157, 0, 15, 2, 117, 0, 123, 0, 157, 0, 97, 0, 87, 0, 123, 0, 97, 0, 15, 2, 157, 0, 192, 0, 192, 0, 24, 2, 15, 2, 24, 2, 23, 2, 15, 2, 157, 0, 195, 0, 192, 0, 192, 0, 211, 0, 24, 2, 195, 0, 211, 0, 192, 0, 164, 0, 195, 0, 157, 0, 211, 0, 252, 1, 24, 2, 252, 1, 26, 2, 24, 2, 195, 0, 216, 0, 211, 0, 164, 0, 216, 0, 195, 0, 211, 0, 229, 0, 252, 1, 216, 0, 232, 0, 211, 0, 211, 0, 232, 0, 229, 0, 229, 0, 31, 2, 252, 1, 31, 2, 253, 1, 252, 1, 232, 0, 250, 0, 229, 0, 229, 0, 250, 0, 31, 2, 216, 0, 5, 1, 232, 0, 232, 0, 5, 1, 250, 0, 250, 0, 10, 2, 31, 2, 10, 2, 33, 2, 31, 2, 250, 0, 32, 1, 10, 2, 32, 1, 30, 2, 10, 2, 30, 2, 11, 2, 10, 2, 250, 0, 41, 1, 32, 1, 5, 1, 41, 1, 250, 0, 32, 1, 68, 1, 30, 2, 41, 1, 68, 1, 32, 1, 68, 1, 243, 1, 30, 2, 243, 1, 242, 1, 30, 2, 41, 1, 80, 1, 68, 1, 5, 1, 80, 1, 41, 1, 80, 1, 114, 1, 68, 1, 80, 1, 18, 0, 114, 1, 83, 1, 80, 1, 5, 1, 83, 1, 18, 0, 80, 1, 218, 0, 83, 1, 5, 1, 218, 0, 5, 1, 216, 0, 83, 1, 20, 0, 18, 0, 218, 0, 216, 0, 164, 0, 93, 0, 83, 1, 218, 0, 93, 0, 20, 0, 83, 1, 93, 0, 218, 0, 164, 0, 20, 0, 93, 0, 91, 0, 20, 0, 91, 0, 18, 0, 93, 0, 164, 0, 91, 0, 18, 0, 91, 0, 90, 0, 18, 0, 90, 0, 53, 0, 91, 0, 164, 0, 125, 0, 91, 0, 125, 0, 90, 0, 125, 0, 164, 0, 157, 0, 53, 0, 90, 0, 87, 0, 125, 0, 157, 0, 123, 0, 90, 0, 225, 1, 87, 0, 225, 1, 90, 0, 229, 1, 87, 0, 225, 1, 226, 1, 229, 1, 90, 0, 230, 1, 230, 1, 90, 0, 125, 0, 87, 0, 226, 1, 224, 1, 87, 0, 224, 1, 228, 1, 87, 0, 228, 1, 123, 0, 231, 1, 123, 0, 228, 1, 233, 1, 123, 0, 231, 1, 232, 1, 123, 0, 233, 1, 123, 0, 232, 1, 125, 0, 230, 1, 125, 0, 227, 1, 125, 0, 232, 1, 234, 1, 125, 0, 235, 1, 227, 1, 125, 0, 234, 1, 235, 1, 209, 1, 65, 0, 12, 0, 65, 0, 248, 1, 249, 1, 65, 0, 20, 2, 248, 1, 209, 1, 20, 2, 65, 0, 209, 1, 19, 2, 20, 2, 65, 0, 249, 1, 0, 2, 209, 1, 25, 2, 19, 2, 209, 1, 3, 2, 25, 2, 65, 0, 0, 2, 168, 0, 168, 0, 0, 2, 1, 2, 168, 0, 1, 2, 7, 2, 168, 0, 7, 2, 213, 0, 213, 0, 7, 2, 8, 2, 213, 0, 8, 2, 9, 2, 168, 0, 172, 0, 65, 0, 172, 0, 168, 0, 213, 0, 172, 0, 72, 0, 65, 0, 12, 0, 65, 0, 72, 0, 172, 0, 142, 0, 72, 0, 12, 0, 72, 0, 45, 0, 72, 0, 142, 0, 45, 0, 203, 0, 142, 0, 172, 0, 213, 0, 203, 0, 172, 0, 45, 0, 142, 0, 181, 0, 142, 0, 203, 0, 181, 0, 213, 0, 235, 0, 203, 0, 181, 0, 203, 0, 238, 0, 238, 0, 203, 0, 235, 0, 213, 0, 30, 1, 235, 0, 238, 0, 235, 0, 30, 1, 213, 0, 9, 2, 248, 0, 213, 0, 248, 0, 30, 1, 248, 0, 9, 2, 18, 2, 248, 0, 18, 2, 13, 2, 248, 0, 13, 2, 23, 1, 23, 1, 13, 2, 14, 2, 23, 1, 14, 2, 22, 2, 248, 0, 23, 1, 62, 1, 62, 1, 30, 1, 248, 0, 23, 1, 22, 2, 124, 1, 124, 1, 62, 1, 23, 1, 124, 1, 22, 2, 28, 2, 124, 1, 28, 2, 32, 2, 124, 1, 32, 2, 154, 1, 154, 1, 32, 2, 29, 2, 124, 1, 130, 1, 62, 1, 124, 1, 154, 1, 130, 1, 154, 1, 29, 2, 16, 2, 130, 1, 134, 1, 62, 1, 62, 1, 134, 1, 30, 1, 130, 1, 154, 1, 158, 1, 130, 1, 158, 1, 134, 1, 109, 1, 30, 1, 134, 1, 158, 1, 109, 1, 134, 1, 238, 0, 30, 1, 109, 1, 154, 1, 16, 2, 173, 1, 173, 1, 16, 2, 17, 2, 173, 1, 17, 2, 250, 1, 154, 1, 173, 1, 181, 1, 154, 1, 181, 1, 158, 1, 173, 1, 250, 1, 185, 1, 173, 1, 185, 1, 181, 1, 185, 1, 250, 1, 251, 1, 185, 1, 251, 1, 21, 2, 181, 1, 171, 1, 158, 1, 158, 1, 171, 1, 109, 1, 185, 1, 193, 1, 181, 1, 193, 1, 171, 1, 181, 1, 185, 1, 21, 2, 197, 1, 197, 1, 21, 2, 2, 2, 197, 1, 2, 2, 3, 2, 197, 1, 3, 2, 209, 1, 197, 1, 198, 1, 185, 1, 197, 1, 209, 1, 198, 1, 185, 1, 198, 1, 193, 1, 198, 1, 209, 1, 211, 1, 198, 1, 211, 1, 193, 1, 12, 0, 211, 1, 209, 1, 211, 1, 12, 0, 212, 1, 193, 1, 211, 1, 212, 1, 12, 0, 45, 0, 212, 1, 212, 1, 201, 1, 193, 1, 193, 1, 201, 1, 171, 1, 212, 1, 45, 0, 151, 0, 212, 1, 151, 0, 201, 1, 45, 0, 181, 0, 151, 0, 201, 1, 184, 1, 171, 1, 201, 1, 151, 0, 184, 1, 171, 1, 184, 1, 109, 1, 181, 0, 45, 1, 151, 0, 184, 1, 151, 0, 45, 1, 109, 1, 184, 1, 45, 1, 45, 1, 181, 0, 238, 0, 45, 1, 238, 0, 109, 1, 21, 0, 4, 0, 25, 0, 21, 0, 25, 0, 44, 0, 21, 0, 44, 0, 64, 0, 21, 0, 64, 0, 82, 0, 56, 0, 82, 0, 77, 0, 56, 0, 21, 0, 82, 0, 37, 0, 21, 0, 56, 0, 17, 0, 21, 0, 37, 0, 165, 1, 21, 0, 17, 0, 165, 1, 129, 1, 21, 0, 129, 1, 4, 0, 21, 0, 145, 1, 129, 1, 165, 1, 129, 1, 153, 1, 4, 0, 125, 1, 129, 1, 145, 1, 129, 1, 133, 1, 153, 1, 129, 1, 113, 1, 133, 1, 105, 1, 129, 1, 125, 1, 105, 1, 69, 1, 129, 1, 69, 1, 92, 1, 113, 1, 69, 1, 113, 1, 129, 1, 85, 1, 69, 1, 105, 1, 64, 1, 69, 1, 85, 1, 69, 1, 73, 1, 92, 1, 29, 1, 73, 1, 69, 1, 44, 1, 29, 1, 64, 1, 29, 1, 52, 1, 73, 1, 29, 1, 33, 1, 52, 1, 25, 1, 12, 1, 29, 1, 64, 1, 29, 1, 69, 1, 12, 1, 33, 1, 29, 1, 25, 1, 29, 1, 44, 1, 25, 1, 227, 1, 12, 1, 227, 1, 235, 1, 12, 1, 249, 0, 12, 1, 235, 1, 25, 1, 230, 1, 227, 1, 6, 1, 230, 1, 25, 1, 249, 0, 235, 1, 234, 1, 232, 1, 249, 0, 234, 1, 4, 0, 27, 0, 25, 0, 25, 0, 27, 0, 47, 0, 4, 0, 6, 0, 27, 0, 25, 0, 47, 0, 44, 0, 153, 1, 6, 0, 4, 0, 44, 0, 47, 0, 67, 0, 153, 1, 155, 1, 6, 0, 44, 0, 67, 0, 64, 0, 133, 1, 155, 1, 153, 1, 64, 0, 67, 0, 88, 0, 133, 1, 135, 1, 155, 1, 64, 0, 88, 0, 86, 0, 113, 1, 135, 1, 133, 1, 86, 0, 88, 0, 108, 0, 113, 1, 115, 1, 135, 1, 86, 0, 108, 0, 105, 0, 92, 1, 115, 1, 113, 1, 105, 0, 108, 0, 127, 0, 92, 1, 95, 1, 115, 1, 105, 0, 127, 0, 126, 0, 73, 1, 95, 1, 92, 1, 126, 0, 127, 0, 148, 0, 73, 1, 75, 1, 95, 1, 126, 0, 148, 0, 145, 0, 52, 1, 75, 1, 73, 1, 145, 0, 148, 0, 167, 0, 52, 1, 54, 1, 75, 1, 145, 0, 167, 0, 165, 0, 33, 1, 54, 1, 52, 1, 165, 0, 167, 0, 186, 0, 33, 1, 34, 1, 54, 1, 165, 0, 186, 0, 183, 0, 186, 0, 239, 1, 183, 0, 186, 0, 236, 1, 239, 1, 12, 1, 34, 1, 33, 1, 12, 1, 14, 1, 34, 1, 249, 0, 14, 1, 12, 1, 249, 0, 251, 0, 14, 1, 249, 0, 233, 1, 251, 0, 249, 0, 232, 1, 233, 1, 6, 0, 30, 0, 27, 0, 27, 0, 30, 0, 47, 0, 155, 1, 30, 0, 6, 0, 47, 0, 30, 0, 92, 0, 47, 0, 92, 0, 67, 0, 67, 0, 92, 0, 88, 0, 155, 1, 139, 1, 30, 0, 135, 1, 139, 1, 155, 1, 115, 1, 139, 1, 135, 1, 95, 1, 139, 1, 115, 1, 88, 0, 92, 0, 112, 0, 88, 0, 112, 0, 108, 0, 108, 0, 112, 0, 127, 0, 92, 0, 115, 0, 112, 0, 92, 0, 95, 0, 115, 0, 112, 0, 115, 0, 135, 0, 92, 0, 75, 0, 95, 0, 30, 0, 75, 0, 92, 0, 30, 0, 54, 0, 75, 0, 30, 0, 35, 0, 54, 0, 30, 0, 15, 0, 35, 0, 139, 1, 15, 0, 30, 0, 112, 0, 135, 0, 156, 0, 139, 1, 163, 1, 15, 0, 139, 1, 143, 1, 163, 1, 139, 1, 123, 1, 143, 1, 112, 0, 156, 0, 171, 0, 171, 0, 156, 0, 176, 0, 127, 0, 112, 0, 171, 0, 127, 0, 171, 0, 148, 0, 171, 0, 176, 0, 193, 0, 148, 0, 171, 0, 167, 0, 99, 1, 123, 1, 139, 1, 99, 1, 103, 1, 123, 1, 95, 1, 99, 1, 139, 1, 75, 1, 99, 1, 95, 1, 99, 1, 82, 1, 103, 1, 54, 1, 99, 1, 75, 1, 58, 1, 82, 1, 99, 1, 54, 1, 58, 1, 99, 1, 58, 1, 63, 1, 82, 1, 34, 1, 58, 1, 54, 1, 18, 1, 63, 1, 58, 1, 34, 1, 18, 1, 58, 1, 18, 1, 43, 1, 63, 1, 14, 1, 18, 1, 34, 1, 18, 1, 22, 1, 43, 1, 251, 0, 18, 1, 14, 1, 228, 1, 22, 1, 18, 1, 233, 1, 231, 1, 251, 0, 228, 1, 251, 0, 231, 1, 228, 1, 3, 1, 22, 1, 228, 1, 224, 1, 3, 1, 224, 1, 226, 1, 3, 1, 15, 0, 37, 0, 35, 0, 35, 0, 37, 0, 56, 0, 15, 0, 17, 0, 37, 0, 35, 0, 56, 0, 54, 0, 163, 1, 17, 0, 15, 0, 54, 0, 56, 0, 77, 0, 163, 1, 165, 1, 17, 0, 54, 0, 77, 0, 75, 0, 143, 1, 165, 1, 163, 1, 75, 0, 77, 0, 98, 0, 143, 1, 145, 1, 165, 1, 75, 0, 98, 0, 95, 0, 123, 1, 145, 1, 143, 1, 95, 0, 98, 0, 118, 0, 123, 1, 125, 1, 145, 1, 95, 0, 118, 0, 115, 0, 103, 1, 125, 1, 123, 1, 115, 0, 118, 0, 137, 0, 103, 1, 105, 1, 125, 1, 115, 0, 137, 0, 135, 0, 82, 1, 105, 1, 103, 1, 135, 0, 137, 0, 158, 0, 82, 1, 85, 1, 105, 1, 135, 0, 158, 0, 156, 0, 63, 1, 85, 1, 82, 1, 156, 0, 158, 0, 177, 0, 63, 1, 64, 1, 85, 1, 156, 0, 177, 0, 176, 0, 43, 1, 64, 1, 63, 1, 176, 0, 177, 0, 196, 0, 43, 1, 44, 1, 64, 1, 176, 0, 196, 0, 193, 0, 196, 0, 221, 1, 193, 0, 196, 0, 220, 1, 221, 1, 22, 1, 44, 1, 43, 1, 22, 1, 25, 1, 44, 1, 3, 1, 25, 1, 22, 1, 3, 1, 6, 1, 25, 1, 3, 1, 225, 1, 6, 1, 3, 1, 226, 1, 225, 1, 82, 0, 64, 0, 86, 0, 77, 0, 82, 0, 98, 0, 82, 0, 86, 0, 105, 0, 82, 0, 105, 0, 126, 0, 82, 0, 126, 0, 141, 0, 118, 0, 82, 0, 141, 0, 98, 0, 82, 0, 118, 0, 118, 0, 141, 0, 137, 0, 141, 0, 126, 0, 145, 0, 141, 0, 145, 0, 163, 0, 158, 0, 141, 0, 163, 0, 137, 0, 141, 0, 158, 0, 158, 0, 163, 0, 177, 0, 145, 0, 165, 0, 163, 0, 163, 0, 218, 1, 177, 0, 218, 1, 196, 0, 177, 0, 163, 0, 240, 1, 218, 1, 163, 0, 241, 1, 240, 1, 163, 0, 238, 1, 241, 1, 183, 0, 239, 1, 238, 1, 196, 0, 218, 1, 219, 1, 219, 1, 220, 1, 196, 0, 238, 1, 163, 0, 165, 0, 238, 1, 165, 0, 183, 0, 167, 0, 222, 1, 186, 0, 167, 0, 171, 0, 222, 1, 222, 1, 237, 1, 186, 0, 186, 0, 237, 1, 236, 1, 171, 0, 193, 0, 222, 1, 223, 1, 222, 1, 193, 0, 221, 1, 223, 1, 193, 0, 229, 1, 6, 1, 225, 1, 230, 1, 6, 1, 229, 1, 251, 0, 228, 1, 18, 1, 19, 2, 5, 2, 255, 1, 25, 2, 5, 2, 19, 2, 255, 1, 20, 2, 19, 2, 3, 2, 5, 2, 25, 2, 20, 2, 255, 1, 4, 2, 4, 2, 255, 1, 254, 1, 20, 2, 4, 2, 248, 1, 12, 2, 248, 1, 4, 2, 12, 2, 249, 1, 248, 1, 3, 2, 243, 1, 5, 2, 5, 2, 243, 1, 244, 1, 2, 2, 243, 1, 3, 2, 247, 1, 249, 1, 12, 2, 247, 1, 12, 2, 27, 2, 247, 1, 0, 2, 249, 1, 247, 1, 1, 2, 0, 2, 247, 1, 7, 2, 1, 2, 2, 2, 30, 2, 243, 1, 243, 1, 30, 2, 242, 1, 21, 2, 30, 2, 2, 2, 251, 1, 30, 2, 21, 2, 250, 1, 30, 2, 251, 1, 246, 1, 7, 2, 247, 1, 246, 1, 247, 1, 245, 1, 246, 1, 8, 2, 7, 2, 15, 2, 8, 2, 246, 1, 15, 2, 246, 1, 6, 2, 15, 2, 9, 2, 8, 2, 15, 2, 18, 2, 9, 2, 15, 2, 13, 2, 18, 2, 24, 2, 13, 2, 15, 2, 24, 2, 15, 2, 23, 2, 24, 2, 14, 2, 13, 2, 252, 1, 14, 2, 24, 2, 252, 1, 24, 2, 26, 2, 252, 1, 22, 2, 14, 2, 252, 1, 28, 2, 22, 2, 252, 1, 32, 2, 28, 2, 32, 2, 252, 1, 31, 2, 31, 2, 252, 1, 253, 1, 32, 2, 31, 2, 29, 2, 29, 2, 31, 2, 16, 2, 16, 2, 31, 2, 17, 2, 17, 2, 31, 2, 10, 2, 10, 2, 31, 2, 33, 2, 17, 2, 10, 2, 250, 1, 250, 1, 10, 2, 30, 2, 30, 2, 10, 2, 11, 2), 0.0373354, PackedByteArray(12, 2, 218, 1, 240, 1, 12, 2, 219, 1, 218, 1, 12, 2, 220, 1, 219, 1, 220, 1, 12, 2, 221, 1, 218, 0, 225, 1, 12, 2, 240, 1, 247, 1, 12, 2, 240, 1, 245, 1, 247, 1, 15, 2, 245, 1, 240, 1, 15, 2, 246, 1, 245, 1, 241, 1, 15, 2, 240, 1, 238, 1, 15, 2, 241, 1, 239, 1, 15, 2, 238, 1, 15, 2, 239, 1, 236, 1, 12, 2, 255, 1, 5, 2, 242, 1, 12, 2, 5, 2, 11, 2, 242, 1, 30, 2, 11, 2, 12, 2, 242, 1, 11, 2, 33, 2, 31, 2, 252, 1, 11, 2, 31, 2, 31, 2, 253, 1, 252, 1, 218, 0, 11, 2, 252, 1, 218, 0, 12, 2, 11, 2, 252, 1, 26, 2, 24, 2, 15, 2, 252, 1, 24, 2, 24, 2, 23, 2, 15, 2, 218, 0, 252, 1, 15, 2, 233, 1, 15, 2, 231, 1, 232, 1, 15, 2, 233, 1, 15, 2, 232, 1, 218, 0, 231, 1, 15, 2, 228, 1, 12, 2, 228, 1, 15, 2, 218, 0, 232, 1, 234, 1, 12, 2, 224, 1, 228, 1, 12, 2, 226, 1, 224, 1, 12, 2, 225, 1, 226, 1, 225, 1, 218, 0, 229, 1, 218, 0, 234, 1, 235, 1, 229, 1, 218, 0, 230, 1, 218, 0, 235, 1, 227, 1, 230, 1, 218, 0, 227, 1, 12, 2, 15, 2, 97, 0, 15, 2, 236, 1, 97, 0, 221, 1, 12, 2, 97, 0, 97, 0, 236, 1, 237, 1, 221, 1, 97, 0, 223, 1, 97, 0, 237, 1, 223, 1, 19, 2, 249, 1, 3, 2, 249, 1, 0, 2, 1, 2, 3, 2, 249, 1, 45, 0, 1, 2, 45, 0, 249, 1, 8, 2, 45, 0, 1, 2, 1, 2, 7, 2, 8, 2, 3, 2, 45, 0, 171, 1, 251, 1, 3, 2, 171, 1, 8, 2, 14, 2, 45, 0, 45, 0, 14, 2, 171, 1, 8, 2, 9, 2, 14, 2, 17, 2, 251, 1, 171, 1, 17, 2, 250, 1, 251, 1, 17, 2, 171, 1, 28, 2, 28, 2, 171, 1, 14, 2, 14, 2, 22, 2, 28, 2, 153, 1, 47, 0, 25, 0, 25, 0, 47, 0, 44, 0, 44, 0, 47, 0, 64, 0, 64, 0, 47, 0, 86, 0, 153, 1, 155, 1, 47, 0, 86, 0, 47, 0, 108, 0, 133, 1, 155, 1, 153, 1, 86, 0, 108, 0, 105, 0, 133, 1, 95, 1, 155, 1, 105, 0, 108, 0, 186, 0, 113, 1, 95, 1, 133, 1, 92, 1, 95, 1, 113, 1, 73, 1, 95, 1, 92, 1, 52, 1, 95, 1, 73, 1, 52, 1, 34, 1, 95, 1, 33, 1, 34, 1, 52, 1, 12, 1, 34, 1, 33, 1, 12, 1, 14, 1, 34, 1, 249, 0, 14, 1, 12, 1, 249, 0, 233, 1, 14, 1, 249, 0, 232, 1, 233, 1, 105, 0, 186, 0, 126, 0, 126, 0, 186, 0, 145, 0, 145, 0, 186, 0, 165, 0, 165, 0, 186, 0, 183, 0, 186, 0, 239, 1, 183, 0, 186, 0, 236, 1, 239, 1, 47, 0, 163, 1, 35, 0, 47, 0, 35, 0, 54, 0, 47, 0, 54, 0, 75, 0, 47, 0, 75, 0, 95, 0, 47, 0, 95, 0, 115, 0, 47, 0, 115, 0, 108, 0, 95, 1, 163, 1, 47, 0, 155, 1, 95, 1, 47, 0, 95, 1, 143, 1, 163, 1, 95, 1, 123, 1, 143, 1, 95, 1, 103, 1, 123, 1, 95, 1, 82, 1, 103, 1, 34, 1, 82, 1, 95, 1, 34, 1, 63, 1, 82, 1, 22, 1, 63, 1, 34, 1, 22, 1, 43, 1, 63, 1, 14, 1, 22, 1, 34, 1, 14, 1, 228, 1, 22, 1, 228, 1, 14, 1, 231, 1, 228, 1, 3, 1, 22, 1, 228, 1, 224, 1, 3, 1, 224, 1, 226, 1, 3, 1, 163, 1, 37, 0, 35, 0, 35, 0, 37, 0, 56, 0, 163, 1, 17, 0, 37, 0, 35, 0, 56, 0, 54, 0, 163, 1, 145, 1, 17, 0, 54, 0, 56, 0, 77, 0, 143, 1, 145, 1, 163, 1, 54, 0, 77, 0, 75, 0, 123, 1, 145, 1, 143, 1, 75, 0, 77, 0, 98, 0, 123, 1, 105, 1, 145, 1, 75, 0, 98, 0, 95, 0, 103, 1, 105, 1, 123, 1, 95, 0, 98, 0, 118, 0, 82, 1, 105, 1, 103, 1, 95, 0, 118, 0, 115, 0, 82, 1, 64, 1, 105, 1, 115, 0, 118, 0, 137, 0, 63, 1, 64, 1, 82, 1, 115, 0, 137, 0, 135, 0, 43, 1, 64, 1, 63, 1, 135, 0, 137, 0, 156, 0, 43, 1, 25, 1, 64, 1, 156, 0, 137, 0, 177, 0, 22, 1, 25, 1, 43, 1, 156, 0, 177, 0, 176, 0, 3, 1, 25, 1, 22, 1, 176, 0, 177, 0, 196, 0, 3, 1, 6, 1, 25, 1, 3, 1, 225, 1, 6, 1, 3, 1, 226, 1, 225, 1, 176, 0, 196, 0, 193, 0, 196, 0, 221, 1, 193, 0, 196, 0, 220, 1, 221, 1, 17, 0, 25, 0, 37, 0, 145, 1, 25, 0, 17, 0, 145, 1, 153, 1, 25, 0, 145, 1, 133, 1, 153, 1, 145, 1, 113, 1, 133, 1, 37, 0, 25, 0, 60, 0, 25, 0, 44, 0, 60, 0, 60, 0, 44, 0, 64, 0, 37, 0, 60, 0, 56, 0, 56, 0, 60, 0, 77, 0, 60, 0, 105, 0, 126, 0, 60, 0, 86, 0, 105, 0, 137, 0, 126, 0, 145, 0, 98, 0, 60, 0, 126, 0, 98, 0, 126, 0, 118, 0, 118, 0, 126, 0, 137, 0, 137, 0, 145, 0, 165, 0, 137, 0, 165, 0, 177, 0, 165, 0, 218, 1, 177, 0, 218, 1, 196, 0, 177, 0, 238, 1, 165, 0, 183, 0, 165, 0, 238, 1, 241, 1, 165, 0, 241, 1, 240, 1, 165, 0, 240, 1, 218, 1, 196, 0, 218, 1, 219, 1, 219, 1, 220, 1, 196, 0, 60, 0, 64, 0, 86, 0, 77, 0, 60, 0, 98, 0, 108, 0, 115, 0, 186, 0, 115, 0, 135, 0, 156, 0, 115, 0, 156, 0, 186, 0, 186, 0, 156, 0, 176, 0, 186, 0, 176, 0, 193, 0, 186, 0, 193, 0, 223, 1, 221, 1, 223, 1, 193, 0, 223, 1, 237, 1, 186, 0, 186, 0, 237, 1, 236, 1, 183, 0, 239, 1, 238, 1, 232, 1, 249, 0, 234, 1, 249, 0, 235, 1, 234, 1, 233, 1, 231, 1, 14, 1, 229, 1, 6, 1, 225, 1, 230, 1, 6, 1, 229, 1, 227, 1, 235, 1, 12, 1, 249, 0, 12, 1, 235, 1, 25, 1, 227, 1, 12, 1, 25, 1, 230, 1, 227, 1, 6, 1, 230, 1, 25, 1, 12, 1, 33, 1, 25, 1, 25, 1, 33, 1, 52, 1, 25, 1, 52, 1, 73, 1, 64, 1, 25, 1, 92, 1, 25, 1, 73, 1, 92, 1, 105, 1, 92, 1, 145, 1, 64, 1, 92, 1, 105, 1, 92, 1, 113, 1, 145, 1, 19, 2, 5, 2, 255, 1, 3, 2, 5, 2, 19, 2, 255, 1, 249, 1, 19, 2, 3, 2, 242, 1, 5, 2, 249, 1, 255, 1, 12, 2, 3, 2, 30, 2, 242, 1, 251, 1, 30, 2, 3, 2, 250, 1, 30, 2, 251, 1, 250, 1, 11, 2, 30, 2, 247, 1, 249, 1, 12, 2, 17, 2, 11, 2, 250, 1, 247, 1, 0, 2, 249, 1, 247, 1, 1, 2, 0, 2, 247, 1, 7, 2, 1, 2, 246, 1, 7, 2, 247, 1, 246, 1, 247, 1, 245, 1, 246, 1, 8, 2, 7, 2, 15, 2, 8, 2, 246, 1, 15, 2, 9, 2, 8, 2, 15, 2, 14, 2, 9, 2, 24, 2, 14, 2, 15, 2, 24, 2, 15, 2, 23, 2, 252, 1, 14, 2, 24, 2, 252, 1, 24, 2, 26, 2, 252, 1, 22, 2, 14, 2, 252, 1, 28, 2, 22, 2, 252, 1, 17, 2, 28, 2, 17, 2, 252, 1, 31, 2, 31, 2, 252, 1, 253, 1, 17, 2, 31, 2, 11, 2, 11, 2, 31, 2, 33, 2), 0.0615714, PackedByteArray(221, 1, 12, 2, 223, 1, 220, 1, 12, 2, 221, 1, 12, 2, 220, 1, 219, 1, 219, 1, 247, 1, 12, 2, 219, 1, 246, 1, 247, 1, 15, 2, 246, 1, 219, 1, 12, 2, 15, 2, 223, 1, 238, 1, 15, 2, 219, 1, 15, 2, 236, 1, 223, 1, 239, 1, 15, 2, 238, 1, 15, 2, 239, 1, 236, 1, 12, 2, 255, 1, 5, 2, 242, 1, 12, 2, 5, 2, 230, 1, 12, 2, 242, 1, 230, 1, 242, 1, 30, 2, 230, 1, 30, 2, 252, 1, 252, 1, 234, 1, 230, 1, 252, 1, 232, 1, 234, 1, 15, 2, 232, 1, 252, 1, 15, 2, 252, 1, 23, 2, 232, 1, 15, 2, 233, 1, 233, 1, 15, 2, 224, 1, 12, 2, 224, 1, 15, 2, 12, 2, 226, 1, 224, 1, 12, 2, 225, 1, 226, 1, 230, 1, 225, 1, 12, 2, 19, 2, 249, 1, 3, 2, 249, 1, 0, 2, 1, 2, 28, 2, 3, 2, 1, 2, 251, 1, 3, 2, 28, 2, 28, 2, 1, 2, 8, 2, 8, 2, 14, 2, 28, 2, 153, 1, 108, 0, 86, 0, 86, 0, 108, 0, 126, 0, 126, 0, 108, 0, 145, 0, 108, 0, 239, 1, 145, 0, 108, 0, 236, 1, 239, 1, 153, 1, 14, 1, 108, 0, 92, 1, 14, 1, 153, 1, 12, 1, 14, 1, 92, 1, 249, 0, 14, 1, 12, 1, 249, 0, 233, 1, 14, 1, 249, 0, 232, 1, 233, 1, 35, 0, 37, 0, 77, 0, 35, 0, 77, 0, 118, 0, 35, 0, 118, 0, 115, 0, 115, 0, 118, 0, 137, 0, 115, 0, 137, 0, 196, 0, 115, 0, 196, 0, 193, 0, 196, 0, 221, 1, 193, 0, 196, 0, 220, 1, 221, 1, 123, 1, 37, 0, 35, 0, 123, 1, 125, 1, 37, 0, 123, 1, 105, 1, 125, 1, 123, 1, 64, 1, 105, 1, 22, 1, 64, 1, 123, 1, 22, 1, 25, 1, 64, 1, 22, 1, 6, 1, 25, 1, 22, 1, 225, 1, 6, 1, 22, 1, 226, 1, 225, 1, 37, 0, 153, 1, 77, 0, 108, 0, 35, 0, 115, 0, 108, 0, 115, 0, 193, 0, 14, 1, 35, 0, 108, 0, 14, 1, 123, 1, 35, 0, 14, 1, 22, 1, 123, 1, 14, 1, 224, 1, 22, 1, 108, 0, 193, 0, 223, 1, 221, 1, 223, 1, 193, 0, 108, 0, 223, 1, 236, 1, 77, 0, 153, 1, 118, 0, 118, 0, 153, 1, 126, 0, 153, 1, 86, 0, 126, 0, 118, 0, 126, 0, 137, 0, 137, 0, 126, 0, 145, 0, 137, 0, 145, 0, 196, 0, 145, 0, 238, 1, 219, 1, 145, 0, 239, 1, 238, 1, 145, 0, 219, 1, 196, 0, 219, 1, 220, 1, 196, 0, 37, 0, 125, 1, 153, 1, 105, 1, 153, 1, 125, 1, 105, 1, 92, 1, 153, 1, 64, 1, 25, 1, 105, 1, 232, 1, 249, 0, 234, 1, 233, 1, 224, 1, 14, 1, 224, 1, 226, 1, 22, 1, 230, 1, 6, 1, 225, 1, 6, 1, 230, 1, 25, 1, 25, 1, 230, 1, 12, 1, 230, 1, 234, 1, 12, 1, 249, 0, 12, 1, 234, 1, 25, 1, 92, 1, 105, 1, 25, 1, 12, 1, 92, 1, 3, 2, 249, 1, 1, 2, 19, 2, 5, 2, 255, 1, 3, 2, 5, 2, 19, 2, 255, 1, 249, 1, 19, 2, 3, 2, 242, 1, 5, 2, 249, 1, 255, 1, 12, 2, 3, 2, 30, 2, 242, 1, 251, 1, 30, 2, 3, 2, 28, 2, 30, 2, 251, 1, 247, 1, 249, 1, 12, 2, 247, 1, 0, 2, 249, 1, 247, 1, 1, 2, 0, 2, 247, 1, 8, 2, 1, 2, 246, 1, 8, 2, 247, 1, 15, 2, 8, 2, 246, 1, 15, 2, 9, 2, 8, 2, 15, 2, 14, 2, 9, 2, 23, 2, 14, 2, 15, 2, 252, 1, 14, 2, 23, 2, 252, 1, 28, 2, 14, 2, 28, 2, 252, 1, 30, 2, 8, 2, 9, 2, 14, 2), 0.0738546, PackedByteArray(221, 1, 233, 1, 223, 1, 233, 1, 236, 1, 223, 1, 221, 1, 244, 1, 233, 1, 220, 1, 244, 1, 221, 1, 244, 1, 220, 1, 219, 1, 244, 1, 224, 1, 233, 1, 244, 1, 226, 1, 224, 1, 244, 1, 225, 1, 226, 1, 234, 1, 225, 1, 244, 1, 219, 1, 246, 1, 244, 1, 234, 1, 244, 1, 252, 1, 252, 1, 232, 1, 234, 1, 233, 1, 232, 1, 252, 1, 15, 2, 246, 1, 219, 1, 233, 1, 252, 1, 15, 2, 15, 2, 236, 1, 233, 1, 15, 2, 252, 1, 26, 2, 15, 2, 239, 1, 236, 1, 239, 1, 15, 2, 219, 1, 115, 0, 64, 1, 118, 0, 118, 0, 221, 1, 115, 0, 118, 0, 220, 1, 221, 1, 22, 1, 64, 1, 115, 0, 22, 1, 25, 1, 64, 1, 22, 1, 6, 1, 25, 1, 22, 1, 225, 1, 6, 1, 22, 1, 226, 1, 225, 1, 64, 1, 44, 0, 118, 0, 64, 1, 92, 1, 44, 0, 25, 1, 92, 1, 64, 1, 44, 0, 239, 1, 219, 1, 44, 0, 219, 1, 118, 0, 219, 1, 220, 1, 118, 0, 47, 0, 115, 0, 223, 1, 47, 0, 223, 1, 236, 1, 221, 1, 223, 1, 115, 0, 95, 1, 115, 0, 47, 0, 95, 1, 22, 1, 115, 0, 95, 1, 224, 1, 22, 1, 233, 1, 224, 1, 95, 1, 47, 0, 239, 1, 44, 0, 47, 0, 236, 1, 239, 1, 44, 0, 95, 1, 47, 0, 92, 1, 95, 1, 44, 0, 249, 0, 95, 1, 92, 1, 249, 0, 233, 1, 95, 1, 249, 0, 232, 1, 233, 1, 232, 1, 249, 0, 234, 1, 234, 1, 6, 1, 225, 1, 6, 1, 234, 1, 25, 1, 25, 1, 234, 1, 249, 0, 224, 1, 226, 1, 22, 1, 25, 1, 249, 0, 92, 1, 246, 1, 14, 2, 244, 1, 14, 2, 252, 1, 244, 1, 15, 2, 14, 2, 246, 1, 252, 1, 14, 2, 26, 2, 26, 2, 14, 2, 15, 2)], +"primitive": 3, +"vertex_count": 546, +"vertex_data": PackedByteArray(70, 122, 184, 61, 34, 123, 193, 60, 0, 0, 0, 128, 0, 0, 0, 0, 188, 198, 45, 61, 204, 98, 109, 189, 0, 0, 0, 0, 227, 1, 229, 60, 155, 213, 84, 189, 171, 151, 183, 61, 158, 211, 194, 60, 0, 155, 192, 59, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 60, 242, 109, 126, 60, 57, 98, 109, 61, 204, 98, 109, 189, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 60, 143, 194, 117, 60, 188, 198, 45, 61, 21, 76, 101, 189, 0, 0, 0, 0, 57, 98, 109, 61, 174, 71, 97, 189, 213, 23, 176, 61, 24, 58, 206, 60, 0, 155, 192, 59, 166, 87, 92, 60, 227, 1, 229, 60, 14, 149, 77, 189, 58, 53, 175, 61, 148, 146, 207, 60, 217, 185, 180, 33, 0, 0, 0, 0, 178, 19, 51, 61, 144, 154, 89, 189, 213, 23, 176, 61, 24, 58, 206, 60, 0, 155, 192, 187, 167, 232, 51, 60, 168, 107, 126, 60, 113, 219, 39, 189, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 188, 0, 0, 0, 0, 96, 44, 156, 60, 9, 76, 31, 189, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 188, 242, 109, 254, 59, 240, 100, 196, 59, 204, 98, 237, 188, 171, 151, 183, 61, 158, 211, 194, 60, 0, 155, 192, 187, 208, 179, 131, 59, 0, 0, 19, 181, 143, 194, 117, 188, 112, 62, 188, 61, 250, 36, 252, 60, 0, 0, 0, 128, 143, 194, 245, 60, 57, 98, 109, 61, 155, 213, 84, 189, 107, 73, 187, 61, 164, 94, 252, 60, 0, 155, 192, 59, 204, 98, 237, 60, 188, 198, 45, 61, 14, 149, 77, 189, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 60, 155, 213, 212, 60, 227, 1, 229, 60, 235, 81, 56, 189, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 60, 148, 45, 179, 61, 47, 71, 254, 60, 0, 155, 192, 59, 30, 58, 105, 60, 57, 98, 109, 61, 144, 154, 89, 189, 142, 56, 178, 61, 218, 128, 254, 60, 217, 185, 180, 33, 79, 199, 173, 60, 168, 107, 126, 60, 35, 127, 22, 189, 173, 71, 97, 60, 178, 19, 51, 61, 104, 48, 82, 189, 148, 45, 179, 61, 47, 71, 254, 60, 0, 155, 192, 187, 143, 194, 117, 60, 240, 100, 196, 59, 155, 213, 212, 188, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 188, 242, 109, 254, 59, 0, 0, 19, 181, 166, 87, 92, 188, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 188, 4, 251, 73, 60, 196, 124, 249, 60, 77, 115, 60, 189, 107, 73, 187, 61, 164, 94, 252, 60, 0, 155, 192, 187, 76, 152, 188, 61, 76, 206, 27, 61, 0, 0, 0, 128, 153, 234, 36, 60, 96, 44, 156, 60, 125, 222, 25, 189, 80, 199, 45, 61, 57, 98, 109, 61, 80, 199, 45, 189, 144, 161, 187, 61, 194, 89, 27, 61, 0, 155, 192, 59, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 60, 30, 58, 233, 59, 84, 36, 41, 60, 144, 154, 217, 188, 113, 219, 39, 61, 188, 198, 45, 61, 113, 219, 39, 189, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 60, 82, 116, 113, 59, 72, 61, 158, 59, 174, 71, 97, 188, 47, 119, 179, 61, 106, 126, 23, 61, 0, 155, 192, 59, 36, 127, 22, 61, 227, 1, 229, 60, 36, 127, 22, 189, 114, 128, 178, 61, 224, 9, 23, 61, 217, 185, 180, 33, 47, 119, 179, 61, 106, 126, 23, 61, 0, 155, 192, 187, 142, 194, 245, 60, 168, 107, 126, 60, 140, 194, 245, 188, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 188, 80, 199, 173, 60, 240, 100, 196, 59, 80, 199, 173, 188, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 188, 167, 232, 51, 60, 0, 0, 19, 181, 167, 232, 51, 188, 144, 161, 187, 61, 194, 89, 27, 61, 0, 155, 192, 187, 156, 213, 84, 61, 57, 98, 109, 61, 144, 194, 245, 188, 188, 129, 185, 61, 64, 234, 55, 61, 0, 0, 0, 128, 13, 149, 77, 61, 188, 198, 45, 61, 202, 98, 237, 188, 24, 154, 184, 61, 72, 236, 54, 61, 0, 155, 192, 59, 235, 81, 56, 61, 227, 1, 229, 60, 154, 213, 212, 188, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 174, 71, 225, 60, 57, 98, 109, 61, 35, 25, 67, 189, 144, 154, 217, 60, 178, 19, 51, 61, 76, 115, 60, 189, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 60, 35, 25, 67, 61, 196, 124, 249, 60, 0, 0, 128, 176, 162, 239, 176, 61, 155, 132, 46, 61, 0, 155, 192, 59, 35, 127, 22, 61, 168, 107, 126, 60, 77, 199, 173, 188, 254, 7, 176, 61, 163, 134, 45, 61, 217, 185, 180, 33, 36, 25, 195, 60, 196, 124, 249, 60, 194, 245, 40, 189, 162, 239, 176, 61, 155, 132, 46, 61, 0, 155, 192, 187, 156, 213, 212, 60, 240, 100, 196, 59, 144, 194, 117, 188, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 188, 9, 76, 159, 60, 96, 44, 156, 60, 139, 244, 9, 189, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 166, 87, 92, 60, 0, 0, 19, 181, 240, 109, 254, 187, 24, 154, 184, 61, 72, 236, 54, 61, 0, 155, 192, 187, 174, 71, 97, 60, 84, 36, 41, 60, 35, 25, 195, 188, 204, 98, 109, 61, 57, 98, 109, 61, 243, 109, 126, 188, 158, 48, 179, 61, 246, 123, 80, 61, 0, 0, 0, 128, 30, 58, 233, 59, 72, 61, 158, 59, 3, 251, 73, 188, 221, 103, 178, 61, 222, 5, 79, 61, 0, 155, 192, 59, 20, 76, 101, 61, 188, 198, 45, 61, 140, 194, 117, 188, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 14, 149, 77, 61, 227, 1, 229, 60, 165, 87, 92, 188, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 60, 14, 195, 171, 61, 128, 164, 66, 61, 0, 155, 192, 59, 112, 219, 39, 61, 168, 107, 126, 60, 164, 232, 51, 188, 204, 98, 237, 60, 240, 100, 196, 59, 243, 109, 254, 187, 76, 250, 170, 61, 104, 46, 65, 61, 217, 185, 180, 33, 143, 194, 117, 60, 0, 0, 19, 181, 206, 179, 131, 187, 14, 195, 171, 61, 128, 164, 66, 61, 0, 155, 192, 187, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 188, 143, 194, 117, 61, 57, 98, 109, 61, 0, 0, 128, 176, 203, 98, 109, 61, 188, 198, 45, 61, 0, 0, 0, 49, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 221, 103, 178, 61, 222, 5, 79, 61, 0, 155, 192, 187, 9, 76, 31, 61, 57, 98, 109, 61, 8, 76, 31, 189, 39, 19, 170, 61, 204, 214, 99, 61, 0, 0, 0, 128, 155, 213, 84, 61, 227, 1, 229, 60, 0, 0, 128, 48, 125, 222, 25, 61, 178, 19, 51, 61, 124, 222, 25, 189, 247, 118, 169, 61, 19, 2, 98, 61, 0, 155, 192, 59, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 60, 78, 199, 45, 61, 168, 107, 126, 60, 0, 0, 0, 49, 140, 244, 9, 61, 196, 124, 249, 60, 140, 244, 9, 189, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 60, 143, 194, 245, 60, 240, 100, 196, 59, 0, 0, 0, 176, 183, 75, 164, 61, 0, 127, 82, 61, 0, 155, 192, 59, 173, 71, 225, 60, 96, 44, 156, 60, 172, 71, 225, 188, 135, 175, 163, 61, 70, 170, 80, 61, 217, 185, 180, 33, 183, 75, 164, 61, 0, 127, 82, 61, 0, 155, 192, 187, 241, 109, 126, 60, 0, 0, 19, 181, 0, 0, 64, 48, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 188, 9, 76, 159, 60, 84, 36, 41, 60, 8, 76, 159, 188, 204, 98, 109, 61, 57, 98, 109, 61, 241, 109, 126, 60, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 154, 234, 36, 60, 72, 61, 158, 59, 153, 234, 36, 188, 247, 118, 169, 61, 19, 2, 98, 61, 0, 155, 192, 187, 93, 200, 158, 61, 25, 169, 112, 61, 0, 0, 0, 128, 20, 76, 101, 61, 188, 198, 45, 61, 144, 194, 117, 60, 14, 149, 77, 61, 227, 1, 229, 60, 167, 87, 92, 60, 98, 99, 158, 61, 176, 149, 110, 61, 0, 155, 192, 59, 112, 219, 39, 61, 168, 107, 126, 60, 168, 232, 51, 60, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 60, 204, 98, 237, 60, 240, 100, 196, 59, 241, 109, 254, 59, 224, 11, 155, 61, 134, 255, 92, 61, 0, 155, 192, 59, 142, 194, 117, 60, 0, 0, 19, 181, 208, 179, 131, 59, 229, 166, 154, 61, 30, 236, 90, 61, 217, 185, 180, 33, 35, 25, 67, 61, 57, 98, 109, 61, 172, 71, 225, 188, 224, 11, 155, 61, 134, 255, 92, 61, 0, 155, 192, 187, 155, 213, 84, 61, 57, 98, 109, 61, 142, 194, 245, 60, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 188, 76, 115, 60, 61, 178, 19, 51, 61, 142, 154, 217, 188, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 13, 149, 77, 61, 188, 198, 45, 61, 204, 98, 237, 60, 98, 99, 158, 61, 176, 149, 110, 61, 0, 155, 192, 187, 235, 81, 56, 61, 227, 1, 229, 60, 156, 213, 212, 60, 64, 21, 146, 61, 45, 19, 118, 61, 0, 0, 0, 128, 194, 245, 40, 61, 196, 124, 249, 60, 36, 25, 195, 188, 92, 238, 145, 61, 76, 229, 115, 61, 0, 155, 192, 59, 139, 244, 9, 61, 96, 44, 156, 60, 7, 76, 159, 188, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 34, 127, 22, 61, 168, 107, 126, 60, 79, 199, 173, 60, 35, 25, 195, 60, 84, 36, 41, 60, 172, 71, 97, 188, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 60, 229, 164, 144, 61, 219, 110, 97, 61, 0, 155, 192, 59, 155, 213, 212, 60, 240, 100, 196, 59, 142, 194, 117, 60, 3, 251, 73, 60, 72, 61, 158, 59, 29, 58, 233, 187, 1, 126, 144, 61, 250, 64, 95, 61, 217, 185, 180, 33, 229, 164, 144, 61, 219, 110, 97, 61, 0, 155, 192, 187, 165, 87, 92, 60, 0, 0, 19, 181, 242, 109, 254, 59, 80, 199, 45, 61, 57, 98, 109, 61, 79, 199, 45, 61, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 188, 112, 219, 39, 61, 188, 198, 45, 61, 113, 219, 39, 61, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 188, 92, 238, 145, 61, 76, 229, 115, 61, 0, 155, 192, 187, 36, 127, 22, 61, 227, 1, 229, 60, 36, 127, 22, 61, 95, 215, 132, 61, 146, 182, 115, 61, 0, 0, 0, 128, 138, 194, 245, 60, 168, 107, 126, 60, 142, 194, 245, 60, 57, 241, 132, 61, 61, 148, 113, 61, 0, 155, 192, 59, 80, 199, 173, 60, 240, 100, 196, 59, 79, 199, 173, 60, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 166, 232, 51, 60, 0, 0, 19, 181, 167, 232, 51, 60, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 60, 144, 154, 89, 61, 57, 98, 109, 61, 25, 58, 105, 188, 144, 194, 245, 60, 57, 98, 109, 61, 155, 213, 84, 61, 64, 204, 133, 61, 160, 127, 95, 61, 0, 155, 192, 59, 26, 230, 133, 61, 76, 93, 93, 61, 217, 185, 180, 33, 103, 48, 82, 61, 178, 19, 51, 61, 169, 71, 97, 188, 64, 204, 133, 61, 160, 127, 95, 61, 0, 155, 192, 187, 200, 98, 237, 60, 188, 198, 45, 61, 12, 149, 77, 61, 76, 115, 60, 61, 196, 124, 249, 60, 4, 251, 73, 188, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 188, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 124, 222, 25, 61, 96, 44, 156, 60, 150, 234, 36, 188, 57, 241, 132, 61, 61, 148, 113, 61, 0, 155, 192, 187, 154, 213, 212, 60, 227, 1, 229, 60, 235, 81, 56, 61, 144, 154, 217, 60, 84, 36, 41, 60, 25, 58, 233, 187, 75, 199, 173, 60, 168, 107, 126, 60, 35, 127, 22, 61, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 144, 194, 117, 60, 240, 100, 196, 59, 155, 213, 212, 60, 173, 71, 97, 60, 72, 61, 158, 59, 80, 116, 113, 187, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 60, 238, 109, 254, 59, 0, 0, 19, 181, 166, 87, 92, 60, 83, 126, 118, 61, 148, 83, 87, 61, 0, 155, 192, 59, 244, 109, 126, 60, 57, 98, 109, 61, 204, 98, 109, 61, 253, 47, 119, 61, 6, 98, 85, 61, 217, 185, 180, 33, 83, 126, 118, 61, 148, 83, 87, 61, 0, 155, 192, 187, 137, 194, 117, 60, 188, 198, 45, 61, 18, 76, 101, 61, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 188, 165, 87, 92, 60, 227, 1, 229, 60, 14, 149, 77, 61, 160, 232, 51, 60, 168, 107, 126, 60, 111, 219, 39, 61, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 173, 71, 97, 61, 57, 98, 109, 61, 0, 0, 128, 49, 244, 109, 254, 59, 240, 100, 196, 59, 204, 98, 237, 60, 143, 154, 89, 61, 178, 19, 51, 61, 0, 0, 64, 49, 204, 179, 131, 59, 0, 0, 19, 181, 142, 194, 117, 60, 0, 0, 0, 49, 57, 98, 109, 61, 143, 194, 117, 61, 0, 0, 64, 177, 188, 198, 45, 61, 201, 98, 109, 61, 7, 76, 31, 61, 96, 44, 156, 60, 0, 0, 0, 49, 0, 0, 128, 176, 227, 1, 229, 60, 155, 213, 84, 61, 173, 71, 225, 60, 84, 36, 41, 60, 0, 0, 0, 49, 28, 58, 105, 60, 72, 61, 158, 59, 0, 0, 128, 47, 0, 0, 160, 177, 168, 107, 126, 60, 77, 199, 45, 61, 0, 0, 128, 48, 240, 100, 196, 59, 143, 194, 245, 60, 0, 0, 192, 176, 0, 0, 19, 181, 240, 109, 126, 60, 240, 109, 126, 188, 57, 98, 109, 61, 204, 98, 109, 61, 143, 194, 117, 188, 188, 198, 45, 61, 18, 76, 101, 61, 167, 87, 92, 188, 227, 1, 229, 60, 14, 149, 77, 61, 143, 154, 89, 61, 57, 98, 109, 61, 33, 58, 105, 60, 169, 232, 51, 188, 168, 107, 126, 60, 111, 219, 39, 61, 103, 48, 82, 61, 178, 19, 51, 61, 175, 71, 97, 60, 240, 109, 254, 187, 240, 100, 196, 59, 204, 98, 237, 60, 76, 115, 60, 61, 196, 124, 249, 60, 2, 251, 73, 60, 210, 179, 131, 187, 0, 0, 19, 181, 141, 194, 117, 60, 123, 222, 25, 61, 96, 44, 156, 60, 153, 234, 36, 60, 142, 194, 245, 188, 57, 98, 109, 61, 155, 213, 84, 61, 202, 98, 237, 188, 188, 198, 45, 61, 11, 149, 77, 61, 143, 154, 217, 60, 84, 36, 41, 60, 33, 58, 233, 59, 156, 213, 212, 188, 227, 1, 229, 60, 235, 81, 56, 61, 172, 71, 97, 60, 72, 61, 158, 59, 81, 116, 113, 59, 79, 199, 173, 188, 168, 107, 126, 60, 34, 127, 22, 61, 142, 194, 117, 188, 240, 100, 196, 59, 155, 213, 212, 60, 242, 109, 254, 187, 0, 0, 19, 181, 164, 87, 92, 60, 79, 199, 45, 189, 57, 98, 109, 61, 80, 199, 45, 61, 112, 219, 39, 189, 188, 198, 45, 61, 110, 219, 39, 61, 36, 127, 22, 189, 227, 1, 229, 60, 36, 127, 22, 61, 34, 25, 67, 61, 57, 98, 109, 61, 174, 71, 225, 60, 142, 194, 245, 188, 168, 107, 126, 60, 138, 194, 245, 60, 75, 115, 60, 61, 178, 19, 51, 61, 144, 154, 217, 60, 79, 199, 173, 188, 240, 100, 196, 59, 80, 199, 173, 60, 193, 245, 40, 61, 196, 124, 249, 60, 34, 25, 195, 60, 167, 232, 51, 188, 0, 0, 19, 181, 165, 232, 51, 60, 137, 244, 9, 61, 96, 44, 156, 60, 8, 76, 159, 60, 34, 25, 195, 60, 84, 36, 41, 60, 174, 71, 97, 60, 155, 213, 84, 189, 57, 98, 109, 61, 144, 194, 245, 60, 1, 251, 73, 60, 72, 61, 158, 59, 28, 58, 233, 59, 11, 149, 77, 189, 188, 198, 45, 61, 199, 98, 237, 60, 235, 81, 56, 189, 227, 1, 229, 60, 154, 213, 212, 60, 35, 127, 22, 189, 168, 107, 126, 60, 75, 199, 173, 60, 155, 213, 212, 188, 240, 100, 196, 59, 144, 194, 117, 60, 165, 87, 92, 188, 0, 0, 19, 181, 236, 109, 254, 59, 0, 0, 0, 0, 0, 0, 97, 181, 0, 0, 0, 128, 204, 98, 109, 189, 57, 98, 109, 61, 244, 109, 126, 60, 7, 76, 31, 61, 57, 98, 109, 61, 8, 76, 31, 61, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 17, 76, 101, 189, 188, 198, 45, 61, 136, 194, 117, 60, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 60, 123, 222, 25, 61, 178, 19, 51, 61, 124, 222, 25, 61, 14, 149, 77, 189, 227, 1, 229, 60, 165, 87, 92, 60, 216, 164, 70, 61, 130, 215, 178, 60, 0, 155, 192, 59, 31, 116, 72, 61, 114, 211, 180, 60, 217, 185, 180, 33, 139, 244, 9, 61, 196, 124, 249, 60, 139, 244, 9, 61, 216, 164, 70, 61, 130, 215, 178, 60, 0, 155, 192, 187, 111, 219, 39, 189, 168, 107, 126, 60, 160, 232, 51, 60, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 188, 168, 71, 225, 60, 96, 44, 156, 60, 171, 71, 225, 60, 204, 98, 237, 188, 240, 100, 196, 59, 244, 109, 254, 59, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 7, 76, 159, 60, 84, 36, 41, 60, 8, 76, 159, 60, 141, 194, 117, 188, 0, 0, 19, 181, 202, 179, 131, 59, 225, 34, 66, 61, 140, 209, 93, 60, 0, 0, 0, 128, 151, 234, 36, 60, 72, 61, 158, 59, 152, 234, 36, 60, 98, 180, 67, 61, 236, 169, 99, 60, 0, 155, 192, 59, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 143, 194, 117, 189, 57, 98, 109, 61, 0, 0, 0, 49, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 200, 98, 109, 189, 188, 198, 45, 61, 0, 0, 64, 177, 155, 213, 84, 189, 227, 1, 229, 60, 0, 0, 128, 176, 2, 254, 80, 61, 178, 151, 138, 60, 0, 155, 192, 59, 131, 143, 82, 61, 226, 131, 141, 60, 217, 185, 180, 33, 77, 199, 45, 189, 168, 107, 126, 60, 0, 0, 160, 177, 143, 194, 245, 188, 240, 100, 196, 59, 0, 0, 128, 48, 2, 254, 80, 61, 178, 151, 138, 60, 0, 155, 192, 187, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 170, 71, 225, 60, 57, 98, 109, 61, 34, 25, 67, 61, 239, 109, 126, 188, 0, 0, 19, 181, 0, 0, 0, 177, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 98, 180, 67, 61, 236, 169, 99, 60, 0, 155, 192, 187, 140, 154, 217, 60, 178, 19, 51, 61, 75, 115, 60, 61, 204, 98, 109, 189, 57, 98, 109, 61, 240, 109, 126, 188, 204, 93, 84, 61, 60, 102, 16, 60, 0, 0, 0, 128, 34, 25, 195, 60, 196, 124, 249, 60, 193, 245, 40, 61, 45, 150, 85, 61, 28, 185, 23, 60, 0, 155, 192, 59, 17, 76, 101, 189, 188, 198, 45, 61, 142, 194, 117, 188, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 60, 4, 76, 159, 60, 96, 44, 156, 60, 138, 244, 9, 61, 14, 149, 77, 189, 227, 1, 229, 60, 167, 87, 92, 188, 172, 236, 95, 61, 108, 197, 85, 60, 0, 155, 192, 59, 170, 71, 97, 60, 84, 36, 41, 60, 34, 25, 195, 60, 12, 37, 97, 61, 80, 24, 93, 60, 217, 185, 180, 33, 172, 236, 95, 61, 108, 197, 85, 60, 0, 155, 192, 187, 111, 219, 39, 189, 168, 107, 126, 60, 169, 232, 51, 188, 204, 98, 237, 188, 240, 100, 196, 59, 240, 109, 254, 187, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 188, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 188, 26, 58, 233, 59, 72, 61, 158, 59, 2, 251, 73, 60, 139, 194, 117, 188, 0, 0, 19, 181, 210, 179, 131, 187, 45, 150, 85, 61, 28, 185, 23, 60, 0, 155, 192, 187, 100, 243, 106, 61, 8, 58, 186, 59, 0, 0, 0, 128, 155, 213, 84, 189, 57, 98, 109, 61, 142, 194, 245, 188, 89, 189, 107, 61, 72, 213, 202, 59, 0, 155, 192, 59, 10, 149, 77, 189, 188, 198, 45, 61, 202, 98, 237, 188, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 60, 235, 81, 56, 189, 227, 1, 229, 60, 156, 213, 212, 188, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 60, 34, 127, 22, 189, 168, 107, 126, 60, 79, 199, 173, 188, 24, 58, 105, 60, 57, 98, 109, 61, 142, 154, 89, 61, 93, 108, 114, 61, 80, 195, 43, 60, 0, 155, 192, 59, 82, 54, 115, 61, 244, 16, 52, 60, 217, 185, 180, 33, 155, 213, 212, 188, 240, 100, 196, 59, 142, 194, 117, 188, 93, 108, 114, 61, 80, 195, 43, 60, 0, 155, 192, 187, 162, 87, 92, 188, 0, 0, 19, 181, 242, 109, 254, 187, 166, 71, 97, 60, 178, 19, 51, 61, 102, 48, 82, 61, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 188, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 80, 199, 45, 189, 57, 98, 109, 61, 79, 199, 45, 189, 1, 251, 73, 60, 196, 124, 249, 60, 75, 115, 60, 61, 89, 189, 107, 61, 72, 213, 202, 59, 0, 155, 192, 187, 109, 219, 39, 189, 188, 198, 45, 61, 111, 219, 39, 189, 205, 44, 130, 61, 104, 233, 142, 59, 0, 0, 0, 128, 145, 234, 36, 60, 96, 44, 156, 60, 122, 222, 25, 61, 177, 83, 130, 61, 120, 88, 160, 59, 0, 155, 192, 59, 36, 127, 22, 189, 227, 1, 229, 60, 36, 127, 22, 189, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 24, 58, 233, 59, 84, 36, 41, 60, 142, 154, 217, 60, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 60, 40, 157, 131, 61, 252, 5, 26, 60, 0, 155, 192, 59, 138, 194, 245, 188, 168, 107, 126, 60, 142, 194, 245, 188, 75, 116, 113, 59, 72, 61, 158, 59, 172, 71, 97, 60, 12, 196, 131, 61, 132, 189, 34, 60, 217, 185, 180, 33, 80, 199, 173, 188, 240, 100, 196, 59, 79, 199, 173, 188, 40, 157, 131, 61, 252, 5, 26, 60, 0, 155, 192, 187, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 188, 163, 232, 51, 188, 0, 0, 19, 181, 166, 232, 51, 188, 144, 194, 245, 188, 57, 98, 109, 61, 155, 213, 84, 189, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 188, 198, 98, 237, 188, 188, 198, 45, 61, 11, 149, 77, 189, 177, 83, 130, 61, 120, 88, 160, 59, 0, 155, 192, 187, 154, 213, 212, 188, 227, 1, 229, 60, 235, 81, 56, 189, 176, 106, 143, 61, 56, 206, 161, 59, 0, 0, 0, 128, 0, 0, 64, 177, 57, 98, 109, 61, 171, 71, 97, 61, 213, 80, 143, 61, 232, 224, 178, 59, 0, 155, 192, 59, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 75, 199, 173, 188, 168, 107, 126, 60, 35, 127, 22, 189, 144, 194, 117, 188, 240, 100, 196, 59, 155, 213, 212, 188, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 60, 206, 117, 142, 61, 232, 194, 33, 60, 0, 155, 192, 59, 0, 0, 160, 177, 178, 19, 51, 61, 141, 154, 89, 61, 233, 109, 254, 187, 0, 0, 19, 181, 164, 87, 92, 188, 244, 91, 142, 61, 60, 76, 42, 60, 217, 185, 180, 33, 206, 117, 142, 61, 232, 194, 33, 60, 0, 155, 192, 187, 0, 0, 128, 176, 196, 124, 249, 60, 33, 25, 67, 61, 244, 109, 126, 188, 57, 98, 109, 61, 204, 98, 109, 189, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 188, 0, 0, 160, 177, 96, 44, 156, 60, 5, 76, 31, 61, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 213, 80, 143, 61, 232, 224, 178, 59, 0, 155, 192, 187, 134, 194, 117, 188, 188, 198, 45, 61, 17, 76, 101, 189, 79, 76, 156, 61, 216, 158, 241, 59, 0, 0, 0, 128, 0, 0, 192, 176, 84, 36, 41, 60, 171, 71, 225, 60, 165, 87, 92, 188, 227, 1, 229, 60, 14, 149, 77, 189, 122, 243, 155, 61, 164, 149, 0, 60, 0, 155, 192, 59, 0, 0, 160, 176, 72, 61, 158, 59, 27, 58, 105, 60, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 160, 232, 51, 188, 168, 107, 126, 60, 111, 219, 39, 189, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 60, 244, 109, 254, 187, 240, 100, 196, 59, 204, 98, 237, 188, 226, 2, 153, 61, 16, 115, 66, 60, 0, 155, 192, 59, 200, 179, 131, 187, 0, 0, 19, 181, 140, 194, 117, 188, 13, 170, 152, 61, 72, 57, 74, 60, 217, 185, 180, 33, 0, 0, 0, 177, 57, 98, 109, 61, 143, 194, 117, 189, 226, 2, 153, 61, 16, 115, 66, 60, 0, 155, 192, 187, 0, 0, 160, 49, 168, 107, 126, 60, 77, 199, 45, 189, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 188, 30, 58, 105, 188, 57, 98, 109, 61, 142, 154, 89, 61, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 188, 0, 0, 128, 176, 240, 100, 196, 59, 143, 194, 245, 188, 122, 243, 155, 61, 164, 149, 0, 60, 0, 155, 192, 187, 0, 0, 48, 49, 0, 0, 19, 181, 238, 109, 126, 188, 247, 240, 167, 61, 124, 117, 60, 60, 0, 0, 0, 128, 175, 71, 97, 188, 178, 19, 51, 61, 101, 48, 82, 61, 54, 95, 167, 61, 244, 240, 66, 60, 0, 155, 192, 59, 2, 251, 73, 188, 196, 124, 249, 60, 74, 115, 60, 61, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 60, 154, 234, 36, 188, 96, 44, 156, 60, 121, 222, 25, 61, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 60, 30, 58, 233, 187, 84, 36, 41, 60, 142, 154, 217, 60, 86, 140, 162, 61, 60, 220, 121, 60, 0, 155, 192, 59, 84, 116, 113, 187, 72, 61, 158, 59, 171, 71, 97, 60, 148, 250, 161, 61, 218, 43, 128, 60, 217, 185, 180, 33, 172, 71, 225, 188, 57, 98, 109, 61, 33, 25, 67, 61, 86, 140, 162, 61, 60, 220, 121, 60, 0, 155, 192, 187, 143, 154, 217, 188, 178, 19, 51, 61, 73, 115, 60, 61, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 188, 34, 25, 195, 188, 196, 124, 249, 60, 191, 245, 40, 61, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 188, 7, 76, 159, 188, 96, 44, 156, 60, 135, 244, 9, 61, 54, 95, 167, 61, 244, 240, 66, 60, 0, 155, 192, 187, 172, 71, 97, 188, 84, 36, 41, 60, 33, 25, 195, 60, 132, 141, 177, 61, 130, 158, 139, 60, 0, 0, 0, 128, 30, 58, 233, 187, 72, 61, 158, 59, 1, 251, 73, 60, 196, 204, 176, 61, 86, 254, 141, 60, 0, 155, 192, 59, 0, 0, 0, 0, 176, 168, 65, 59, 0, 0, 0, 128, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 60, 7, 76, 31, 189, 57, 98, 109, 61, 6, 76, 31, 61, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 60, 124, 222, 25, 189, 178, 19, 51, 61, 122, 222, 25, 61, 196, 107, 170, 61, 220, 27, 162, 60, 0, 155, 192, 59, 138, 244, 9, 189, 196, 124, 249, 60, 137, 244, 9, 61, 5, 171, 169, 61, 174, 123, 164, 60, 217, 185, 180, 33, 169, 71, 225, 188, 96, 44, 156, 60, 164, 71, 225, 60, 196, 107, 170, 61, 220, 27, 162, 60, 0, 155, 192, 187, 7, 76, 159, 188, 84, 36, 41, 60, 6, 76, 159, 60, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 188, 153, 234, 36, 188, 72, 61, 158, 59, 151, 234, 36, 60, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 188, 32, 25, 67, 189, 57, 98, 109, 61, 168, 71, 225, 60, 196, 204, 176, 61, 86, 254, 141, 60, 0, 155, 192, 187, 74, 115, 60, 189, 178, 19, 51, 61, 138, 154, 217, 60, 192, 245, 40, 189, 196, 124, 249, 60, 30, 25, 195, 60, 136, 244, 9, 189, 96, 44, 156, 60, 1, 76, 159, 60, 32, 25, 195, 188, 84, 36, 41, 60, 168, 71, 97, 60, 2, 251, 73, 188, 72, 61, 158, 59, 26, 58, 233, 59, 140, 154, 89, 189, 57, 98, 109, 61, 23, 58, 105, 60, 101, 48, 82, 189, 178, 19, 51, 61, 163, 71, 97, 60, 74, 115, 60, 189, 196, 124, 249, 60, 250, 250, 73, 60, 120, 222, 25, 189, 96, 44, 156, 60, 141, 234, 36, 60, 140, 154, 217, 188, 84, 36, 41, 60, 23, 58, 233, 59, 172, 71, 97, 188, 72, 61, 158, 59, 75, 116, 113, 59, 169, 71, 97, 189, 57, 98, 109, 61, 0, 0, 0, 177, 140, 154, 89, 189, 178, 19, 51, 61, 0, 0, 224, 177, 32, 25, 67, 189, 196, 124, 249, 60, 0, 0, 224, 177, 3, 76, 31, 189, 96, 44, 156, 60, 0, 0, 224, 177, 169, 71, 225, 188, 84, 36, 41, 60, 0, 0, 128, 176, 27, 58, 105, 188, 72, 61, 158, 59, 0, 0, 160, 176, 140, 154, 89, 189, 57, 98, 109, 61, 27, 58, 105, 188, 100, 48, 82, 189, 178, 19, 51, 61, 176, 71, 97, 188, 73, 115, 60, 189, 196, 124, 249, 60, 6, 251, 73, 188, 119, 222, 25, 189, 96, 44, 156, 60, 154, 234, 36, 188, 140, 154, 217, 188, 84, 36, 41, 60, 27, 58, 233, 187, 171, 71, 97, 188, 72, 61, 158, 59, 84, 116, 113, 187, 31, 25, 67, 189, 57, 98, 109, 61, 170, 71, 225, 188, 72, 115, 60, 189, 178, 19, 51, 61, 142, 154, 217, 188, 190, 245, 40, 189, 196, 124, 249, 60, 35, 25, 195, 188, 133, 244, 9, 189, 96, 44, 156, 60, 6, 76, 159, 188, 31, 25, 195, 188, 84, 36, 41, 60, 170, 71, 97, 188, 1, 251, 73, 188, 72, 61, 158, 59, 30, 58, 233, 187, 5, 76, 31, 189, 57, 98, 109, 61, 6, 76, 31, 189, 121, 222, 25, 189, 178, 19, 51, 61, 123, 222, 25, 189, 136, 244, 9, 189, 196, 124, 249, 60, 138, 244, 9, 189, 160, 71, 225, 188, 96, 44, 156, 60, 167, 71, 225, 188, 5, 76, 159, 188, 84, 36, 41, 60, 6, 76, 159, 188, 151, 234, 36, 188, 72, 61, 158, 59, 153, 234, 36, 188, 167, 71, 225, 188, 57, 98, 109, 61, 31, 25, 67, 189, 136, 154, 217, 188, 178, 19, 51, 61, 73, 115, 60, 189, 28, 25, 195, 188, 196, 124, 249, 60, 191, 245, 40, 189, 254, 75, 159, 188, 96, 44, 156, 60, 135, 244, 9, 189, 167, 71, 97, 188, 84, 36, 41, 60, 31, 25, 195, 188, 26, 58, 233, 187, 72, 61, 158, 59, 2, 251, 73, 188, 22, 58, 105, 188, 57, 98, 109, 61, 139, 154, 89, 189, 160, 71, 97, 188, 178, 19, 51, 61, 100, 48, 82, 189, 247, 250, 73, 188, 196, 124, 249, 60, 72, 115, 60, 189, 136, 234, 36, 188, 96, 44, 156, 60, 119, 222, 25, 189, 22, 58, 233, 187, 84, 36, 41, 60, 139, 154, 217, 188, 75, 116, 113, 187, 72, 61, 158, 59, 172, 71, 97, 188, 0, 0, 224, 49, 196, 124, 249, 60, 30, 25, 67, 189, 0, 0, 128, 48, 84, 36, 41, 60, 168, 71, 225, 188, 0, 0, 160, 48, 72, 61, 158, 59, 27, 58, 105, 188, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 236, 30, 113, 61, 118, 95, 102, 61, 237, 209, 225, 187, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 129, 29, 114, 61, 249, 178, 81, 61, 241, 135, 156, 47, 129, 247, 110, 61, 48, 220, 81, 61, 0, 155, 192, 187, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 90, 117, 55, 61, 186, 112, 152, 60, 142, 70, 224, 48, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 52, 249, 55, 61, 198, 193, 162, 60, 109, 56, 209, 187, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 59, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 129, 247, 110, 61, 49, 220, 81, 61, 0, 155, 192, 59, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 88, 145, 117, 61, 106, 236, 107, 61, 0, 0, 0, 128, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 59, 155, 213, 84, 189, 97, 32, 141, 61, 142, 194, 245, 188, 80, 199, 45, 189, 97, 32, 141, 61, 79, 199, 45, 189, 144, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 189, 143, 194, 117, 61, 97, 32, 141, 61, 0, 0, 128, 176, 204, 98, 109, 61, 97, 32, 141, 61, 241, 109, 126, 60, 204, 98, 109, 61, 97, 32, 141, 61, 243, 109, 126, 188, 174, 71, 225, 60, 97, 32, 141, 61, 35, 25, 67, 189, 9, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 189, 169, 71, 97, 189, 97, 32, 141, 61, 0, 0, 0, 177, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 240, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 61, 142, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 61, 242, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 189, 0, 0, 0, 177, 97, 32, 141, 61, 143, 194, 117, 189, 35, 25, 67, 61, 97, 32, 141, 61, 172, 71, 225, 188, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 5, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 189, 167, 71, 225, 188, 97, 32, 141, 61, 31, 25, 67, 189, 143, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 189, 244, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 189, 155, 213, 84, 61, 97, 32, 141, 61, 142, 194, 245, 60, 173, 71, 97, 61, 97, 32, 141, 61, 0, 0, 128, 49, 143, 154, 89, 61, 97, 32, 141, 61, 33, 58, 105, 60, 34, 25, 67, 61, 97, 32, 141, 61, 174, 71, 225, 60, 204, 98, 109, 189, 97, 32, 141, 61, 244, 109, 126, 60, 143, 194, 117, 189, 97, 32, 141, 61, 0, 0, 0, 49, 80, 199, 45, 61, 97, 32, 141, 61, 80, 199, 45, 189, 170, 71, 225, 60, 97, 32, 141, 61, 34, 25, 67, 61, 24, 58, 105, 60, 97, 32, 141, 61, 142, 154, 89, 61, 80, 199, 45, 61, 97, 32, 141, 61, 79, 199, 45, 61, 32, 25, 67, 189, 97, 32, 141, 61, 168, 71, 225, 60, 140, 154, 89, 189, 97, 32, 141, 61, 23, 58, 105, 60, 7, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 61, 0, 0, 0, 0, 97, 32, 141, 61, 174, 71, 97, 189, 30, 58, 105, 60, 97, 32, 141, 61, 144, 154, 89, 189, 31, 25, 67, 189, 97, 32, 141, 61, 170, 71, 225, 188, 0, 0, 64, 177, 97, 32, 141, 61, 171, 71, 97, 61, 144, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 61, 244, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 61, 22, 58, 105, 188, 97, 32, 141, 61, 139, 154, 89, 189, 0, 0, 0, 49, 97, 32, 141, 61, 143, 194, 117, 61, 156, 213, 84, 61, 97, 32, 141, 61, 144, 194, 245, 188, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 7, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 61, 204, 98, 109, 189, 97, 32, 141, 61, 240, 109, 126, 188, 79, 199, 45, 189, 97, 32, 141, 61, 80, 199, 45, 61, 172, 71, 225, 188, 97, 32, 141, 61, 33, 25, 67, 61, 155, 213, 84, 189, 97, 32, 141, 61, 144, 194, 245, 60) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_gro0q"] resource_name = "teacup_Sphere" -surfaces/0 = { -"aabb": AABB( -0.06, -8.3819e-07, -0.06, 0.152087, 0.0689103, 0.12 ), -"array_data": PoolByteArray( 70, 122, 184, 61, 34, 123, 193, 60, 0, 0, 0, 128, 92, 222, 221, 17, 94, 49, 36, 55, 0, 0, 0, 0, 188, 198, 45, 61, 204, 98, 109, 189, 156, 130, 112, 72, 115, 52, 63, 59, 0, 0, 0, 0, 227, 1, 229, 60, 155, 213, 84, 189, 176, 130, 114, 73, 92, 52, 237, 58, 171, 151, 183, 61, 158, 211, 194, 60, 0, 155, 192, 59, 79, 226, 222, 17, 94, 49, 101, 55, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 60, 0, 0, 221, 17, 94, 49, 145, 55, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 60, 73, 229, 222, 17, 94, 49, 145, 55, 242, 109, 126, 60, 57, 98, 109, 61, 204, 98, 109, 189, 120, 155, 76, 79, 110, 53, 136, 59, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 60, 183, 27, 221, 17, 179, 55, 229, 54, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 60, 0, 0, 221, 17, 94, 49, 162, 55, 143, 194, 117, 60, 188, 198, 45, 61, 21, 76, 101, 189, 104, 152, 81, 79, 29, 53, 41, 59, 0, 0, 0, 0, 57, 98, 109, 61, 174, 71, 97, 189, 0, 7, 40, 109, 99, 59, 112, 57, 213, 23, 176, 61, 24, 58, 206, 60, 0, 155, 192, 59, 177, 30, 221, 17, 179, 55, 14, 55, 166, 87, 92, 60, 227, 1, 229, 60, 14, 149, 77, 189, 86, 148, 89, 79, 219, 52, 220, 58, 58, 53, 175, 61, 148, 146, 207, 60, 217, 185, 180, 33, 164, 34, 221, 17, 179, 55, 81, 55, 0, 0, 0, 0, 178, 19, 51, 61, 144, 154, 89, 189, 0, 26, 54, 109, 16, 59, 148, 57, 213, 23, 176, 61, 24, 58, 206, 60, 0, 155, 192, 187, 160, 47, 221, 17, 179, 55, 147, 55, 167, 232, 51, 60, 168, 107, 126, 60, 113, 219, 39, 189, 70, 144, 99, 77, 165, 52, 155, 58, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 188, 157, 53, 221, 17, 179, 55, 189, 55, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 188, 127, 127, 222, 17, 94, 49, 165, 54, 0, 0, 0, 0, 96, 44, 156, 60, 9, 76, 31, 189, 0, 63, 78, 111, 146, 58, 201, 57, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 188, 127, 127, 222, 17, 94, 49, 183, 54, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 188, 99, 203, 222, 17, 94, 49, 183, 54, 242, 109, 254, 59, 240, 100, 196, 59, 204, 98, 237, 188, 53, 141, 107, 76, 117, 52, 96, 58, 171, 151, 183, 61, 158, 211, 194, 60, 0, 155, 192, 187, 96, 209, 222, 17, 94, 49, 226, 54, 208, 179, 131, 59, 0, 0, 19, 181, 143, 194, 117, 188, 26, 135, 118, 72, 73, 52, 40, 58, 112, 62, 188, 61, 250, 36, 252, 60, 0, 0, 0, 128, 111, 241, 241, 7, 188, 48, 36, 55, 143, 194, 245, 60, 57, 98, 109, 61, 155, 213, 84, 189, 121, 174, 54, 86, 52, 54, 78, 59, 107, 73, 187, 61, 164, 94, 252, 60, 0, 155, 192, 59, 94, 243, 241, 7, 189, 48, 101, 55, 204, 98, 237, 60, 188, 198, 45, 61, 14, 149, 77, 189, 106, 168, 60, 86, 180, 53, 253, 58, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 60, 0, 0, 241, 7, 191, 48, 145, 55, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 60, 85, 244, 241, 7, 191, 48, 145, 55, 155, 213, 212, 60, 227, 1, 229, 60, 235, 81, 56, 189, 89, 162, 70, 85, 78, 53, 188, 58, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 60, 170, 11, 242, 8, 111, 55, 228, 54, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 60, 0, 0, 240, 8, 194, 48, 163, 55, 148, 45, 179, 61, 47, 71, 254, 60, 0, 155, 192, 59, 162, 13, 241, 8, 112, 55, 14, 55, 30, 58, 105, 60, 57, 98, 109, 61, 144, 154, 89, 189, 231, 6, 15, 121, 126, 59, 210, 57, 142, 56, 178, 61, 218, 128, 254, 60, 217, 185, 180, 33, 145, 15, 241, 7, 112, 55, 81, 55, 79, 199, 173, 60, 168, 107, 126, 60, 35, 127, 22, 189, 73, 157, 84, 83, 247, 52, 131, 58, 173, 71, 97, 60, 178, 19, 51, 61, 104, 48, 82, 189, 234, 22, 39, 116, 35, 59, 223, 57, 148, 45, 179, 61, 47, 71, 254, 60, 0, 155, 192, 187, 143, 32, 240, 7, 112, 55, 148, 55, 143, 194, 117, 60, 240, 100, 196, 59, 155, 213, 212, 188, 56, 150, 97, 80, 170, 52, 81, 58, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 188, 141, 40, 240, 7, 111, 55, 189, 55, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 188, 127, 129, 240, 8, 194, 48, 165, 54, 242, 109, 254, 59, 0, 0, 19, 181, 166, 87, 92, 188, 28, 140, 113, 74, 99, 52, 33, 58, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 188, 126, 129, 242, 7, 191, 48, 183, 54, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 188, 114, 215, 241, 7, 191, 48, 183, 54, 4, 251, 73, 60, 196, 124, 249, 60, 77, 115, 60, 189, 238, 40, 56, 116, 219, 58, 232, 57, 107, 73, 187, 61, 164, 94, 252, 60, 0, 155, 192, 187, 113, 224, 241, 7, 189, 48, 226, 54, 76, 152, 188, 61, 76, 206, 27, 61, 0, 0, 0, 128, 115, 11, 11, 5, 29, 48, 36, 55, 153, 234, 36, 60, 96, 44, 156, 60, 125, 222, 25, 189, 242, 56, 73, 114, 157, 58, 241, 57, 80, 199, 45, 61, 57, 98, 109, 61, 80, 199, 45, 189, 121, 190, 36, 93, 212, 54, 253, 58, 144, 161, 187, 61, 194, 89, 27, 61, 0, 155, 192, 59, 97, 9, 11, 5, 30, 48, 101, 55, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 60, 0, 0, 12, 6, 34, 48, 145, 55, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 60, 88, 8, 11, 5, 34, 48, 145, 55, 30, 58, 233, 59, 84, 36, 41, 60, 144, 154, 217, 188, 245, 73, 88, 113, 102, 58, 248, 57, 113, 219, 39, 61, 188, 198, 45, 61, 113, 219, 39, 189, 106, 183, 44, 93, 48, 54, 191, 58, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 60, 169, 248, 12, 7, 44, 55, 227, 54, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 60, 0, 0, 9, 4, 40, 48, 163, 55, 82, 116, 113, 59, 72, 61, 158, 59, 174, 71, 97, 188, 250, 94, 104, 111, 50, 58, 255, 57, 47, 119, 179, 61, 106, 126, 23, 61, 0, 155, 192, 59, 159, 247, 11, 6, 45, 55, 13, 55, 36, 127, 22, 61, 227, 1, 229, 60, 36, 127, 22, 189, 90, 175, 58, 91, 171, 53, 141, 58, 114, 128, 178, 61, 224, 9, 23, 61, 217, 185, 180, 33, 141, 245, 11, 5, 45, 55, 81, 55, 47, 119, 179, 61, 106, 126, 23, 61, 0, 155, 192, 187, 139, 227, 12, 5, 45, 55, 148, 55, 142, 194, 245, 60, 168, 107, 126, 60, 140, 194, 245, 188, 74, 167, 73, 88, 59, 53, 98, 58, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 188, 138, 217, 14, 6, 44, 55, 191, 55, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 188, 126, 129, 10, 5, 40, 48, 164, 54, 80, 199, 173, 60, 240, 100, 196, 59, 80, 199, 173, 188, 57, 158, 89, 84, 214, 52, 60, 58, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 188, 126, 129, 12, 6, 34, 48, 183, 54, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 188, 118, 38, 10, 5, 34, 48, 183, 54, 167, 232, 51, 60, 0, 0, 19, 181, 167, 232, 51, 188, 29, 144, 110, 76, 121, 52, 23, 58, 144, 161, 187, 61, 194, 89, 27, 61, 0, 155, 192, 187, 117, 29, 11, 5, 30, 48, 227, 54, 156, 213, 84, 61, 57, 98, 109, 61, 144, 194, 245, 188, 121, 206, 21, 102, 68, 55, 154, 58, 188, 129, 185, 61, 64, 234, 55, 61, 0, 0, 0, 128, 93, 33, 33, 16, 9, 47, 36, 55, 13, 149, 77, 61, 188, 198, 45, 61, 202, 98, 237, 188, 106, 197, 33, 101, 135, 54, 116, 58, 24, 154, 184, 61, 72, 236, 54, 61, 0, 155, 192, 59, 79, 28, 34, 16, 13, 47, 100, 55, 235, 81, 56, 61, 227, 1, 229, 60, 154, 213, 212, 188, 89, 186, 50, 97, 238, 53, 85, 58, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 0, 0, 34, 17, 22, 47, 144, 55, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 73, 25, 33, 16, 22, 47, 144, 55, 174, 71, 225, 60, 57, 98, 109, 61, 35, 25, 67, 189, 212, 5, 229, 120, 126, 59, 56, 58, 144, 154, 217, 60, 178, 19, 51, 61, 76, 115, 60, 189, 218, 20, 30, 125, 35, 59, 44, 58, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 60, 184, 230, 33, 18, 234, 54, 225, 54, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 60, 0, 0, 32, 16, 34, 47, 163, 55, 35, 25, 67, 61, 196, 124, 249, 60, 0, 0, 128, 176, 176, 46, 98, 118, 82, 58, 208, 58, 162, 239, 176, 61, 155, 132, 46, 61, 0, 155, 192, 59, 177, 228, 33, 17, 235, 54, 12, 55, 35, 127, 22, 61, 168, 107, 126, 60, 77, 199, 173, 188, 73, 176, 67, 93, 107, 53, 58, 58, 254, 7, 176, 61, 163, 134, 45, 61, 217, 185, 180, 33, 163, 223, 33, 16, 235, 54, 81, 55, 36, 25, 195, 60, 196, 124, 249, 60, 194, 245, 40, 189, 224, 37, 53, 121, 218, 58, 34, 58, 162, 239, 176, 61, 155, 132, 46, 61, 0, 155, 192, 187, 158, 209, 34, 16, 235, 54, 149, 55, 156, 213, 212, 60, 240, 100, 196, 59, 144, 194, 117, 188, 56, 165, 84, 87, 246, 52, 33, 58, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 188, 156, 202, 36, 16, 234, 54, 192, 55, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 188, 126, 129, 32, 16, 34, 47, 164, 54, 9, 76, 159, 60, 96, 44, 156, 60, 139, 244, 9, 189, 229, 53, 71, 117, 156, 58, 26, 58, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 126, 129, 34, 17, 22, 47, 183, 54, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 101, 53, 33, 16, 22, 47, 183, 54, 166, 87, 92, 60, 0, 0, 19, 181, 240, 109, 254, 187, 28, 148, 107, 77, 137, 52, 10, 58, 24, 154, 184, 61, 72, 236, 54, 61, 0, 155, 192, 187, 98, 47, 33, 17, 13, 47, 227, 54, 174, 71, 97, 60, 84, 36, 41, 60, 35, 25, 195, 188, 236, 70, 87, 114, 102, 58, 19, 58, 204, 98, 109, 61, 57, 98, 109, 61, 243, 109, 126, 188, 120, 225, 10, 114, 126, 55, 44, 58, 158, 48, 179, 61, 246, 123, 80, 61, 0, 0, 0, 128, 74, 52, 52, 26, 231, 45, 36, 55, 30, 58, 233, 59, 72, 61, 158, 59, 3, 251, 73, 188, 244, 91, 104, 111, 50, 58, 12, 58, 221, 103, 178, 61, 222, 5, 79, 61, 0, 155, 192, 59, 64, 45, 52, 26, 235, 45, 100, 55, 20, 76, 101, 61, 188, 198, 45, 61, 140, 194, 117, 188, 104, 212, 27, 109, 180, 54, 33, 58, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 0, 0, 53, 26, 243, 45, 144, 55, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 58, 41, 52, 26, 243, 45, 144, 55, 14, 149, 77, 61, 227, 1, 229, 60, 165, 87, 92, 188, 86, 198, 47, 103, 17, 54, 22, 58, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 60, 198, 215, 52, 27, 170, 54, 223, 54, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 60, 0, 0, 51, 25, 255, 45, 164, 55, 14, 195, 171, 61, 128, 164, 66, 61, 0, 155, 192, 59, 193, 211, 52, 26, 171, 54, 11, 55, 112, 219, 39, 61, 168, 107, 126, 60, 164, 232, 51, 188, 70, 185, 65, 96, 133, 53, 13, 58, 204, 98, 237, 60, 240, 100, 196, 59, 243, 109, 254, 187, 53, 172, 82, 89, 7, 53, 4, 58, 76, 250, 170, 61, 104, 46, 65, 61, 217, 185, 180, 33, 182, 204, 52, 26, 171, 54, 81, 55, 143, 194, 117, 60, 0, 0, 19, 181, 206, 179, 131, 187, 26, 150, 106, 78, 146, 52, 251, 57, 14, 195, 171, 61, 128, 164, 66, 61, 0, 155, 192, 187, 175, 193, 53, 26, 171, 54, 150, 55, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 188, 171, 188, 54, 26, 170, 54, 194, 55, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 188, 126, 127, 51, 25, 255, 45, 163, 54, 143, 194, 117, 61, 57, 98, 109, 61, 0, 0, 128, 176, 119, 249, 17, 123, 125, 55, 191, 57, 203, 98, 109, 61, 188, 198, 45, 61, 0, 0, 0, 49, 100, 230, 34, 114, 181, 54, 203, 57, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 126, 127, 53, 26, 243, 45, 184, 54, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 85, 68, 52, 26, 243, 45, 184, 54, 221, 103, 178, 61, 222, 5, 79, 61, 0, 155, 192, 187, 81, 62, 52, 26, 235, 45, 228, 54, 9, 76, 31, 61, 57, 98, 109, 61, 8, 76, 31, 189, 196, 5, 207, 116, 99, 59, 155, 58, 39, 19, 170, 61, 204, 214, 99, 61, 0, 0, 0, 128, 55, 71, 71, 35, 209, 44, 36, 55, 155, 213, 84, 61, 227, 1, 229, 60, 0, 0, 128, 48, 80, 210, 54, 106, 19, 54, 213, 57, 125, 222, 25, 61, 178, 19, 51, 61, 124, 222, 25, 189, 203, 20, 209, 122, 14, 59, 118, 58, 247, 118, 169, 61, 19, 2, 98, 61, 0, 155, 192, 59, 47, 61, 71, 35, 212, 44, 99, 55, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 60, 0, 0, 70, 35, 220, 44, 144, 55, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 60, 43, 55, 70, 35, 220, 44, 144, 55, 78, 199, 45, 61, 168, 107, 126, 60, 0, 0, 0, 49, 63, 193, 67, 97, 134, 53, 222, 57, 140, 244, 9, 61, 196, 124, 249, 60, 140, 244, 9, 189, 211, 36, 56, 124, 202, 58, 90, 58, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 60, 213, 201, 70, 36, 108, 54, 222, 54, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 60, 0, 0, 69, 34, 227, 44, 165, 55, 143, 194, 245, 60, 240, 100, 196, 59, 0, 0, 0, 176, 47, 177, 83, 90, 8, 53, 229, 57, 183, 75, 164, 61, 0, 127, 82, 61, 0, 155, 192, 59, 209, 196, 70, 35, 109, 54, 10, 55, 173, 71, 225, 60, 96, 44, 156, 60, 172, 71, 225, 188, 219, 52, 73, 119, 145, 58, 66, 58, 135, 175, 163, 61, 70, 170, 80, 61, 217, 185, 180, 33, 201, 185, 71, 35, 108, 54, 81, 55, 183, 75, 164, 61, 0, 127, 82, 61, 0, 155, 192, 187, 190, 177, 71, 35, 109, 54, 151, 55, 241, 109, 126, 60, 0, 0, 19, 181, 0, 0, 64, 48, 22, 152, 106, 79, 147, 52, 236, 57, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 188, 185, 173, 72, 35, 108, 54, 196, 55, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 188, 126, 127, 69, 34, 227, 44, 162, 54, 9, 76, 159, 60, 84, 36, 41, 60, 8, 76, 159, 188, 228, 69, 89, 115, 94, 58, 45, 58, 204, 98, 109, 61, 57, 98, 109, 61, 241, 109, 126, 60, 95, 250, 39, 120, 77, 55, 84, 57, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 126, 127, 70, 35, 220, 44, 184, 54, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 71, 83, 70, 35, 220, 44, 184, 54, 154, 234, 36, 60, 72, 61, 158, 59, 153, 234, 36, 188, 239, 91, 106, 111, 47, 58, 25, 58, 247, 118, 169, 61, 19, 2, 98, 61, 0, 155, 192, 187, 65, 79, 71, 35, 212, 44, 228, 54, 93, 200, 158, 61, 25, 169, 112, 61, 0, 0, 0, 128, 34, 92, 91, 46, 131, 43, 36, 55, 20, 76, 101, 61, 188, 198, 45, 61, 144, 194, 117, 60, 82, 234, 52, 113, 138, 54, 119, 57, 14, 149, 77, 61, 227, 1, 229, 60, 167, 87, 92, 60, 68, 216, 63, 105, 243, 53, 151, 57, 98, 99, 158, 61, 176, 149, 110, 61, 0, 155, 192, 59, 29, 77, 90, 46, 134, 43, 100, 55, 112, 219, 39, 61, 168, 107, 126, 60, 168, 232, 51, 60, 55, 200, 73, 97, 111, 53, 176, 57, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 0, 0, 90, 45, 141, 43, 144, 55, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 26, 70, 89, 45, 141, 43, 144, 55, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 60, 230, 186, 92, 46, 47, 54, 221, 54, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 60, 0, 0, 90, 45, 146, 43, 167, 55, 204, 98, 237, 60, 240, 100, 196, 59, 241, 109, 254, 59, 42, 183, 86, 90, 250, 52, 200, 57, 224, 11, 155, 61, 134, 255, 92, 61, 0, 155, 192, 59, 227, 179, 92, 46, 47, 54, 10, 55, 142, 194, 117, 60, 0, 0, 19, 181, 208, 179, 131, 59, 20, 156, 107, 79, 140, 52, 221, 57, 229, 166, 154, 61, 30, 236, 90, 61, 217, 185, 180, 33, 222, 164, 91, 46, 47, 54, 81, 55, 35, 25, 67, 61, 57, 98, 109, 61, 172, 71, 225, 188, 180, 5, 191, 116, 47, 59, 241, 58, 224, 11, 155, 61, 134, 255, 92, 61, 0, 155, 192, 187, 207, 159, 91, 46, 47, 54, 151, 55, 155, 213, 84, 61, 57, 98, 109, 61, 142, 194, 245, 60, 76, 251, 61, 114, 224, 54, 239, 56, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 188, 200, 156, 91, 46, 47, 54, 197, 55, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 188, 127, 127, 89, 44, 146, 43, 161, 54, 76, 115, 60, 61, 178, 19, 51, 61, 142, 154, 217, 188, 189, 20, 192, 121, 231, 58, 185, 58, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 127, 127, 89, 44, 141, 43, 183, 54, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 56, 100, 91, 45, 141, 43, 183, 54, 13, 149, 77, 61, 188, 198, 45, 61, 204, 98, 237, 60, 67, 236, 68, 108, 57, 54, 43, 57, 98, 99, 158, 61, 176, 149, 110, 61, 0, 155, 192, 187, 49, 97, 92, 45, 134, 43, 228, 54, 235, 81, 56, 61, 227, 1, 229, 60, 156, 213, 212, 60, 56, 219, 73, 102, 180, 53, 93, 57, 64, 21, 146, 61, 45, 19, 118, 61, 0, 0, 0, 128, 7, 119, 119, 59, 86, 41, 36, 55, 194, 245, 40, 61, 196, 124, 249, 60, 36, 25, 195, 188, 200, 37, 66, 125, 174, 58, 140, 58, 92, 238, 145, 61, 76, 229, 115, 61, 0, 155, 192, 59, 6, 98, 113, 59, 91, 41, 102, 55, 139, 244, 9, 61, 96, 44, 156, 60, 7, 76, 159, 188, 210, 53, 80, 120, 125, 58, 101, 58, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 0, 0, 112, 56, 96, 41, 147, 55, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 5, 87, 112, 59, 96, 41, 147, 55, 34, 127, 22, 61, 168, 107, 126, 60, 79, 199, 173, 60, 46, 203, 81, 95, 66, 53, 135, 57, 35, 25, 195, 60, 84, 36, 41, 60, 172, 71, 97, 188, 221, 70, 94, 115, 81, 58, 68, 58, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 60, 251, 169, 118, 58, 241, 53, 222, 54, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 60, 0, 0, 114, 57, 92, 41, 169, 55, 229, 164, 144, 61, 219, 110, 97, 61, 0, 155, 192, 59, 251, 159, 119, 59, 241, 53, 10, 55, 155, 213, 212, 60, 240, 100, 196, 59, 142, 194, 117, 60, 35, 186, 91, 88, 221, 52, 173, 57, 3, 251, 73, 60, 72, 61, 158, 59, 29, 58, 233, 187, 234, 91, 108, 111, 40, 58, 36, 58, 1, 126, 144, 61, 250, 64, 95, 61, 217, 185, 180, 33, 249, 137, 119, 59, 242, 53, 81, 55, 229, 164, 144, 61, 219, 110, 97, 61, 0, 155, 192, 187, 227, 135, 117, 59, 241, 53, 151, 55, 165, 87, 92, 60, 0, 0, 19, 181, 242, 109, 254, 59, 18, 158, 110, 78, 125, 52, 208, 57, 80, 199, 45, 61, 57, 98, 109, 61, 79, 199, 45, 61, 60, 251, 79, 106, 66, 54, 155, 56, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 188, 217, 135, 116, 59, 241, 53, 195, 55, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 188, 126, 127, 114, 57, 92, 41, 159, 54, 112, 219, 39, 61, 188, 198, 45, 61, 113, 219, 39, 61, 53, 236, 82, 102, 193, 53, 236, 56, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 188, 126, 127, 113, 56, 96, 41, 180, 54, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 188, 39, 121, 118, 56, 96, 41, 180, 54, 92, 238, 145, 61, 76, 229, 115, 61, 0, 155, 192, 187, 28, 120, 118, 57, 91, 41, 226, 54, 36, 127, 22, 61, 227, 1, 229, 60, 36, 127, 22, 61, 45, 220, 85, 97, 89, 53, 45, 57, 95, 215, 132, 61, 146, 182, 115, 61, 0, 0, 0, 128, 233, 103, 103, 76, 253, 37, 36, 55, 138, 194, 245, 60, 168, 107, 126, 60, 142, 194, 245, 60, 37, 204, 90, 91, 1, 53, 101, 57, 57, 241, 132, 61, 61, 148, 113, 61, 0, 155, 192, 59, 236, 86, 98, 74, 28, 38, 106, 55, 80, 199, 173, 60, 240, 100, 196, 59, 79, 199, 173, 60, 28, 187, 98, 85, 179, 52, 151, 57, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 238, 78, 97, 73, 69, 38, 153, 55, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 0, 0, 115, 69, 69, 38, 153, 55, 166, 232, 51, 60, 0, 0, 19, 181, 167, 232, 51, 60, 14, 159, 113, 76, 104, 52, 197, 57, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 60, 0, 0, 114, 69, 66, 38, 174, 55, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 60, 18, 178, 105, 76, 180, 53, 224, 54, 144, 154, 89, 61, 57, 98, 109, 61, 25, 58, 105, 188, 161, 6, 177, 119, 230, 58, 55, 59, 144, 194, 245, 60, 57, 98, 109, 61, 155, 213, 84, 61, 44, 251, 95, 96, 126, 53, 95, 56, 64, 204, 133, 61, 160, 127, 95, 61, 0, 155, 192, 59, 20, 170, 103, 76, 179, 53, 12, 55, 26, 230, 133, 61, 76, 93, 93, 61, 217, 185, 180, 33, 24, 154, 102, 75, 180, 53, 81, 55, 103, 48, 82, 61, 178, 19, 51, 61, 169, 71, 97, 188, 174, 22, 178, 123, 177, 58, 239, 58, 64, 204, 133, 61, 160, 127, 95, 61, 0, 155, 192, 187, 40, 150, 100, 75, 179, 53, 150, 55, 200, 98, 237, 60, 188, 198, 45, 61, 12, 149, 77, 61, 38, 236, 96, 93, 43, 53, 190, 56, 76, 115, 60, 61, 196, 124, 249, 60, 4, 251, 73, 188, 188, 40, 82, 123, 133, 58, 181, 58, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 188, 126, 127, 113, 70, 66, 38, 153, 54, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 188, 48, 148, 101, 74, 180, 53, 193, 55, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 208, 108, 107, 78, 69, 38, 175, 54, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 126, 127, 115, 69, 69, 38, 175, 54, 124, 222, 25, 61, 96, 44, 156, 60, 150, 234, 36, 188, 201, 56, 91, 118, 96, 58, 131, 58, 57, 241, 132, 61, 61, 148, 113, 61, 0, 155, 192, 187, 216, 106, 106, 78, 28, 38, 221, 54, 154, 213, 212, 60, 227, 1, 229, 60, 235, 81, 56, 61, 32, 219, 98, 89, 233, 52, 11, 57, 144, 154, 217, 60, 84, 36, 41, 60, 25, 58, 233, 187, 214, 73, 101, 114, 62, 58, 86, 58, 75, 199, 173, 60, 168, 107, 126, 60, 35, 127, 22, 61, 27, 203, 101, 85, 177, 52, 76, 57, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 221, 64, 74, 80, 14, 30, 166, 55, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 0, 0, 101, 76, 14, 30, 166, 55, 144, 194, 117, 60, 240, 100, 196, 59, 155, 213, 212, 60, 20, 186, 107, 80, 126, 52, 135, 57, 173, 71, 97, 60, 72, 61, 158, 59, 80, 116, 113, 187, 231, 94, 112, 111, 31, 58, 45, 58, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 60, 0, 0, 102, 75, 136, 30, 187, 55, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 60, 35, 191, 86, 86, 116, 53, 228, 54, 238, 109, 254, 59, 0, 0, 19, 181, 166, 87, 92, 60, 10, 158, 118, 74, 78, 52, 189, 57, 83, 126, 118, 61, 148, 83, 87, 61, 0, 155, 192, 59, 38, 186, 84, 87, 116, 53, 14, 55, 244, 109, 126, 60, 57, 98, 109, 61, 204, 98, 109, 61, 25, 250, 112, 82, 160, 52, 62, 56, 253, 47, 119, 61, 6, 98, 85, 61, 217, 185, 180, 33, 44, 174, 82, 85, 118, 53, 81, 55, 83, 126, 118, 61, 148, 83, 87, 61, 0, 155, 192, 187, 56, 168, 79, 84, 116, 53, 147, 55, 137, 194, 117, 60, 188, 198, 45, 61, 18, 76, 101, 61, 22, 234, 113, 80, 130, 52, 165, 56, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 188, 126, 129, 103, 75, 136, 30, 141, 54, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 188, 61, 165, 80, 83, 116, 53, 190, 55, 165, 87, 92, 60, 227, 1, 229, 60, 14, 149, 77, 61, 18, 216, 114, 78, 106, 52, 248, 56, 160, 232, 51, 60, 168, 107, 126, 60, 111, 219, 39, 61, 14, 200, 115, 76, 86, 52, 63, 57, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 194, 91, 93, 89, 14, 30, 161, 54, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 126, 129, 102, 75, 14, 30, 161, 54, 173, 71, 97, 61, 57, 98, 109, 61, 0, 0, 128, 49, 137, 7, 92, 125, 143, 58, 104, 59, 244, 109, 254, 59, 240, 100, 196, 59, 204, 98, 237, 60, 11, 183, 118, 74, 67, 52, 126, 57, 143, 154, 89, 61, 178, 19, 51, 61, 0, 0, 64, 49, 156, 26, 94, 122, 109, 58, 21, 59, 204, 179, 131, 59, 0, 0, 19, 181, 142, 194, 117, 60, 5, 156, 123, 71, 49, 52, 185, 57, 0, 0, 0, 49, 57, 98, 109, 61, 143, 194, 117, 61, 0, 249, 114, 56, 114, 51, 60, 56, 0, 0, 64, 177, 188, 198, 45, 61, 201, 98, 109, 61, 0, 230, 114, 55, 163, 51, 163, 56, 7, 76, 31, 61, 96, 44, 156, 60, 0, 0, 0, 49, 193, 63, 103, 115, 60, 58, 151, 58, 0, 0, 128, 176, 227, 1, 229, 60, 155, 213, 84, 61, 0, 210, 116, 54, 205, 51, 247, 56, 173, 71, 225, 60, 84, 36, 41, 60, 0, 0, 0, 49, 209, 79, 110, 112, 39, 58, 99, 58, 28, 58, 105, 60, 72, 61, 158, 59, 0, 0, 128, 47, 229, 99, 117, 110, 19, 58, 52, 58, 0, 0, 160, 177, 168, 107, 126, 60, 77, 199, 45, 61, 0, 193, 118, 54, 239, 51, 62, 57, 0, 0, 128, 48, 240, 100, 196, 59, 143, 194, 245, 60, 0, 177, 120, 55, 6, 52, 125, 57, 0, 0, 192, 176, 0, 0, 19, 181, 240, 109, 126, 60, 0, 152, 124, 56, 19, 52, 184, 57, 240, 109, 126, 188, 57, 98, 109, 61, 204, 98, 109, 61, 231, 250, 77, 48, 177, 49, 88, 56, 143, 194, 117, 188, 188, 198, 45, 61, 18, 76, 101, 61, 234, 234, 82, 47, 77, 50, 185, 56, 167, 87, 92, 188, 227, 1, 229, 60, 14, 149, 77, 61, 238, 216, 90, 48, 203, 50, 7, 57, 143, 154, 89, 61, 57, 98, 109, 61, 33, 58, 105, 60, 136, 31, 116, 114, 45, 58, 128, 59, 169, 232, 51, 188, 168, 107, 126, 60, 111, 219, 39, 61, 242, 200, 100, 49, 55, 51, 73, 57, 103, 48, 82, 61, 178, 19, 51, 61, 175, 71, 97, 60, 152, 44, 116, 113, 35, 58, 38, 59, 240, 109, 254, 187, 240, 100, 196, 59, 204, 98, 237, 60, 245, 183, 107, 50, 149, 51, 132, 57, 76, 115, 60, 61, 196, 124, 249, 60, 2, 251, 73, 60, 170, 58, 117, 112, 27, 58, 223, 58, 210, 179, 131, 187, 0, 0, 19, 181, 141, 194, 117, 60, 251, 156, 118, 54, 235, 51, 188, 57, 123, 222, 25, 61, 96, 44, 156, 60, 153, 234, 36, 60, 186, 71, 119, 111, 19, 58, 161, 58, 142, 194, 245, 188, 57, 98, 109, 61, 155, 213, 84, 61, 212, 251, 54, 41, 28, 48, 145, 56, 202, 98, 237, 188, 188, 198, 45, 61, 11, 149, 77, 61, 218, 236, 60, 40, 24, 49, 228, 56, 143, 154, 217, 60, 84, 36, 41, 60, 33, 58, 233, 59, 203, 84, 121, 110, 13, 58, 106, 58, 156, 213, 212, 188, 227, 1, 229, 60, 235, 81, 56, 61, 224, 219, 70, 41, 227, 49, 39, 57, 172, 71, 97, 60, 72, 61, 158, 59, 81, 116, 113, 59, 224, 101, 123, 109, 7, 58, 55, 58, 79, 199, 173, 188, 168, 107, 126, 60, 34, 127, 22, 61, 229, 203, 83, 43, 144, 50, 96, 57, 142, 194, 117, 188, 240, 100, 196, 59, 155, 213, 212, 60, 236, 186, 97, 46, 40, 51, 147, 57, 242, 109, 254, 187, 0, 0, 19, 181, 164, 87, 92, 60, 246, 158, 114, 52, 182, 51, 195, 57, 79, 199, 45, 189, 57, 98, 109, 61, 80, 199, 45, 61, 196, 251, 37, 34, 162, 45, 226, 56, 112, 219, 39, 189, 188, 198, 45, 61, 110, 219, 39, 61, 203, 236, 44, 33, 26, 48, 33, 57, 36, 127, 22, 189, 227, 1, 229, 60, 36, 127, 22, 61, 211, 220, 58, 35, 37, 49, 85, 57, 34, 25, 67, 61, 57, 98, 109, 61, 174, 71, 225, 60, 135, 50, 114, 20, 201, 57, 127, 59, 142, 194, 245, 188, 168, 107, 126, 60, 138, 194, 245, 60, 219, 204, 73, 38, 6, 50, 129, 57, 75, 115, 60, 61, 178, 19, 51, 61, 144, 154, 217, 60, 150, 59, 115, 19, 215, 57, 37, 59, 79, 199, 173, 188, 240, 100, 196, 59, 80, 199, 173, 60, 228, 187, 89, 42, 207, 50, 168, 57, 193, 245, 40, 61, 196, 124, 249, 60, 34, 25, 195, 60, 167, 70, 115, 18, 225, 57, 221, 58, 167, 232, 51, 188, 0, 0, 19, 181, 165, 232, 51, 60, 242, 159, 110, 50, 137, 51, 205, 57, 137, 244, 9, 61, 96, 44, 156, 60, 8, 76, 159, 60, 183, 80, 117, 18, 234, 57, 160, 58, 34, 25, 195, 60, 84, 36, 41, 60, 174, 71, 97, 60, 200, 91, 120, 17, 242, 57, 106, 58, 155, 213, 84, 189, 57, 98, 109, 61, 144, 194, 245, 60, 180, 251, 22, 25, 150, 43, 69, 57, 1, 251, 73, 60, 72, 61, 158, 59, 28, 58, 233, 59, 221, 104, 123, 18, 249, 57, 55, 58, 11, 149, 77, 189, 188, 198, 45, 61, 199, 98, 237, 60, 189, 236, 33, 25, 204, 46, 109, 57, 235, 81, 56, 189, 227, 1, 229, 60, 154, 213, 212, 60, 200, 219, 50, 29, 156, 48, 142, 57, 35, 127, 22, 189, 168, 107, 126, 60, 75, 199, 173, 60, 210, 203, 67, 34, 164, 49, 169, 57, 155, 213, 212, 188, 240, 100, 196, 59, 144, 194, 117, 60, 221, 186, 84, 39, 143, 50, 194, 57, 165, 87, 92, 188, 0, 0, 19, 181, 236, 109, 254, 59, 238, 158, 107, 49, 105, 51, 218, 57, 0, 0, 0, 0, 0, 0, 97, 181, 0, 0, 0, 128, 0, 129, 127, 69, 31, 52, 242, 57, 204, 98, 109, 189, 57, 98, 109, 61, 244, 109, 126, 60, 161, 250, 11, 13, 167, 41, 181, 57, 7, 76, 31, 61, 57, 98, 109, 61, 8, 76, 31, 61, 135, 66, 95, 23, 105, 57, 99, 59, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 183, 231, 205, 110, 69, 53, 165, 55, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 0, 0, 204, 100, 69, 53, 165, 55, 17, 76, 101, 189, 188, 198, 45, 61, 136, 194, 117, 60, 174, 234, 27, 16, 14, 46, 194, 57, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 60, 0, 0, 204, 100, 67, 53, 186, 55, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 60, 72, 26, 222, 106, 249, 56, 228, 54, 123, 222, 25, 61, 178, 19, 51, 61, 124, 222, 25, 61, 150, 73, 96, 21, 142, 57, 15, 59, 14, 149, 77, 189, 227, 1, 229, 60, 165, 87, 92, 60, 188, 216, 47, 23, 84, 48, 205, 57, 216, 164, 70, 61, 130, 215, 178, 60, 0, 155, 192, 59, 79, 28, 223, 108, 249, 56, 14, 55, 31, 116, 72, 61, 114, 211, 180, 60, 217, 185, 180, 33, 93, 33, 223, 110, 248, 56, 81, 55, 139, 244, 9, 61, 196, 124, 249, 60, 139, 244, 9, 61, 166, 81, 99, 19, 171, 57, 205, 58, 216, 164, 70, 61, 130, 215, 178, 60, 0, 155, 192, 187, 98, 47, 218, 110, 249, 56, 147, 55, 111, 219, 39, 189, 168, 107, 126, 60, 160, 232, 51, 60, 201, 200, 65, 30, 111, 49, 215, 57, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 188, 127, 127, 205, 101, 67, 53, 141, 54, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 188, 100, 54, 216, 109, 249, 56, 190, 55, 168, 71, 225, 60, 96, 44, 156, 60, 171, 71, 225, 60, 182, 89, 104, 18, 195, 57, 149, 58, 204, 98, 237, 188, 240, 100, 196, 59, 244, 109, 254, 59, 214, 183, 82, 37, 108, 50, 224, 57, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 155, 203, 223, 101, 69, 53, 162, 54, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 127, 127, 205, 101, 69, 53, 162, 54, 7, 76, 159, 60, 84, 36, 41, 60, 8, 76, 159, 60, 199, 98, 110, 17, 217, 57, 99, 58, 141, 194, 117, 188, 0, 0, 19, 181, 202, 179, 131, 59, 236, 156, 106, 48, 88, 51, 233, 57, 225, 34, 66, 61, 140, 209, 93, 60, 0, 0, 0, 128, 182, 204, 203, 100, 253, 52, 36, 55, 151, 234, 36, 60, 72, 61, 158, 59, 152, 234, 36, 60, 221, 109, 117, 17, 237, 57, 52, 58, 98, 180, 67, 61, 236, 169, 99, 60, 0, 155, 192, 59, 192, 211, 199, 101, 252, 52, 106, 55, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 198, 215, 196, 101, 249, 52, 152, 55, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 0, 0, 196, 96, 249, 52, 152, 55, 143, 194, 117, 189, 57, 98, 109, 61, 0, 0, 0, 49, 137, 249, 15, 3, 153, 41, 40, 58, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 0, 0, 197, 97, 249, 52, 174, 55, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 58, 41, 204, 99, 217, 56, 224, 54, 200, 98, 109, 189, 188, 198, 45, 61, 0, 0, 64, 177, 156, 230, 37, 11, 7, 46, 27, 58, 155, 213, 84, 189, 227, 1, 229, 60, 0, 0, 128, 176, 176, 210, 53, 20, 80, 48, 16, 58, 2, 254, 80, 61, 178, 151, 138, 60, 0, 155, 192, 59, 63, 45, 205, 99, 217, 56, 12, 55, 131, 143, 82, 61, 226, 131, 141, 60, 217, 185, 180, 33, 74, 52, 204, 100, 217, 56, 81, 55, 77, 199, 45, 189, 168, 107, 126, 60, 0, 0, 160, 177, 193, 193, 68, 28, 108, 49, 7, 58, 143, 194, 245, 188, 240, 100, 196, 59, 0, 0, 128, 48, 209, 177, 83, 36, 105, 50, 255, 57, 2, 254, 80, 61, 178, 151, 138, 60, 0, 155, 192, 187, 81, 63, 202, 101, 217, 56, 150, 55, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 126, 129, 197, 97, 249, 52, 154, 54, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 85, 68, 201, 100, 217, 56, 193, 55, 170, 71, 225, 60, 57, 98, 109, 61, 34, 25, 67, 61, 135, 82, 80, 24, 20, 57, 46, 59, 239, 109, 126, 188, 0, 0, 19, 181, 0, 0, 0, 177, 234, 152, 106, 47, 87, 51, 248, 57, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 171, 188, 206, 96, 249, 52, 175, 54, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 126, 129, 196, 96, 249, 52, 175, 54, 98, 180, 67, 61, 236, 169, 99, 60, 0, 155, 192, 187, 175, 194, 205, 98, 252, 52, 221, 54, 140, 154, 217, 60, 178, 19, 51, 61, 75, 115, 60, 61, 150, 88, 82, 22, 77, 57, 233, 58, 204, 98, 109, 189, 57, 98, 109, 61, 240, 109, 126, 188, 136, 225, 41, 6, 110, 43, 152, 58, 204, 93, 84, 61, 60, 102, 16, 60, 0, 0, 0, 128, 201, 185, 186, 91, 179, 52, 36, 55, 34, 25, 195, 60, 196, 124, 249, 60, 193, 245, 40, 61, 167, 94, 87, 19, 122, 57, 176, 58, 45, 150, 85, 61, 28, 185, 23, 60, 0, 155, 192, 59, 209, 195, 183, 92, 178, 52, 102, 55, 17, 76, 101, 189, 188, 198, 45, 61, 142, 194, 117, 188, 152, 212, 53, 13, 184, 46, 112, 58, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 213, 201, 183, 92, 178, 52, 147, 55, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 0, 0, 182, 89, 178, 52, 147, 55, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 60, 0, 0, 183, 90, 178, 52, 168, 55, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 60, 43, 55, 186, 90, 186, 56, 222, 54, 4, 76, 159, 60, 96, 44, 156, 60, 138, 244, 9, 61, 183, 99, 93, 17, 160, 57, 128, 58, 14, 149, 77, 189, 227, 1, 229, 60, 167, 87, 92, 188, 170, 198, 63, 21, 145, 48, 80, 58, 172, 236, 95, 61, 108, 197, 85, 60, 0, 155, 192, 59, 47, 60, 186, 91, 186, 56, 10, 55, 170, 71, 97, 60, 84, 36, 41, 60, 34, 25, 195, 60, 200, 106, 101, 16, 194, 57, 86, 58, 12, 37, 97, 61, 80, 24, 93, 60, 217, 185, 180, 33, 55, 71, 186, 91, 186, 56, 81, 55, 172, 236, 95, 61, 108, 197, 85, 60, 0, 155, 192, 187, 66, 79, 185, 91, 186, 56, 151, 55, 111, 219, 39, 189, 168, 107, 126, 60, 169, 232, 51, 188, 186, 185, 74, 29, 154, 49, 53, 58, 204, 98, 237, 188, 240, 100, 196, 59, 240, 109, 254, 187, 203, 172, 87, 36, 135, 50, 29, 58, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 188, 126, 129, 182, 89, 178, 52, 159, 54, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 188, 71, 83, 184, 91, 186, 56, 196, 55, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 188, 185, 173, 187, 89, 178, 52, 180, 54, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 188, 126, 129, 181, 89, 178, 52, 180, 54, 26, 58, 233, 59, 72, 61, 158, 59, 2, 251, 73, 60, 221, 114, 112, 17, 225, 57, 45, 58, 139, 194, 117, 188, 0, 0, 19, 181, 210, 179, 131, 187, 230, 150, 107, 47, 101, 51, 7, 58, 45, 150, 85, 61, 28, 185, 23, 60, 0, 155, 192, 187, 191, 177, 187, 90, 178, 52, 226, 54, 100, 243, 106, 61, 8, 58, 186, 59, 0, 0, 0, 128, 222, 164, 165, 80, 109, 52, 36, 55, 155, 213, 84, 189, 57, 98, 109, 61, 142, 194, 245, 188, 135, 206, 63, 13, 129, 45, 253, 58, 89, 189, 107, 61, 72, 213, 202, 59, 0, 155, 192, 59, 227, 179, 164, 81, 109, 52, 100, 55, 10, 149, 77, 189, 188, 198, 45, 61, 202, 98, 237, 188, 150, 197, 69, 18, 10, 48, 189, 58, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 60, 230, 186, 163, 81, 108, 52, 144, 55, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 60, 0, 0, 162, 79, 108, 52, 144, 55, 235, 81, 56, 189, 227, 1, 229, 60, 156, 213, 212, 188, 167, 186, 74, 24, 19, 49, 138, 58, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 60, 0, 0, 162, 79, 107, 52, 167, 55, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 60, 26, 70, 165, 80, 156, 56, 221, 54, 34, 127, 22, 189, 168, 107, 126, 60, 79, 199, 173, 188, 183, 176, 82, 31, 246, 49, 94, 58, 24, 58, 105, 60, 57, 98, 109, 61, 142, 154, 89, 61, 136, 101, 61, 22, 209, 56, 230, 58, 93, 108, 114, 61, 80, 195, 43, 60, 0, 155, 192, 59, 29, 77, 165, 80, 155, 56, 10, 55, 82, 54, 115, 61, 244, 16, 52, 60, 217, 185, 180, 33, 34, 92, 165, 80, 155, 56, 81, 55, 155, 213, 212, 188, 240, 100, 196, 59, 142, 194, 117, 188, 200, 165, 92, 38, 194, 50, 56, 58, 93, 108, 114, 61, 80, 195, 43, 60, 0, 155, 192, 187, 49, 97, 164, 80, 155, 56, 151, 55, 162, 87, 92, 188, 0, 0, 19, 181, 242, 109, 254, 187, 228, 148, 110, 48, 130, 51, 20, 58, 166, 71, 97, 60, 178, 19, 51, 61, 102, 48, 82, 61, 152, 104, 66, 19, 24, 57, 178, 58, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 188, 126, 129, 163, 80, 107, 52, 161, 54, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 188, 56, 100, 165, 80, 156, 56, 197, 55, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 200, 156, 165, 80, 108, 52, 183, 54, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 126, 129, 163, 80, 108, 52, 183, 54, 80, 199, 45, 189, 57, 98, 109, 61, 79, 199, 45, 189, 135, 190, 81, 21, 6, 48, 79, 59, 1, 251, 73, 60, 196, 124, 249, 60, 75, 115, 60, 61, 170, 108, 75, 17, 82, 57, 136, 58, 89, 189, 107, 61, 72, 213, 202, 59, 0, 155, 192, 187, 207, 159, 165, 80, 109, 52, 228, 54, 109, 219, 39, 189, 188, 198, 45, 61, 111, 219, 39, 189, 150, 183, 83, 25, 2, 49, 252, 58, 205, 44, 130, 61, 104, 233, 142, 59, 0, 0, 0, 128, 249, 137, 137, 67, 41, 52, 36, 55, 145, 234, 36, 60, 96, 44, 156, 60, 122, 222, 25, 61, 186, 112, 84, 16, 131, 57, 100, 58, 177, 83, 130, 61, 120, 88, 160, 59, 0, 155, 192, 59, 250, 158, 137, 67, 40, 52, 99, 55, 36, 127, 22, 189, 227, 1, 229, 60, 36, 127, 22, 189, 166, 175, 86, 29, 205, 49, 185, 58, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 251, 169, 136, 67, 39, 52, 144, 55, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 0, 0, 137, 67, 39, 52, 144, 55, 24, 58, 233, 59, 84, 36, 41, 60, 142, 154, 217, 60, 203, 115, 95, 15, 175, 57, 67, 58, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 60, 0, 0, 134, 65, 37, 52, 165, 55, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 60, 5, 87, 138, 68, 125, 56, 222, 54, 40, 157, 131, 61, 252, 5, 26, 60, 0, 155, 192, 59, 5, 97, 137, 67, 125, 56, 10, 55, 138, 194, 245, 188, 168, 107, 126, 60, 142, 194, 245, 188, 182, 167, 91, 35, 123, 50, 128, 58, 75, 116, 113, 59, 72, 61, 158, 59, 172, 71, 97, 60, 224, 120, 108, 16, 216, 57, 36, 58, 12, 196, 131, 61, 132, 189, 34, 60, 217, 185, 180, 33, 7, 119, 137, 67, 125, 56, 81, 55, 80, 199, 173, 188, 240, 100, 196, 59, 79, 199, 173, 188, 199, 158, 99, 41, 24, 51, 78, 58, 40, 157, 131, 61, 252, 5, 26, 60, 0, 155, 192, 187, 29, 121, 138, 67, 125, 56, 151, 55, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 188, 126, 129, 134, 65, 37, 52, 163, 54, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 188, 39, 121, 139, 67, 125, 56, 196, 55, 163, 232, 51, 188, 0, 0, 19, 181, 166, 232, 51, 188, 227, 144, 113, 50, 172, 51, 31, 58, 144, 194, 245, 188, 57, 98, 109, 61, 155, 213, 84, 189, 135, 174, 96, 31, 150, 49, 136, 59, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 188, 217, 135, 137, 66, 39, 52, 184, 54, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 188, 126, 129, 136, 66, 39, 52, 184, 54, 198, 98, 237, 188, 188, 198, 45, 61, 11, 149, 77, 189, 150, 168, 98, 33, 51, 50, 40, 59, 177, 83, 130, 61, 120, 88, 160, 59, 0, 155, 192, 187, 228, 136, 137, 67, 40, 52, 228, 54, 154, 213, 212, 188, 227, 1, 229, 60, 235, 81, 56, 189, 167, 162, 99, 37, 177, 50, 219, 58, 176, 106, 143, 61, 56, 206, 161, 59, 0, 0, 0, 128, 23, 153, 153, 51, 200, 51, 36, 55, 0, 0, 64, 177, 57, 98, 109, 61, 171, 71, 97, 61, 119, 126, 39, 16, 163, 56, 145, 58, 213, 80, 143, 61, 232, 224, 178, 59, 0, 155, 192, 59, 20, 170, 154, 51, 198, 51, 100, 55, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 0, 0, 153, 51, 194, 51, 144, 55, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 18, 178, 154, 51, 194, 51, 144, 55, 75, 199, 173, 188, 168, 107, 126, 60, 35, 127, 22, 189, 183, 157, 102, 41, 30, 51, 153, 58, 144, 194, 117, 188, 240, 100, 196, 59, 155, 213, 212, 188, 200, 150, 107, 46, 129, 51, 94, 58, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 60, 238, 78, 152, 51, 94, 56, 223, 54, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 60, 0, 0, 155, 50, 188, 51, 164, 55, 206, 117, 142, 61, 232, 194, 33, 60, 0, 155, 192, 59, 236, 86, 153, 50, 93, 56, 11, 55, 0, 0, 160, 177, 178, 19, 51, 61, 141, 154, 89, 61, 100, 126, 50, 14, 244, 56, 113, 58, 233, 109, 254, 187, 0, 0, 19, 181, 164, 87, 92, 188, 228, 140, 118, 52, 224, 51, 39, 58, 244, 91, 142, 61, 60, 76, 42, 60, 217, 185, 180, 33, 232, 102, 154, 51, 93, 56, 81, 55, 206, 117, 142, 61, 232, 194, 33, 60, 0, 155, 192, 187, 216, 106, 155, 51, 93, 56, 150, 55, 0, 0, 128, 176, 196, 124, 249, 60, 33, 25, 67, 61, 80, 126, 65, 15, 53, 57, 87, 58, 244, 109, 126, 188, 57, 98, 109, 61, 204, 98, 109, 189, 136, 155, 114, 45, 83, 51, 166, 59, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 188, 208, 108, 154, 52, 94, 56, 194, 55, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 188, 127, 127, 155, 50, 188, 51, 163, 54, 0, 0, 160, 177, 96, 44, 156, 60, 5, 76, 31, 61, 63, 126, 76, 13, 111, 57, 64, 58, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 127, 127, 153, 51, 194, 51, 184, 54, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 48, 148, 154, 51, 194, 51, 184, 54, 213, 80, 143, 61, 232, 224, 178, 59, 0, 155, 192, 187, 40, 150, 153, 51, 198, 51, 228, 54, 134, 194, 117, 188, 188, 198, 45, 61, 17, 76, 101, 189, 152, 152, 115, 46, 135, 51, 63, 59, 79, 76, 156, 61, 216, 158, 241, 59, 0, 0, 0, 128, 44, 174, 174, 41, 55, 51, 36, 55, 0, 0, 192, 176, 84, 36, 41, 60, 171, 71, 225, 60, 47, 127, 90, 14, 162, 57, 44, 58, 165, 87, 92, 188, 227, 1, 229, 60, 14, 149, 77, 189, 170, 148, 115, 48, 176, 51, 236, 58, 122, 243, 155, 61, 164, 149, 0, 60, 0, 155, 192, 59, 38, 185, 174, 41, 53, 51, 100, 55, 0, 0, 160, 176, 72, 61, 158, 59, 27, 58, 105, 60, 229, 127, 106, 15, 210, 57, 24, 58, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 0, 0, 173, 41, 49, 51, 144, 55, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 35, 192, 175, 41, 49, 51, 144, 55, 160, 232, 51, 188, 168, 107, 126, 60, 111, 219, 39, 189, 186, 144, 116, 50, 212, 51, 166, 58, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 60, 221, 65, 173, 40, 62, 56, 225, 54, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 60, 0, 0, 175, 40, 43, 51, 163, 55, 244, 109, 254, 187, 240, 100, 196, 59, 204, 98, 237, 188, 203, 141, 119, 52, 247, 51, 102, 58, 226, 2, 153, 61, 16, 115, 66, 60, 0, 155, 192, 59, 218, 70, 174, 40, 61, 56, 12, 55, 200, 179, 131, 187, 0, 0, 19, 181, 140, 194, 117, 188, 230, 135, 123, 55, 13, 52, 44, 58, 13, 170, 152, 61, 72, 57, 74, 60, 217, 185, 180, 33, 212, 82, 174, 41, 61, 56, 81, 55, 0, 0, 0, 177, 57, 98, 109, 61, 143, 194, 117, 189, 137, 130, 112, 71, 144, 52, 166, 59, 226, 2, 153, 61, 16, 115, 66, 60, 0, 155, 192, 187, 200, 88, 175, 41, 61, 56, 149, 55, 0, 0, 160, 49, 168, 107, 126, 60, 77, 199, 45, 189, 193, 130, 117, 72, 73, 52, 166, 58, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 188, 195, 91, 175, 41, 62, 56, 192, 55, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 188, 127, 127, 175, 40, 43, 51, 164, 54, 30, 58, 105, 188, 57, 98, 109, 61, 142, 154, 89, 61, 120, 101, 16, 6, 140, 56, 51, 58, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 188, 127, 127, 173, 41, 49, 51, 183, 54, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 188, 62, 165, 174, 40, 49, 51, 183, 54, 0, 0, 128, 176, 240, 100, 196, 59, 143, 194, 245, 188, 209, 130, 120, 72, 57, 52, 103, 58, 122, 243, 155, 61, 164, 149, 0, 60, 0, 155, 192, 187, 55, 168, 174, 41, 53, 51, 227, 54, 0, 0, 48, 49, 0, 0, 19, 181, 238, 109, 126, 188, 234, 129, 124, 70, 43, 52, 44, 58, 247, 240, 167, 61, 124, 117, 60, 60, 0, 0, 0, 128, 61, 191, 191, 32, 158, 50, 36, 55, 175, 71, 97, 188, 178, 19, 51, 61, 101, 48, 82, 61, 104, 104, 36, 8, 225, 56, 41, 58, 54, 95, 167, 61, 244, 240, 66, 60, 0, 155, 192, 59, 53, 199, 191, 33, 157, 50, 101, 55, 2, 251, 73, 188, 196, 124, 249, 60, 74, 115, 60, 61, 86, 108, 57, 11, 40, 57, 32, 58, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 60, 0, 0, 190, 33, 153, 50, 145, 55, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 60, 49, 204, 191, 32, 153, 50, 145, 55, 154, 234, 36, 188, 96, 44, 156, 60, 121, 222, 25, 61, 70, 112, 72, 11, 100, 57, 25, 58, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 60, 208, 53, 189, 32, 29, 56, 227, 54, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 60, 0, 0, 191, 32, 148, 50, 163, 55, 30, 58, 233, 187, 84, 36, 41, 60, 142, 154, 217, 60, 53, 115, 87, 12, 155, 57, 18, 58, 86, 140, 162, 61, 60, 220, 121, 60, 0, 155, 192, 59, 203, 57, 190, 32, 29, 56, 13, 55, 84, 116, 113, 187, 72, 61, 158, 59, 171, 71, 97, 60, 32, 120, 104, 15, 206, 57, 12, 58, 148, 250, 161, 61, 218, 43, 128, 60, 217, 185, 180, 33, 195, 65, 191, 32, 29, 56, 81, 55, 172, 71, 225, 188, 57, 98, 109, 61, 33, 25, 67, 61, 121, 82, 230, 6, 141, 56, 212, 57, 86, 140, 162, 61, 60, 220, 121, 60, 0, 155, 192, 187, 187, 73, 191, 33, 29, 56, 148, 55, 143, 154, 217, 188, 178, 19, 51, 61, 73, 115, 60, 61, 106, 88, 30, 1, 226, 56, 223, 57, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 188, 183, 78, 191, 33, 29, 56, 191, 55, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 188, 127, 127, 191, 32, 148, 50, 164, 54, 34, 25, 195, 188, 196, 124, 249, 60, 191, 245, 40, 61, 89, 94, 53, 6, 40, 57, 232, 57, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 188, 127, 127, 190, 33, 153, 50, 183, 54, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 188, 74, 179, 191, 32, 153, 50, 183, 54, 7, 76, 159, 188, 96, 44, 156, 60, 135, 244, 9, 61, 73, 99, 71, 9, 101, 57, 240, 57, 54, 95, 167, 61, 244, 240, 66, 60, 0, 155, 192, 187, 69, 183, 190, 32, 157, 50, 227, 54, 172, 71, 97, 188, 84, 36, 41, 60, 33, 25, 195, 60, 56, 106, 87, 11, 155, 57, 248, 57, 132, 141, 177, 61, 130, 158, 139, 60, 0, 0, 0, 128, 76, 206, 206, 25, 0, 50, 36, 55, 30, 58, 233, 187, 72, 61, 158, 59, 1, 251, 73, 60, 35, 114, 104, 14, 206, 57, 255, 57, 196, 204, 176, 61, 86, 254, 141, 60, 0, 155, 192, 59, 66, 212, 206, 25, 255, 49, 101, 55, 0, 0, 0, 0, 176, 168, 65, 59, 0, 0, 0, 128, 0, 127, 127, 18, 0, 58, 5, 58, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 60, 0, 0, 205, 25, 252, 49, 145, 55, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 60, 61, 216, 206, 25, 252, 49, 145, 55, 7, 76, 31, 189, 57, 98, 109, 61, 6, 76, 31, 61, 121, 66, 207, 10, 165, 56, 119, 57, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 60, 195, 41, 205, 25, 247, 55, 228, 54, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 60, 0, 0, 206, 25, 249, 49, 163, 55, 124, 222, 25, 189, 178, 19, 51, 61, 122, 222, 25, 61, 106, 73, 210, 4, 245, 56, 151, 57, 196, 107, 170, 61, 220, 27, 162, 60, 0, 155, 192, 59, 190, 44, 205, 25, 247, 55, 14, 55, 138, 244, 9, 189, 196, 124, 249, 60, 137, 244, 9, 61, 90, 81, 56, 2, 55, 57, 177, 57, 5, 171, 169, 61, 174, 123, 164, 60, 217, 185, 180, 33, 180, 50, 206, 25, 247, 55, 81, 55, 169, 71, 225, 188, 96, 44, 156, 60, 164, 71, 225, 60, 74, 89, 73, 8, 112, 57, 200, 57, 196, 107, 170, 61, 220, 27, 162, 60, 0, 155, 192, 187, 174, 60, 206, 25, 247, 55, 148, 55, 7, 76, 159, 188, 84, 36, 41, 60, 6, 76, 159, 60, 57, 98, 89, 11, 162, 57, 222, 57, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 188, 171, 65, 206, 25, 247, 55, 189, 55, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 188, 127, 127, 206, 25, 249, 49, 165, 54, 153, 234, 36, 188, 72, 61, 158, 59, 151, 234, 36, 60, 35, 109, 106, 14, 210, 57, 242, 57, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 188, 127, 127, 205, 25, 252, 49, 183, 54, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 188, 86, 191, 206, 25, 252, 49, 183, 54, 32, 25, 67, 189, 57, 98, 109, 61, 168, 71, 225, 60, 121, 50, 191, 10, 212, 56, 35, 57, 196, 204, 176, 61, 86, 254, 141, 60, 0, 155, 192, 187, 82, 196, 205, 25, 255, 49, 226, 54, 74, 115, 60, 189, 178, 19, 51, 61, 138, 154, 217, 60, 106, 59, 195, 5, 26, 57, 86, 57, 192, 245, 40, 189, 196, 124, 249, 60, 30, 25, 195, 60, 89, 70, 66, 2, 83, 57, 129, 57, 136, 244, 9, 189, 96, 44, 156, 60, 1, 76, 159, 60, 73, 80, 80, 7, 132, 57, 165, 57, 32, 25, 195, 188, 84, 36, 41, 60, 168, 71, 97, 60, 56, 91, 94, 11, 175, 57, 199, 57, 2, 251, 73, 188, 72, 61, 158, 59, 26, 58, 233, 59, 35, 104, 108, 15, 216, 57, 230, 57, 140, 154, 89, 189, 57, 98, 109, 61, 23, 58, 105, 60, 120, 31, 180, 6, 23, 57, 220, 56, 101, 48, 82, 189, 178, 19, 51, 61, 163, 71, 97, 60, 104, 44, 182, 2, 78, 57, 33, 57, 74, 115, 60, 189, 196, 124, 249, 60, 250, 250, 73, 60, 86, 58, 80, 4, 123, 57, 88, 57, 120, 222, 25, 189, 96, 44, 156, 60, 141, 234, 36, 60, 70, 71, 90, 8, 161, 57, 136, 57, 140, 154, 217, 188, 84, 36, 41, 60, 23, 58, 233, 59, 53, 84, 101, 12, 194, 57, 180, 57, 172, 71, 97, 188, 72, 61, 158, 59, 75, 116, 113, 59, 32, 101, 112, 15, 225, 57, 221, 57, 169, 71, 97, 189, 57, 98, 109, 61, 0, 0, 0, 177, 119, 7, 89, 1, 107, 57, 169, 56, 140, 154, 89, 189, 178, 19, 51, 61, 0, 0, 224, 177, 100, 26, 92, 4, 143, 57, 250, 56, 32, 25, 67, 189, 196, 124, 249, 60, 0, 0, 224, 177, 80, 46, 97, 8, 172, 57, 60, 57, 3, 76, 31, 189, 96, 44, 156, 60, 0, 0, 224, 177, 63, 63, 103, 11, 196, 57, 116, 57, 169, 71, 225, 188, 84, 36, 41, 60, 0, 0, 128, 176, 47, 79, 109, 14, 217, 57, 167, 57, 27, 58, 105, 188, 72, 61, 158, 59, 0, 0, 160, 176, 27, 99, 117, 16, 237, 57, 215, 57, 140, 154, 89, 189, 57, 98, 109, 61, 27, 58, 105, 188, 95, 6, 112, 12, 201, 57, 141, 56, 100, 48, 82, 189, 178, 19, 51, 61, 176, 71, 97, 188, 82, 22, 113, 13, 216, 57, 229, 56, 73, 115, 60, 189, 196, 124, 249, 60, 6, 251, 73, 188, 68, 40, 115, 14, 227, 57, 44, 57, 119, 222, 25, 189, 96, 44, 156, 60, 154, 234, 36, 188, 55, 56, 118, 16, 236, 57, 105, 57, 140, 154, 217, 188, 84, 36, 41, 60, 27, 58, 233, 187, 42, 73, 120, 17, 243, 57, 160, 57, 171, 71, 97, 188, 72, 61, 158, 59, 84, 116, 113, 187, 25, 94, 123, 17, 250, 57, 211, 57, 31, 25, 67, 189, 57, 98, 109, 61, 170, 71, 225, 188, 76, 5, 117, 105, 44, 58, 138, 56, 72, 115, 60, 189, 178, 19, 51, 61, 142, 154, 217, 188, 67, 20, 118, 106, 35, 58, 228, 56, 190, 245, 40, 189, 196, 124, 249, 60, 35, 25, 195, 188, 56, 37, 118, 107, 28, 58, 44, 57, 133, 244, 9, 189, 96, 44, 156, 60, 6, 76, 159, 188, 46, 53, 118, 108, 21, 58, 105, 57, 31, 25, 195, 188, 84, 36, 41, 60, 170, 71, 97, 188, 35, 70, 121, 108, 14, 58, 160, 57, 1, 251, 73, 188, 72, 61, 158, 59, 30, 58, 233, 187, 22, 91, 123, 108, 7, 58, 211, 57, 5, 76, 31, 189, 57, 98, 109, 61, 6, 76, 31, 189, 60, 5, 99, 102, 142, 58, 162, 56, 121, 222, 25, 189, 178, 19, 51, 61, 123, 222, 25, 189, 53, 20, 100, 104, 109, 58, 246, 56, 136, 244, 9, 189, 196, 124, 249, 60, 138, 244, 9, 189, 45, 36, 102, 106, 83, 58, 58, 57, 160, 71, 225, 188, 96, 44, 156, 60, 167, 71, 225, 188, 37, 52, 105, 108, 61, 58, 116, 57, 5, 76, 159, 188, 84, 36, 41, 60, 6, 76, 159, 188, 28, 69, 110, 109, 39, 58, 166, 57, 151, 234, 36, 188, 72, 61, 158, 59, 153, 234, 36, 188, 17, 91, 117, 109, 20, 58, 214, 57, 167, 71, 225, 188, 57, 98, 109, 61, 31, 25, 67, 189, 44, 5, 81, 102, 230, 58, 210, 56, 136, 154, 217, 188, 178, 19, 51, 61, 73, 115, 60, 189, 38, 20, 85, 103, 176, 58, 28, 57, 28, 25, 195, 188, 196, 124, 249, 60, 191, 245, 40, 189, 32, 37, 88, 106, 133, 58, 87, 57, 254, 75, 159, 188, 96, 44, 156, 60, 135, 244, 9, 189, 27, 53, 94, 108, 96, 58, 136, 57, 167, 71, 97, 188, 84, 36, 41, 60, 31, 25, 195, 188, 20, 70, 102, 109, 63, 58, 180, 57, 26, 58, 233, 187, 72, 61, 158, 59, 2, 251, 73, 188, 12, 91, 112, 109, 31, 58, 221, 57, 22, 58, 105, 188, 57, 98, 109, 61, 139, 154, 89, 189, 25, 6, 62, 104, 48, 59, 24, 57, 160, 71, 97, 188, 178, 19, 51, 61, 100, 48, 82, 189, 22, 22, 67, 106, 231, 58, 82, 57, 247, 250, 73, 188, 196, 124, 249, 60, 72, 115, 60, 189, 18, 40, 75, 109, 173, 58, 127, 57, 136, 234, 36, 188, 96, 44, 156, 60, 119, 222, 25, 189, 14, 56, 85, 110, 125, 58, 165, 57, 22, 58, 233, 187, 84, 36, 41, 60, 139, 154, 217, 188, 11, 73, 95, 111, 81, 58, 199, 57, 75, 116, 113, 187, 72, 61, 158, 59, 172, 71, 97, 188, 6, 94, 108, 110, 40, 58, 230, 57, 0, 0, 224, 49, 196, 124, 249, 60, 30, 25, 67, 189, 0, 46, 64, 112, 203, 58, 176, 57, 0, 0, 128, 48, 84, 36, 41, 60, 168, 71, 225, 188, 0, 79, 90, 112, 95, 58, 222, 57, 0, 0, 160, 48, 72, 61, 158, 59, 27, 58, 105, 188, 0, 99, 106, 111, 47, 58, 242, 57, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 207, 97, 96, 84, 249, 28, 211, 54, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 113, 230, 23, 120, 108, 55, 234, 57, 236, 30, 113, 61, 118, 95, 102, 61, 237, 209, 225, 187, 200, 97, 97, 85, 76, 28, 197, 54, 236, 30, 113, 61, 118, 95, 102, 61, 237, 209, 225, 187, 113, 230, 14, 118, 102, 55, 241, 57, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 188, 84, 89, 94, 151, 25, 157, 54, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 126, 129, 96, 78, 151, 25, 157, 54, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 113, 230, 14, 118, 81, 55, 2, 58, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 126, 129, 99, 77, 61, 8, 131, 54, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 68, 172, 71, 87, 93, 53, 188, 55, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 113, 230, 39, 123, 52, 55, 2, 58, 129, 29, 114, 61, 249, 178, 81, 61, 241, 135, 156, 47, 53, 183, 73, 90, 101, 53, 81, 55, 129, 29, 114, 61, 249, 178, 81, 61, 241, 135, 156, 47, 112, 242, 24, 120, 31, 55, 196, 57, 129, 247, 110, 61, 48, 220, 81, 61, 0, 155, 192, 187, 63, 176, 71, 88, 91, 53, 145, 55, 129, 247, 110, 61, 48, 220, 81, 61, 0, 155, 192, 187, 113, 230, 24, 121, 35, 55, 235, 57, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 75, 196, 56, 99, 227, 53, 244, 57, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 107, 38, 226, 115, 4, 57, 146, 55, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 147, 210, 231, 101, 82, 53, 158, 54, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 127, 127, 207, 102, 82, 53, 158, 54, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 75, 196, 56, 100, 198, 53, 5, 58, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 127, 127, 206, 101, 90, 53, 133, 54, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 75, 196, 56, 100, 217, 53, 5, 58, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 109, 46, 223, 115, 3, 57, 188, 55, 90, 117, 55, 61, 186, 112, 152, 60, 142, 70, 224, 48, 173, 213, 213, 105, 70, 53, 36, 55, 90, 117, 55, 61, 186, 112, 152, 60, 142, 70, 224, 48, 71, 201, 61, 101, 167, 53, 220, 57, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 71, 201, 60, 101, 223, 53, 217, 57, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 104, 22, 234, 115, 1, 57, 81, 55, 52, 249, 55, 61, 198, 193, 162, 60, 109, 56, 209, 187, 162, 197, 216, 101, 77, 53, 204, 54, 52, 249, 55, 61, 198, 193, 162, 60, 109, 56, 209, 187, 75, 196, 57, 100, 181, 53, 247, 57, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 166, 201, 215, 101, 76, 53, 211, 54, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 75, 196, 58, 101, 179, 53, 245, 57, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 59, 66, 205, 63, 101, 214, 53, 190, 57, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 59, 88, 19, 234, 111, 4, 57, 16, 55, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 176, 239, 206, 114, 82, 53, 169, 55, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 0, 0, 210, 103, 82, 53, 169, 55, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 66, 205, 65, 102, 178, 53, 176, 57, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 0, 0, 207, 102, 90, 53, 195, 55, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 66, 205, 64, 102, 196, 53, 174, 57, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 80, 17, 233, 110, 3, 57, 230, 54, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 189, 224, 205, 106, 77, 53, 123, 55, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 66, 205, 65, 102, 168, 53, 191, 57, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 185, 220, 205, 106, 76, 53, 116, 55, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 66, 205, 64, 102, 167, 53, 194, 57, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 0, 0, 100, 76, 62, 8, 197, 55, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 42, 198, 78, 91, 93, 53, 230, 54, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 100, 243, 9, 110, 23, 55, 134, 57, 129, 247, 110, 61, 49, 220, 81, 61, 0, 155, 192, 59, 46, 193, 77, 91, 91, 53, 16, 55, 129, 247, 110, 61, 49, 220, 81, 61, 0, 155, 192, 59, 100, 243, 24, 119, 18, 55, 159, 57, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 227, 70, 83, 78, 76, 28, 130, 55, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 100, 243, 38, 119, 80, 55, 146, 57, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 214, 58, 65, 82, 151, 25, 170, 55, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 0, 0, 99, 77, 151, 25, 170, 55, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 100, 243, 36, 119, 52, 55, 131, 57, 88, 145, 117, 61, 106, 236, 107, 61, 0, 0, 0, 128, 221, 91, 89, 80, 25, 31, 36, 55, 88, 145, 117, 61, 106, 236, 107, 61, 0, 0, 0, 128, 112, 242, 25, 120, 120, 55, 191, 57, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 59, 227, 77, 85, 78, 249, 28, 116, 55, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 59, 100, 243, 31, 119, 90, 55, 152, 57, 155, 213, 84, 189, 97, 32, 141, 61, 142, 194, 245, 188, 129, 46, 65, 12, 137, 42, 51, 59, 155, 213, 84, 189, 97, 32, 141, 61, 142, 194, 245, 188, 0, 126, 126, 106, 56, 58, 12, 56, 80, 199, 45, 189, 97, 32, 141, 61, 79, 199, 45, 189, 129, 63, 82, 20, 85, 46, 150, 59, 80, 199, 45, 189, 97, 32, 141, 61, 79, 199, 45, 189, 0, 126, 126, 107, 186, 58, 41, 56, 144, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 189, 129, 80, 97, 30, 12, 49, 219, 59, 144, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 189, 0, 126, 126, 106, 50, 59, 105, 56, 143, 194, 117, 61, 97, 32, 141, 61, 0, 0, 128, 176, 0, 126, 126, 108, 191, 58, 222, 59, 143, 194, 117, 61, 97, 32, 141, 61, 0, 0, 128, 176, 127, 0, 16, 127, 20, 56, 182, 57, 204, 98, 109, 61, 97, 32, 141, 61, 241, 109, 126, 60, 0, 126, 126, 109, 60, 58, 255, 59, 204, 98, 109, 61, 97, 32, 141, 61, 241, 109, 126, 60, 100, 0, 42, 122, 240, 55, 53, 57, 204, 98, 109, 61, 97, 32, 141, 61, 243, 109, 126, 188, 0, 126, 126, 108, 51, 59, 157, 59, 204, 98, 109, 61, 97, 32, 141, 61, 243, 109, 126, 188, 127, 26, 2, 120, 20, 56, 56, 58, 174, 71, 225, 60, 97, 32, 141, 61, 35, 25, 67, 189, 210, 0, 245, 123, 212, 59, 67, 58, 174, 71, 225, 60, 97, 32, 141, 61, 35, 25, 67, 189, 0, 126, 126, 108, 212, 59, 67, 58, 9, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 189, 193, 0, 214, 116, 179, 59, 188, 58, 9, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 189, 0, 126, 126, 109, 179, 59, 188, 58, 169, 71, 97, 189, 97, 32, 141, 61, 0, 0, 0, 177, 0, 126, 126, 106, 72, 57, 93, 56, 169, 71, 97, 189, 97, 32, 141, 61, 0, 0, 0, 177, 127, 0, 85, 1, 72, 57, 93, 56, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 0, 126, 126, 106, 187, 57, 58, 56, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 100, 0, 111, 11, 187, 57, 58, 56, 240, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 61, 230, 0, 75, 47, 44, 49, 4, 56, 240, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 61, 0, 126, 126, 109, 20, 56, 66, 58, 142, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 61, 210, 0, 50, 40, 139, 46, 72, 56, 142, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 61, 0, 126, 126, 107, 20, 56, 196, 57, 242, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 189, 0, 126, 126, 107, 255, 59, 192, 57, 242, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 189, 127, 100, 73, 80, 179, 53, 218, 59, 0, 0, 0, 177, 97, 32, 141, 61, 143, 194, 117, 189, 0, 126, 126, 107, 218, 59, 60, 57, 0, 0, 0, 177, 97, 32, 141, 61, 143, 194, 117, 189, 127, 127, 112, 70, 167, 52, 255, 59, 35, 25, 67, 61, 97, 32, 141, 61, 172, 71, 225, 188, 176, 0, 194, 115, 114, 59, 38, 59, 35, 25, 67, 61, 97, 32, 141, 61, 172, 71, 225, 188, 0, 126, 126, 98, 114, 59, 38, 59, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 156, 0, 179, 118, 26, 59, 124, 59, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 0, 126, 126, 108, 26, 59, 124, 59, 5, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 189, 0, 126, 126, 107, 172, 58, 81, 56, 5, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 189, 63, 0, 99, 102, 172, 58, 81, 56, 167, 71, 225, 188, 97, 32, 141, 61, 31, 25, 67, 189, 0, 126, 126, 108, 25, 59, 140, 56, 167, 71, 225, 188, 97, 32, 141, 61, 31, 25, 67, 189, 46, 0, 82, 100, 25, 59, 140, 56, 143, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 189, 0, 126, 126, 108, 255, 59, 74, 58, 143, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 189, 127, 80, 50, 87, 161, 54, 148, 59, 244, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 189, 129, 100, 114, 44, 36, 51, 255, 59, 244, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 189, 0, 126, 126, 108, 148, 59, 200, 56, 155, 213, 84, 61, 97, 32, 141, 61, 142, 194, 245, 60, 0, 126, 126, 109, 182, 57, 253, 59, 155, 213, 84, 61, 97, 32, 141, 61, 142, 194, 245, 60, 80, 0, 63, 115, 113, 55, 187, 56, 173, 71, 97, 61, 97, 32, 141, 61, 0, 0, 128, 49, 129, 0, 89, 126, 175, 58, 183, 59, 173, 71, 97, 61, 97, 32, 141, 61, 0, 0, 128, 49, 0, 126, 126, 108, 175, 58, 183, 59, 143, 154, 89, 61, 97, 32, 141, 61, 33, 58, 105, 60, 129, 26, 116, 114, 56, 58, 213, 59, 143, 154, 89, 61, 97, 32, 141, 61, 33, 58, 105, 60, 0, 126, 126, 109, 56, 58, 213, 59, 34, 25, 67, 61, 97, 32, 141, 61, 174, 71, 225, 60, 129, 46, 113, 20, 189, 57, 211, 59, 34, 25, 67, 61, 97, 32, 141, 61, 174, 71, 225, 60, 0, 126, 126, 109, 189, 57, 211, 59, 204, 98, 109, 189, 97, 32, 141, 61, 244, 109, 126, 60, 156, 0, 2, 6, 66, 17, 168, 57, 204, 98, 109, 189, 97, 32, 141, 61, 244, 109, 126, 60, 0, 126, 126, 106, 200, 56, 125, 56, 143, 194, 117, 189, 97, 32, 141, 61, 0, 0, 0, 49, 129, 0, 18, 1, 61, 8, 51, 58, 143, 194, 117, 189, 97, 32, 141, 61, 0, 0, 0, 49, 0, 126, 126, 107, 55, 57, 55, 56, 80, 199, 45, 61, 97, 32, 141, 61, 80, 199, 45, 189, 0, 126, 126, 109, 218, 59, 206, 58, 80, 199, 45, 61, 97, 32, 141, 61, 80, 199, 45, 189, 127, 63, 31, 95, 97, 55, 50, 59, 170, 71, 225, 60, 97, 32, 141, 61, 34, 25, 67, 61, 129, 80, 79, 25, 224, 56, 112, 59, 170, 71, 225, 60, 97, 32, 141, 61, 34, 25, 67, 61, 0, 126, 126, 110, 224, 56, 112, 59, 24, 58, 105, 60, 97, 32, 141, 61, 142, 154, 89, 61, 129, 100, 60, 23, 142, 56, 23, 59, 24, 58, 105, 60, 97, 32, 141, 61, 142, 154, 89, 61, 0, 126, 126, 110, 142, 56, 23, 59, 80, 199, 45, 61, 97, 32, 141, 61, 79, 199, 45, 61, 0, 126, 126, 109, 54, 57, 215, 59, 80, 199, 45, 61, 97, 32, 141, 61, 79, 199, 45, 61, 63, 0, 80, 106, 180, 54, 86, 56, 32, 25, 67, 189, 97, 32, 141, 61, 168, 71, 225, 60, 0, 126, 126, 112, 145, 56, 243, 56, 32, 25, 67, 189, 97, 32, 141, 61, 168, 71, 225, 60, 127, 46, 197, 10, 145, 56, 243, 56, 140, 154, 89, 189, 97, 32, 141, 61, 23, 58, 105, 60, 0, 126, 126, 107, 226, 56, 156, 56, 140, 154, 89, 189, 97, 32, 141, 61, 23, 58, 105, 60, 127, 26, 183, 7, 226, 56, 156, 56, 7, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 61, 129, 63, 96, 24, 71, 57, 177, 59, 7, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 61, 0, 126, 126, 109, 71, 57, 177, 59, 0, 0, 0, 0, 97, 32, 141, 61, 174, 71, 97, 189, 0, 126, 126, 107, 179, 59, 77, 57, 0, 0, 0, 0, 97, 32, 141, 61, 174, 71, 97, 189, 0, 0, 40, 106, 179, 59, 77, 57, 30, 58, 105, 60, 97, 32, 141, 61, 144, 154, 89, 189, 230, 0, 18, 115, 212, 59, 198, 57, 30, 58, 105, 60, 97, 32, 141, 61, 144, 154, 89, 189, 0, 126, 126, 108, 212, 59, 198, 57, 31, 25, 67, 189, 97, 32, 141, 61, 170, 71, 225, 188, 0, 126, 126, 108, 52, 58, 54, 56, 31, 25, 67, 189, 97, 32, 141, 61, 170, 71, 225, 188, 80, 0, 117, 105, 52, 58, 54, 56, 0, 0, 64, 177, 97, 32, 141, 61, 171, 71, 97, 61, 0, 126, 126, 100, 86, 56, 174, 58, 0, 0, 64, 177, 97, 32, 141, 61, 171, 71, 97, 61, 127, 127, 37, 18, 86, 56, 174, 58, 144, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 61, 0, 126, 126, 109, 197, 56, 144, 59, 144, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 61, 46, 0, 95, 96, 199, 53, 13, 56, 244, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 61, 0, 126, 126, 110, 108, 56, 47, 59, 244, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 61, 26, 0, 112, 82, 187, 52, 203, 55, 22, 58, 105, 188, 97, 32, 141, 61, 139, 154, 89, 189, 0, 126, 126, 108, 115, 59, 226, 56, 22, 58, 105, 188, 97, 32, 141, 61, 139, 154, 89, 189, 26, 0, 63, 101, 115, 59, 226, 56, 0, 0, 0, 49, 97, 32, 141, 61, 143, 194, 117, 61, 0, 126, 126, 114, 49, 56, 188, 58, 0, 0, 0, 49, 97, 32, 141, 61, 143, 194, 117, 61, 0, 0, 114, 57, 74, 51, 198, 55, 156, 213, 84, 61, 97, 32, 141, 61, 144, 194, 245, 188, 0, 126, 126, 111, 147, 59, 65, 59, 156, 213, 84, 61, 97, 32, 141, 61, 144, 194, 245, 188, 127, 46, 14, 106, 231, 55, 187, 58, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 0, 126, 126, 109, 59, 56, 61, 58, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 127, 100, 17, 10, 59, 56, 61, 58, 7, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 61, 0, 126, 126, 107, 89, 56, 89, 57, 7, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 61, 127, 63, 216, 10, 89, 56, 89, 57, 204, 98, 109, 189, 97, 32, 141, 61, 240, 109, 126, 188, 129, 26, 44, 4, 112, 36, 186, 58, 204, 98, 109, 189, 97, 32, 141, 61, 240, 109, 126, 188, 0, 126, 126, 106, 180, 57, 18, 56, 79, 199, 45, 189, 97, 32, 141, 61, 80, 199, 45, 61, 193, 0, 32, 32, 217, 42, 170, 56, 79, 199, 45, 189, 97, 32, 141, 61, 80, 199, 45, 61, 0, 126, 126, 107, 52, 56, 74, 57, 172, 71, 225, 188, 97, 32, 141, 61, 33, 25, 67, 61, 0, 126, 126, 108, 60, 56, 202, 57, 172, 71, 225, 188, 97, 32, 141, 61, 33, 25, 67, 61, 127, 80, 245, 3, 60, 56, 202, 57, 155, 213, 84, 189, 97, 32, 141, 61, 144, 194, 245, 60, 176, 0, 15, 21, 211, 36, 34, 57, 155, 213, 84, 189, 97, 32, 141, 61, 144, 194, 245, 60, 0, 126, 126, 105, 112, 56, 219, 56 ), -"array_index_data": PoolByteArray( 188, 1, 12, 0, 2, 0, 188, 1, 16, 0, 12, 0, 194, 1, 16, 0, 188, 1, 194, 1, 22, 0, 16, 0, 1, 0, 6, 0, 186, 1, 1, 0, 9, 0, 6, 0, 196, 1, 22, 0, 194, 1, 196, 1, 24, 0, 22, 0, 2, 0, 9, 0, 1, 0, 2, 0, 12, 0, 9, 0, 30, 1, 24, 0, 196, 1, 24, 0, 40, 0, 22, 0, 24, 0, 43, 0, 40, 0, 12, 0, 28, 0, 9, 0, 12, 0, 31, 0, 28, 0, 30, 1, 43, 0, 24, 0, 16, 0, 31, 0, 12, 0, 16, 0, 37, 0, 31, 0, 22, 0, 37, 0, 16, 0, 22, 0, 40, 0, 37, 0, 9, 0, 26, 0, 6, 0, 9, 0, 28, 0, 26, 0, 40, 0, 63, 0, 37, 0, 40, 0, 66, 0, 63, 0, 28, 0, 50, 0, 26, 0, 28, 0, 55, 0, 50, 0, 43, 0, 66, 0, 40, 0, 43, 0, 69, 0, 66, 0, 31, 0, 55, 0, 28, 0, 31, 0, 60, 0, 55, 0, 30, 1, 69, 0, 43, 0, 37, 0, 60, 0, 31, 0, 37, 0, 63, 0, 60, 0, 30, 1, 94, 0, 69, 0, 63, 0, 75, 0, 60, 0, 63, 0, 84, 0, 75, 0, 66, 0, 84, 0, 63, 0, 66, 0, 88, 0, 84, 0, 55, 0, 71, 0, 50, 0, 55, 0, 73, 0, 71, 0, 69, 0, 88, 0, 66, 0, 69, 0, 94, 0, 88, 0, 60, 0, 73, 0, 55, 0, 60, 0, 75, 0, 73, 0, 73, 0, 97, 0, 71, 0, 73, 0, 101, 0, 97, 0, 94, 0, 109, 0, 88, 0, 94, 0, 111, 0, 109, 0, 75, 0, 101, 0, 73, 0, 75, 0, 104, 0, 101, 0, 30, 1, 111, 0, 94, 0, 84, 0, 104, 0, 75, 0, 84, 0, 108, 0, 104, 0, 88, 0, 108, 0, 84, 0, 88, 0, 109, 0, 108, 0, 109, 0, 127, 0, 108, 0, 109, 0, 131, 0, 127, 0, 51, 2, 116, 0, 49, 2, 116, 0, 97, 0, 101, 0, 97, 0, 91, 2, 115, 0, 97, 0, 39, 2, 91, 2, 47, 2, 116, 0, 51, 2, 47, 2, 97, 0, 116, 0, 97, 0, 41, 2, 39, 2, 44, 2, 97, 0, 47, 2, 97, 0, 44, 2, 41, 2, 111, 0, 131, 0, 109, 0, 111, 0, 136, 0, 131, 0, 104, 0, 116, 0, 101, 0, 104, 0, 122, 0, 116, 0, 30, 1, 136, 0, 111, 0, 67, 2, 127, 0, 61, 2, 104, 0, 62, 2, 122, 0, 104, 0, 52, 2, 62, 2, 67, 2, 108, 0, 127, 0, 65, 2, 108, 0, 67, 2, 104, 0, 58, 2, 52, 2, 56, 2, 108, 0, 65, 2, 104, 0, 56, 2, 58, 2, 108, 0, 56, 2, 104, 0, 122, 0, 146, 0, 116, 0, 122, 0, 147, 0, 146, 0, 30, 1, 156, 0, 136, 0, 68, 2, 122, 0, 62, 2, 149, 0, 61, 2, 127, 0, 149, 0, 79, 2, 61, 2, 68, 2, 147, 0, 122, 0, 74, 2, 147, 0, 68, 2, 149, 0, 77, 2, 79, 2, 72, 2, 147, 0, 74, 2, 149, 0, 72, 2, 77, 2, 147, 0, 72, 2, 149, 0, 131, 0, 149, 0, 127, 0, 131, 0, 154, 0, 149, 0, 93, 2, 115, 0, 91, 2, 140, 0, 116, 0, 146, 0, 116, 0, 84, 2, 49, 2, 116, 0, 82, 2, 84, 2, 93, 2, 140, 0, 115, 0, 86, 2, 140, 0, 93, 2, 140, 0, 82, 2, 116, 0, 89, 2, 140, 0, 86, 2, 140, 0, 89, 2, 82, 2, 136, 0, 154, 0, 131, 0, 136, 0, 156, 0, 154, 0, 146, 0, 160, 0, 140, 0, 146, 0, 166, 0, 160, 0, 156, 0, 180, 0, 154, 0, 156, 0, 184, 0, 180, 0, 147, 0, 166, 0, 146, 0, 147, 0, 168, 0, 166, 0, 30, 1, 184, 0, 156, 0, 149, 0, 168, 0, 147, 0, 149, 0, 175, 0, 168, 0, 154, 0, 175, 0, 149, 0, 154, 0, 180, 0, 175, 0, 175, 0, 192, 0, 168, 0, 175, 0, 194, 0, 192, 0, 180, 0, 194, 0, 175, 0, 180, 0, 196, 0, 194, 0, 166, 0, 185, 0, 160, 0, 166, 0, 188, 0, 185, 0, 184, 0, 196, 0, 180, 0, 184, 0, 199, 0, 196, 0, 168, 0, 188, 0, 166, 0, 168, 0, 192, 0, 188, 0, 30, 1, 199, 0, 184, 0, 192, 0, 208, 0, 188, 0, 192, 0, 216, 0, 208, 0, 30, 1, 225, 0, 199, 0, 194, 0, 216, 0, 192, 0, 194, 0, 218, 0, 216, 0, 196, 0, 218, 0, 194, 0, 196, 0, 221, 0, 218, 0, 203, 0, 188, 0, 208, 0, 203, 0, 185, 0, 188, 0, 199, 0, 221, 0, 196, 0, 199, 0, 225, 0, 221, 0, 221, 0, 234, 0, 218, 0, 221, 0, 238, 0, 234, 0, 208, 0, 227, 0, 203, 0, 208, 0, 230, 0, 227, 0, 225, 0, 238, 0, 221, 0, 225, 0, 240, 0, 238, 0, 216, 0, 230, 0, 208, 0, 216, 0, 233, 0, 230, 0, 30, 1, 240, 0, 225, 0, 218, 0, 233, 0, 216, 0, 218, 0, 234, 0, 233, 0, 234, 0, 244, 0, 233, 0, 234, 0, 247, 0, 244, 0, 238, 0, 247, 0, 234, 0, 238, 0, 248, 0, 247, 0, 230, 0, 241, 0, 227, 0, 230, 0, 242, 0, 241, 0, 240, 0, 248, 0, 238, 0, 240, 0, 249, 0, 248, 0, 233, 0, 242, 0, 230, 0, 233, 0, 244, 0, 242, 0, 30, 1, 249, 0, 240, 0, 249, 0, 0, 1, 248, 0, 249, 0, 2, 1, 0, 1, 244, 0, 251, 0, 242, 0, 244, 0, 252, 0, 251, 0, 30, 1, 2, 1, 249, 0, 247, 0, 252, 0, 244, 0, 247, 0, 254, 0, 252, 0, 248, 0, 254, 0, 247, 0, 248, 0, 0, 1, 254, 0, 242, 0, 250, 0, 241, 0, 242, 0, 251, 0, 250, 0, 0, 1, 9, 1, 254, 0, 0, 1, 10, 1, 9, 1, 251, 0, 4, 1, 250, 0, 251, 0, 5, 1, 4, 1, 2, 1, 10, 1, 0, 1, 2, 1, 11, 1, 10, 1, 252, 0, 5, 1, 251, 0, 252, 0, 7, 1, 5, 1, 30, 1, 11, 1, 2, 1, 254, 0, 7, 1, 252, 0, 254, 0, 9, 1, 7, 1, 30, 1, 20, 1, 11, 1, 9, 1, 14, 1, 7, 1, 9, 1, 16, 1, 14, 1, 10, 1, 16, 1, 9, 1, 10, 1, 18, 1, 16, 1, 5, 1, 12, 1, 4, 1, 5, 1, 13, 1, 12, 1, 11, 1, 18, 1, 10, 1, 11, 1, 20, 1, 18, 1, 7, 1, 13, 1, 5, 1, 7, 1, 14, 1, 13, 1, 20, 1, 28, 1, 18, 1, 20, 1, 29, 1, 28, 1, 14, 1, 25, 1, 13, 1, 14, 1, 26, 1, 25, 1, 30, 1, 29, 1, 20, 1, 16, 1, 26, 1, 14, 1, 16, 1, 27, 1, 26, 1, 18, 1, 27, 1, 16, 1, 18, 1, 28, 1, 27, 1, 13, 1, 23, 1, 12, 1, 13, 1, 25, 1, 23, 1, 28, 1, 44, 1, 27, 1, 28, 1, 48, 1, 44, 1, 25, 1, 31, 1, 23, 1, 25, 1, 35, 1, 31, 1, 29, 1, 48, 1, 28, 1, 29, 1, 52, 1, 48, 1, 26, 1, 35, 1, 25, 1, 26, 1, 39, 1, 35, 1, 30, 1, 52, 1, 29, 1, 27, 1, 39, 1, 26, 1, 27, 1, 44, 1, 39, 1, 30, 1, 71, 1, 52, 1, 44, 1, 62, 1, 39, 1, 44, 1, 65, 1, 62, 1, 48, 1, 65, 1, 44, 1, 48, 1, 66, 1, 65, 1, 35, 1, 58, 1, 31, 1, 35, 1, 61, 1, 58, 1, 52, 1, 66, 1, 48, 1, 52, 1, 71, 1, 66, 1, 39, 1, 61, 1, 35, 1, 39, 1, 62, 1, 61, 1, 71, 1, 92, 1, 66, 1, 71, 1, 98, 1, 92, 1, 62, 1, 80, 1, 61, 1, 62, 1, 86, 1, 80, 1, 30, 1, 98, 1, 71, 1, 65, 1, 86, 1, 62, 1, 65, 1, 91, 1, 86, 1, 66, 1, 91, 1, 65, 1, 66, 1, 92, 1, 91, 1, 61, 1, 76, 1, 58, 1, 61, 1, 80, 1, 76, 1, 92, 1, 109, 1, 91, 1, 92, 1, 113, 1, 109, 1, 80, 1, 101, 1, 76, 1, 80, 1, 103, 1, 101, 1, 98, 1, 113, 1, 92, 1, 98, 1, 115, 1, 113, 1, 86, 1, 103, 1, 80, 1, 86, 1, 106, 1, 103, 1, 30, 1, 115, 1, 98, 1, 91, 1, 106, 1, 86, 1, 91, 1, 109, 1, 106, 1, 30, 1, 142, 1, 115, 1, 109, 1, 128, 1, 106, 1, 109, 1, 135, 1, 128, 1, 113, 1, 135, 1, 109, 1, 113, 1, 138, 1, 135, 1, 103, 1, 121, 1, 101, 1, 103, 1, 124, 1, 121, 1, 115, 1, 138, 1, 113, 1, 115, 1, 142, 1, 138, 1, 106, 1, 124, 1, 103, 1, 106, 1, 128, 1, 124, 1, 143, 1, 124, 1, 146, 1, 143, 1, 121, 1, 124, 1, 142, 1, 155, 1, 138, 1, 142, 1, 160, 1, 155, 1, 128, 1, 146, 1, 124, 1, 128, 1, 148, 1, 146, 1, 30, 1, 160, 1, 142, 1, 135, 1, 148, 1, 128, 1, 135, 1, 154, 1, 148, 1, 138, 1, 154, 1, 135, 1, 138, 1, 155, 1, 154, 1, 155, 1, 179, 1, 154, 1, 155, 1, 182, 1, 179, 1, 146, 1, 164, 1, 143, 1, 146, 1, 171, 1, 164, 1, 160, 1, 182, 1, 155, 1, 160, 1, 184, 1, 182, 1, 148, 1, 171, 1, 146, 1, 148, 1, 174, 1, 171, 1, 30, 1, 184, 1, 160, 1, 154, 1, 174, 1, 148, 1, 154, 1, 179, 1, 174, 1, 174, 1, 1, 0, 171, 1, 174, 1, 2, 0, 1, 0, 30, 1, 196, 1, 184, 1, 179, 1, 2, 0, 174, 1, 179, 1, 188, 1, 2, 0, 182, 1, 188, 1, 179, 1, 182, 1, 194, 1, 188, 1, 171, 1, 186, 1, 164, 1, 171, 1, 1, 0, 186, 1, 184, 1, 194, 1, 182, 1, 184, 1, 196, 1, 194, 1, 35, 2, 38, 0, 46, 0, 35, 2, 14, 0, 38, 0, 37, 2, 58, 0, 224, 1, 36, 2, 49, 0, 54, 0, 36, 2, 19, 0, 49, 0, 10, 0, 38, 0, 14, 0, 10, 0, 35, 0, 38, 0, 37, 2, 54, 0, 58, 0, 37, 2, 36, 2, 54, 0, 49, 0, 96, 0, 54, 0, 49, 0, 91, 0, 96, 0, 35, 0, 79, 0, 38, 0, 35, 0, 78, 0, 79, 0, 58, 0, 99, 0, 224, 1, 99, 0, 143, 0, 224, 1, 96, 0, 143, 0, 99, 0, 96, 0, 139, 0, 143, 0, 79, 0, 128, 0, 86, 0, 79, 0, 123, 0, 128, 0, 163, 0, 128, 0, 123, 0, 163, 0, 170, 0, 128, 0, 143, 0, 181, 0, 224, 1, 170, 0, 133, 0, 128, 0, 170, 0, 172, 0, 133, 0, 133, 0, 176, 0, 139, 0, 133, 0, 172, 0, 176, 0, 158, 0, 123, 0, 120, 0, 158, 0, 163, 0, 123, 0, 172, 0, 217, 0, 176, 0, 172, 0, 214, 0, 217, 0, 202, 0, 163, 0, 158, 0, 202, 0, 206, 0, 163, 0, 206, 0, 170, 0, 163, 0, 206, 0, 209, 0, 170, 0, 181, 0, 222, 0, 224, 1, 209, 0, 172, 0, 170, 0, 209, 0, 214, 0, 172, 0, 222, 0, 246, 0, 224, 1, 214, 0, 245, 0, 217, 0, 214, 0, 243, 0, 245, 0, 246, 0, 6, 1, 8, 1, 246, 0, 245, 0, 6, 1, 224, 1, 246, 0, 8, 1, 245, 0, 3, 1, 6, 1, 245, 0, 243, 0, 3, 1, 6, 1, 21, 1, 22, 1, 6, 1, 3, 1, 21, 1, 253, 0, 17, 1, 255, 0, 253, 0, 15, 1, 17, 1, 8, 1, 22, 1, 24, 1, 8, 1, 6, 1, 22, 1, 224, 1, 8, 1, 24, 1, 17, 1, 42, 1, 19, 1, 17, 1, 38, 1, 42, 1, 224, 1, 24, 1, 54, 1, 22, 1, 47, 1, 51, 1, 22, 1, 21, 1, 47, 1, 24, 1, 51, 1, 54, 1, 24, 1, 22, 1, 51, 1, 38, 1, 70, 1, 75, 1, 38, 1, 32, 1, 70, 1, 54, 1, 88, 1, 97, 1, 54, 1, 51, 1, 88, 1, 75, 1, 42, 1, 38, 1, 75, 1, 78, 1, 42, 1, 224, 1, 54, 1, 97, 1, 78, 1, 47, 1, 42, 1, 78, 1, 85, 1, 47, 1, 51, 1, 85, 1, 88, 1, 51, 1, 47, 1, 85, 1, 122, 1, 85, 1, 78, 1, 122, 1, 126, 1, 85, 1, 88, 1, 126, 1, 131, 1, 88, 1, 85, 1, 126, 1, 75, 1, 110, 1, 116, 1, 75, 1, 70, 1, 110, 1, 97, 1, 131, 1, 136, 1, 97, 1, 88, 1, 131, 1, 116, 1, 78, 1, 75, 1, 116, 1, 122, 1, 78, 1, 224, 1, 97, 1, 136, 1, 159, 1, 122, 1, 116, 1, 159, 1, 163, 1, 122, 1, 224, 1, 136, 1, 176, 1, 163, 1, 126, 1, 122, 1, 163, 1, 167, 1, 126, 1, 131, 1, 167, 1, 173, 1, 131, 1, 126, 1, 167, 1, 150, 1, 116, 1, 110, 1, 150, 1, 159, 1, 116, 1, 136, 1, 173, 1, 176, 1, 136, 1, 131, 1, 173, 1, 203, 1, 173, 1, 167, 1, 203, 1, 206, 1, 173, 1, 191, 1, 159, 1, 150, 1, 191, 1, 198, 1, 159, 1, 206, 1, 176, 1, 173, 1, 206, 1, 208, 1, 176, 1, 159, 1, 200, 1, 163, 1, 159, 1, 198, 1, 200, 1, 208, 1, 224, 1, 176, 1, 200, 1, 167, 1, 163, 1, 200, 1, 203, 1, 167, 1, 218, 1, 206, 1, 203, 1, 218, 1, 220, 1, 206, 1, 191, 1, 212, 1, 198, 1, 191, 1, 210, 1, 212, 1, 220, 1, 208, 1, 206, 1, 220, 1, 222, 1, 208, 1, 222, 1, 224, 1, 208, 1, 236, 1, 222, 1, 220, 1, 236, 1, 239, 1, 222, 1, 239, 1, 224, 1, 222, 1, 234, 1, 220, 1, 218, 1, 234, 1, 236, 1, 220, 1, 210, 1, 230, 1, 212, 1, 210, 1, 227, 1, 230, 1, 246, 1, 236, 1, 234, 1, 246, 1, 247, 1, 236, 1, 247, 1, 239, 1, 236, 1, 247, 1, 248, 1, 239, 1, 230, 1, 245, 1, 232, 1, 230, 1, 244, 1, 245, 1, 248, 1, 224, 1, 239, 1, 254, 1, 224, 1, 248, 1, 252, 1, 247, 1, 246, 1, 252, 1, 253, 1, 247, 1, 253, 1, 248, 1, 247, 1, 253, 1, 254, 1, 248, 1, 244, 1, 251, 1, 245, 1, 244, 1, 250, 1, 251, 1, 3, 2, 254, 1, 253, 1, 3, 2, 4, 2, 254, 1, 4, 2, 224, 1, 254, 1, 251, 1, 2, 2, 252, 1, 251, 1, 1, 2, 2, 2, 2, 2, 253, 1, 252, 1, 2, 2, 3, 2, 253, 1, 8, 2, 3, 2, 2, 2, 8, 2, 9, 2, 3, 2, 9, 2, 4, 2, 3, 2, 9, 2, 10, 2, 4, 2, 0, 2, 7, 2, 1, 2, 0, 2, 6, 2, 7, 2, 10, 2, 224, 1, 4, 2, 16, 2, 224, 1, 10, 2, 14, 2, 9, 2, 8, 2, 14, 2, 15, 2, 9, 2, 15, 2, 10, 2, 9, 2, 15, 2, 16, 2, 10, 2, 21, 2, 16, 2, 15, 2, 21, 2, 22, 2, 16, 2, 22, 2, 224, 1, 16, 2, 20, 2, 15, 2, 14, 2, 20, 2, 21, 2, 15, 2, 27, 2, 22, 2, 21, 2, 27, 2, 28, 2, 22, 2, 28, 2, 224, 1, 22, 2, 19, 2, 26, 2, 20, 2, 19, 2, 25, 2, 26, 2, 34, 2, 224, 1, 28, 2, 25, 2, 32, 2, 26, 2, 25, 2, 31, 2, 32, 2, 26, 2, 33, 2, 27, 2, 26, 2, 32, 2, 33, 2, 30, 2, 10, 0, 14, 0, 30, 2, 29, 2, 10, 0, 14, 0, 31, 2, 30, 2, 14, 0, 35, 2, 31, 2, 34, 2, 37, 2, 224, 1, 31, 2, 19, 0, 32, 2, 31, 2, 35, 2, 19, 0, 19, 0, 33, 2, 32, 2, 19, 0, 36, 2, 33, 2, 58, 1, 142, 2, 31, 1, 58, 1, 144, 2, 142, 2, 185, 0, 135, 2, 160, 0, 185, 0, 153, 2, 135, 2, 0, 0, 27, 0, 25, 0, 0, 0, 3, 0, 27, 0, 3, 0, 30, 0, 27, 0, 3, 0, 5, 0, 30, 0, 4, 0, 33, 0, 29, 0, 4, 0, 8, 0, 33, 0, 7, 0, 34, 0, 32, 0, 7, 0, 11, 0, 34, 0, 11, 0, 36, 0, 34, 0, 11, 0, 13, 0, 36, 0, 13, 0, 39, 0, 36, 0, 13, 0, 15, 0, 39, 0, 15, 0, 41, 0, 39, 0, 15, 0, 17, 0, 41, 0, 18, 0, 44, 0, 42, 0, 18, 0, 20, 0, 44, 0, 21, 0, 47, 0, 45, 0, 21, 0, 23, 0, 47, 0, 23, 0, 25, 0, 47, 0, 23, 0, 0, 0, 25, 0, 25, 0, 51, 0, 48, 0, 25, 0, 27, 0, 51, 0, 27, 0, 53, 0, 51, 0, 27, 0, 30, 0, 53, 0, 29, 0, 57, 0, 52, 0, 29, 0, 33, 0, 57, 0, 32, 0, 59, 0, 56, 0, 32, 0, 34, 0, 59, 0, 34, 0, 61, 0, 59, 0, 34, 0, 36, 0, 61, 0, 36, 0, 62, 0, 61, 0, 36, 0, 39, 0, 62, 0, 39, 0, 64, 0, 62, 0, 39, 0, 41, 0, 64, 0, 42, 0, 67, 0, 65, 0, 42, 0, 44, 0, 67, 0, 45, 0, 70, 0, 68, 0, 45, 0, 47, 0, 70, 0, 47, 0, 48, 0, 70, 0, 47, 0, 25, 0, 48, 0, 48, 0, 74, 0, 72, 0, 48, 0, 51, 0, 74, 0, 51, 0, 77, 0, 74, 0, 51, 0, 53, 0, 77, 0, 52, 0, 81, 0, 76, 0, 52, 0, 57, 0, 81, 0, 56, 0, 83, 0, 80, 0, 56, 0, 59, 0, 83, 0, 59, 0, 85, 0, 83, 0, 59, 0, 61, 0, 85, 0, 61, 0, 87, 0, 85, 0, 61, 0, 62, 0, 87, 0, 62, 0, 89, 0, 87, 0, 62, 0, 64, 0, 89, 0, 65, 0, 92, 0, 90, 0, 65, 0, 67, 0, 92, 0, 68, 0, 95, 0, 93, 0, 68, 0, 70, 0, 95, 0, 70, 0, 72, 0, 95, 0, 70, 0, 48, 0, 72, 0, 72, 0, 100, 0, 98, 0, 72, 0, 74, 0, 100, 0, 74, 0, 103, 0, 100, 0, 74, 0, 77, 0, 103, 0, 76, 0, 106, 0, 102, 0, 76, 0, 81, 0, 106, 0, 80, 0, 107, 0, 105, 0, 80, 0, 83, 0, 107, 0, 83, 0, 110, 0, 107, 0, 83, 0, 85, 0, 110, 0, 85, 0, 112, 0, 110, 0, 85, 0, 87, 0, 112, 0, 87, 0, 113, 0, 112, 0, 87, 0, 89, 0, 113, 0, 90, 0, 117, 0, 114, 0, 90, 0, 92, 0, 117, 0, 93, 0, 119, 0, 118, 0, 93, 0, 95, 0, 119, 0, 95, 0, 98, 0, 119, 0, 95, 0, 72, 0, 98, 0, 98, 0, 124, 0, 121, 0, 98, 0, 100, 0, 124, 0, 100, 0, 126, 0, 124, 0, 100, 0, 103, 0, 126, 0, 102, 0, 130, 0, 125, 0, 102, 0, 106, 0, 130, 0, 105, 0, 132, 0, 129, 0, 105, 0, 107, 0, 132, 0, 107, 0, 134, 0, 132, 0, 107, 0, 110, 0, 134, 0, 110, 0, 135, 0, 134, 0, 110, 0, 112, 0, 135, 0, 112, 0, 137, 0, 135, 0, 112, 0, 113, 0, 137, 0, 114, 0, 141, 0, 138, 0, 114, 0, 117, 0, 141, 0, 118, 0, 144, 0, 142, 0, 118, 0, 119, 0, 144, 0, 119, 0, 121, 0, 144, 0, 119, 0, 98, 0, 121, 0, 121, 0, 148, 0, 145, 0, 121, 0, 124, 0, 148, 0, 124, 0, 151, 0, 148, 0, 124, 0, 126, 0, 151, 0, 125, 0, 153, 0, 150, 0, 125, 0, 130, 0, 153, 0, 129, 0, 155, 0, 152, 0, 129, 0, 132, 0, 155, 0, 132, 0, 157, 0, 155, 0, 132, 0, 134, 0, 157, 0, 134, 0, 159, 0, 157, 0, 134, 0, 135, 0, 159, 0, 135, 0, 161, 0, 159, 0, 135, 0, 137, 0, 161, 0, 138, 0, 164, 0, 162, 0, 138, 0, 141, 0, 164, 0, 142, 0, 167, 0, 165, 0, 142, 0, 144, 0, 167, 0, 144, 0, 145, 0, 167, 0, 144, 0, 121, 0, 145, 0, 145, 0, 171, 0, 169, 0, 145, 0, 148, 0, 171, 0, 148, 0, 174, 0, 171, 0, 148, 0, 151, 0, 174, 0, 150, 0, 178, 0, 173, 0, 150, 0, 153, 0, 178, 0, 152, 0, 179, 0, 177, 0, 152, 0, 155, 0, 179, 0, 155, 0, 182, 0, 179, 0, 155, 0, 157, 0, 182, 0, 157, 0, 183, 0, 182, 0, 157, 0, 159, 0, 183, 0, 159, 0, 186, 0, 183, 0, 159, 0, 161, 0, 186, 0, 162, 0, 189, 0, 187, 0, 162, 0, 164, 0, 189, 0, 165, 0, 191, 0, 190, 0, 165, 0, 167, 0, 191, 0, 167, 0, 169, 0, 191, 0, 167, 0, 145, 0, 169, 0, 169, 0, 195, 0, 193, 0, 169, 0, 171, 0, 195, 0, 171, 0, 197, 0, 195, 0, 171, 0, 174, 0, 197, 0, 173, 0, 200, 0, 198, 0, 173, 0, 178, 0, 200, 0, 177, 0, 204, 0, 201, 0, 177, 0, 179, 0, 204, 0, 179, 0, 205, 0, 204, 0, 179, 0, 182, 0, 205, 0, 182, 0, 207, 0, 205, 0, 182, 0, 183, 0, 207, 0, 183, 0, 211, 0, 207, 0, 183, 0, 186, 0, 211, 0, 187, 0, 213, 0, 210, 0, 187, 0, 189, 0, 213, 0, 190, 0, 215, 0, 212, 0, 190, 0, 191, 0, 215, 0, 191, 0, 193, 0, 215, 0, 191, 0, 169, 0, 193, 0, 195, 0, 90, 2, 193, 0, 195, 0, 92, 2, 90, 2, 195, 0, 85, 2, 92, 2, 85, 2, 197, 0, 219, 0, 85, 2, 195, 0, 197, 0, 198, 0, 223, 0, 220, 0, 198, 0, 200, 0, 223, 0, 201, 0, 226, 0, 224, 0, 201, 0, 204, 0, 226, 0, 204, 0, 228, 0, 226, 0, 204, 0, 205, 0, 228, 0, 205, 0, 229, 0, 228, 0, 205, 0, 207, 0, 229, 0, 207, 0, 232, 0, 229, 0, 207, 0, 211, 0, 232, 0, 210, 0, 236, 0, 231, 0, 210, 0, 213, 0, 236, 0, 235, 0, 38, 2, 40, 2, 38, 2, 212, 0, 215, 0, 38, 2, 235, 0, 212, 0, 193, 0, 38, 2, 215, 0, 193, 0, 90, 2, 38, 2, 239, 0, 202, 0, 237, 0, 239, 0, 206, 0, 202, 0, 219, 0, 87, 2, 85, 2, 223, 0, 88, 2, 220, 0, 223, 0, 80, 2, 88, 2, 226, 0, 81, 2, 224, 0, 226, 0, 83, 2, 81, 2, 214, 0, 82, 0, 243, 0, 214, 0, 209, 0, 82, 0, 48, 2, 226, 0, 228, 0, 48, 2, 83, 2, 226, 0, 50, 2, 228, 0, 229, 0, 50, 2, 48, 2, 228, 0, 46, 2, 229, 0, 232, 0, 46, 2, 50, 2, 229, 0, 236, 0, 45, 2, 231, 0, 236, 0, 43, 2, 45, 2, 255, 0, 237, 0, 253, 0, 255, 0, 239, 0, 237, 0, 40, 2, 42, 2, 235, 0, 3, 1, 82, 0, 1, 1, 3, 1, 243, 0, 82, 0, 82, 0, 206, 0, 239, 0, 82, 0, 209, 0, 206, 0, 255, 0, 82, 0, 239, 0, 255, 0, 1, 1, 82, 0, 70, 2, 33, 1, 76, 2, 34, 1, 73, 2, 36, 1, 34, 1, 71, 2, 73, 2, 75, 2, 40, 1, 37, 1, 75, 2, 69, 2, 40, 1, 63, 2, 40, 1, 69, 2, 63, 2, 41, 1, 40, 1, 63, 2, 43, 1, 41, 1, 63, 2, 53, 2, 43, 1, 53, 2, 46, 1, 43, 1, 53, 2, 59, 2, 46, 1, 45, 1, 55, 2, 50, 1, 45, 1, 57, 2, 55, 2, 64, 2, 49, 1, 54, 2, 60, 2, 55, 1, 53, 1, 60, 2, 78, 2, 55, 1, 55, 1, 33, 1, 56, 1, 33, 1, 78, 2, 76, 2, 33, 1, 55, 1, 78, 2, 34, 1, 59, 1, 57, 1, 34, 1, 36, 1, 59, 1, 37, 1, 63, 1, 60, 1, 37, 1, 40, 1, 63, 1, 40, 1, 64, 1, 63, 1, 40, 1, 41, 1, 64, 1, 41, 1, 67, 1, 64, 1, 41, 1, 43, 1, 67, 1, 43, 1, 69, 1, 67, 1, 43, 1, 46, 1, 69, 1, 45, 1, 73, 1, 68, 1, 45, 1, 50, 1, 73, 1, 66, 2, 49, 1, 64, 2, 49, 1, 74, 1, 72, 1, 49, 1, 66, 2, 74, 1, 74, 1, 60, 2, 53, 1, 74, 1, 66, 2, 60, 2, 53, 1, 79, 1, 77, 1, 53, 1, 55, 1, 79, 1, 55, 1, 81, 1, 79, 1, 55, 1, 56, 1, 81, 1, 57, 1, 83, 1, 82, 1, 57, 1, 59, 1, 83, 1, 60, 1, 87, 1, 84, 1, 60, 1, 63, 1, 87, 1, 63, 1, 89, 1, 87, 1, 63, 1, 64, 1, 89, 1, 64, 1, 90, 1, 89, 1, 64, 1, 67, 1, 90, 1, 67, 1, 94, 1, 90, 1, 67, 1, 69, 1, 94, 1, 68, 1, 96, 1, 93, 1, 68, 1, 73, 1, 96, 1, 72, 1, 99, 1, 95, 1, 72, 1, 74, 1, 99, 1, 74, 1, 77, 1, 99, 1, 74, 1, 53, 1, 77, 1, 77, 1, 102, 1, 100, 1, 77, 1, 79, 1, 102, 1, 79, 1, 104, 1, 102, 1, 79, 1, 81, 1, 104, 1, 82, 1, 107, 1, 105, 1, 82, 1, 83, 1, 107, 1, 84, 1, 111, 1, 108, 1, 84, 1, 87, 1, 111, 1, 87, 1, 112, 1, 111, 1, 87, 1, 89, 1, 112, 1, 89, 1, 114, 1, 112, 1, 89, 1, 90, 1, 114, 1, 90, 1, 118, 1, 114, 1, 90, 1, 94, 1, 118, 1, 93, 1, 120, 1, 117, 1, 93, 1, 96, 1, 120, 1, 95, 1, 123, 1, 119, 1, 95, 1, 99, 1, 123, 1, 99, 1, 100, 1, 123, 1, 99, 1, 77, 1, 100, 1, 100, 1, 127, 1, 125, 1, 100, 1, 102, 1, 127, 1, 102, 1, 129, 1, 127, 1, 102, 1, 104, 1, 129, 1, 105, 1, 132, 1, 130, 1, 105, 1, 107, 1, 132, 1, 108, 1, 134, 1, 133, 1, 108, 1, 111, 1, 134, 1, 111, 1, 137, 1, 134, 1, 111, 1, 112, 1, 137, 1, 112, 1, 139, 1, 137, 1, 112, 1, 114, 1, 139, 1, 114, 1, 141, 1, 139, 1, 114, 1, 118, 1, 141, 1, 117, 1, 145, 1, 140, 1, 117, 1, 120, 1, 145, 1, 119, 1, 147, 1, 144, 1, 119, 1, 123, 1, 147, 1, 123, 1, 125, 1, 147, 1, 123, 1, 100, 1, 125, 1, 125, 1, 151, 1, 149, 1, 125, 1, 127, 1, 151, 1, 127, 1, 153, 1, 151, 1, 127, 1, 129, 1, 153, 1, 130, 1, 157, 1, 152, 1, 130, 1, 132, 1, 157, 1, 133, 1, 158, 1, 156, 1, 133, 1, 134, 1, 158, 1, 134, 1, 161, 1, 158, 1, 134, 1, 137, 1, 161, 1, 137, 1, 162, 1, 161, 1, 137, 1, 139, 1, 162, 1, 139, 1, 165, 1, 162, 1, 139, 1, 141, 1, 165, 1, 140, 1, 168, 1, 166, 1, 140, 1, 145, 1, 168, 1, 144, 1, 170, 1, 169, 1, 144, 1, 147, 1, 170, 1, 147, 1, 149, 1, 170, 1, 147, 1, 125, 1, 149, 1, 149, 1, 175, 1, 172, 1, 149, 1, 151, 1, 175, 1, 151, 1, 178, 1, 175, 1, 151, 1, 153, 1, 178, 1, 152, 1, 181, 1, 177, 1, 152, 1, 157, 1, 181, 1, 156, 1, 183, 1, 180, 1, 156, 1, 158, 1, 183, 1, 158, 1, 185, 1, 183, 1, 158, 1, 161, 1, 185, 1, 161, 1, 187, 1, 185, 1, 161, 1, 162, 1, 187, 1, 162, 1, 189, 1, 187, 1, 162, 1, 165, 1, 189, 1, 166, 1, 192, 1, 190, 1, 166, 1, 168, 1, 192, 1, 169, 1, 195, 1, 193, 1, 169, 1, 170, 1, 195, 1, 170, 1, 172, 1, 195, 1, 170, 1, 149, 1, 172, 1, 172, 1, 199, 1, 197, 1, 172, 1, 175, 1, 199, 1, 175, 1, 202, 1, 199, 1, 175, 1, 178, 1, 202, 1, 177, 1, 205, 1, 201, 1, 177, 1, 181, 1, 205, 1, 180, 1, 207, 1, 204, 1, 180, 1, 183, 1, 207, 1, 183, 1, 209, 1, 207, 1, 183, 1, 185, 1, 209, 1, 185, 1, 211, 1, 209, 1, 185, 1, 187, 1, 211, 1, 187, 1, 213, 1, 211, 1, 187, 1, 189, 1, 213, 1, 190, 1, 216, 1, 214, 1, 190, 1, 192, 1, 216, 1, 193, 1, 219, 1, 217, 1, 193, 1, 195, 1, 219, 1, 195, 1, 197, 1, 219, 1, 195, 1, 172, 1, 197, 1, 197, 1, 223, 1, 221, 1, 197, 1, 199, 1, 223, 1, 199, 1, 226, 1, 223, 1, 199, 1, 202, 1, 226, 1, 201, 1, 229, 1, 225, 1, 201, 1, 205, 1, 229, 1, 204, 1, 231, 1, 228, 1, 204, 1, 207, 1, 231, 1, 207, 1, 233, 1, 231, 1, 207, 1, 209, 1, 233, 1, 209, 1, 235, 1, 233, 1, 209, 1, 211, 1, 235, 1, 211, 1, 237, 1, 235, 1, 211, 1, 213, 1, 237, 1, 214, 1, 240, 1, 238, 1, 214, 1, 216, 1, 240, 1, 217, 1, 243, 1, 241, 1, 217, 1, 219, 1, 243, 1, 219, 1, 221, 1, 243, 1, 219, 1, 197, 1, 221, 1, 221, 1, 3, 0, 0, 0, 221, 1, 223, 1, 3, 0, 223, 1, 5, 0, 3, 0, 223, 1, 226, 1, 5, 0, 225, 1, 8, 0, 4, 0, 225, 1, 229, 1, 8, 0, 228, 1, 11, 0, 7, 0, 228, 1, 231, 1, 11, 0, 231, 1, 13, 0, 11, 0, 231, 1, 233, 1, 13, 0, 233, 1, 15, 0, 13, 0, 233, 1, 235, 1, 15, 0, 235, 1, 17, 0, 15, 0, 235, 1, 237, 1, 17, 0, 238, 1, 20, 0, 18, 0, 238, 1, 240, 1, 20, 0, 241, 1, 23, 0, 21, 0, 241, 1, 243, 1, 23, 0, 243, 1, 0, 0, 23, 0, 243, 1, 221, 1, 0, 0, 35, 2, 49, 0, 19, 0, 35, 2, 46, 0, 49, 0, 38, 0, 86, 0, 46, 0, 38, 0, 79, 0, 86, 0, 46, 0, 91, 0, 49, 0, 46, 0, 86, 0, 91, 0, 54, 0, 99, 0, 58, 0, 54, 0, 96, 0, 99, 0, 78, 0, 123, 0, 79, 0, 78, 0, 120, 0, 123, 0, 86, 0, 133, 0, 91, 0, 86, 0, 128, 0, 133, 0, 91, 0, 139, 0, 96, 0, 91, 0, 133, 0, 139, 0, 139, 0, 181, 0, 143, 0, 139, 0, 176, 0, 181, 0, 176, 0, 222, 0, 181, 0, 176, 0, 217, 0, 222, 0, 217, 0, 246, 0, 222, 0, 217, 0, 245, 0, 246, 0, 255, 0, 19, 1, 1, 1, 255, 0, 17, 1, 19, 1, 1, 1, 21, 1, 3, 1, 1, 1, 19, 1, 21, 1, 15, 1, 38, 1, 17, 1, 15, 1, 32, 1, 38, 1, 19, 1, 47, 1, 21, 1, 19, 1, 42, 1, 47, 1, 198, 1, 215, 1, 200, 1, 198, 1, 212, 1, 215, 1, 200, 1, 218, 1, 203, 1, 200, 1, 215, 1, 218, 1, 212, 1, 232, 1, 215, 1, 212, 1, 230, 1, 232, 1, 215, 1, 234, 1, 218, 1, 215, 1, 232, 1, 234, 1, 232, 1, 246, 1, 234, 1, 232, 1, 245, 1, 246, 1, 227, 1, 244, 1, 230, 1, 227, 1, 242, 1, 244, 1, 242, 1, 250, 1, 244, 1, 242, 1, 249, 1, 250, 1, 245, 1, 252, 1, 246, 1, 245, 1, 251, 1, 252, 1, 249, 1, 0, 2, 250, 1, 249, 1, 255, 1, 0, 2, 250, 1, 1, 2, 251, 1, 250, 1, 0, 2, 1, 2, 1, 2, 8, 2, 2, 2, 1, 2, 7, 2, 8, 2, 255, 1, 6, 2, 0, 2, 255, 1, 5, 2, 6, 2, 5, 2, 12, 2, 6, 2, 5, 2, 11, 2, 12, 2, 6, 2, 13, 2, 7, 2, 6, 2, 12, 2, 13, 2, 7, 2, 14, 2, 8, 2, 7, 2, 13, 2, 14, 2, 13, 2, 20, 2, 14, 2, 13, 2, 19, 2, 20, 2, 11, 2, 18, 2, 12, 2, 11, 2, 17, 2, 18, 2, 12, 2, 19, 2, 13, 2, 12, 2, 18, 2, 19, 2, 18, 2, 25, 2, 19, 2, 18, 2, 24, 2, 25, 2, 20, 2, 27, 2, 21, 2, 20, 2, 26, 2, 27, 2, 17, 2, 24, 2, 18, 2, 17, 2, 23, 2, 24, 2, 23, 2, 30, 2, 24, 2, 23, 2, 29, 2, 30, 2, 27, 2, 34, 2, 28, 2, 27, 2, 33, 2, 34, 2, 24, 2, 31, 2, 25, 2, 24, 2, 30, 2, 31, 2, 33, 2, 37, 2, 34, 2, 33, 2, 36, 2, 37, 2, 160, 2, 133, 2, 120, 2, 133, 2, 97, 2, 99, 2, 97, 2, 183, 2, 95, 2, 183, 2, 143, 2, 145, 2, 143, 2, 185, 2, 189, 2, 185, 2, 115, 2, 117, 2, 115, 2, 170, 2, 174, 2, 170, 2, 152, 2, 168, 2, 152, 2, 102, 2, 134, 2, 102, 2, 104, 2, 100, 2, 104, 2, 146, 2, 176, 2, 146, 2, 107, 2, 130, 2, 146, 2, 109, 2, 107, 2, 172, 2, 133, 2, 160, 2, 128, 2, 133, 2, 172, 2, 104, 2, 109, 2, 146, 2, 104, 2, 123, 2, 109, 2, 128, 2, 97, 2, 133, 2, 126, 2, 97, 2, 128, 2, 104, 2, 125, 2, 123, 2, 104, 2, 137, 2, 125, 2, 126, 2, 183, 2, 97, 2, 164, 2, 183, 2, 126, 2, 102, 2, 137, 2, 104, 2, 102, 2, 139, 2, 137, 2, 112, 2, 183, 2, 164, 2, 110, 2, 183, 2, 112, 2, 152, 2, 139, 2, 102, 2, 152, 2, 141, 2, 139, 2, 110, 2, 143, 2, 183, 2, 156, 2, 143, 2, 110, 2, 152, 2, 159, 2, 141, 2, 152, 2, 149, 2, 159, 2, 156, 2, 185, 2, 143, 2, 154, 2, 185, 2, 156, 2, 170, 2, 149, 2, 152, 2, 170, 2, 151, 2, 149, 2, 180, 2, 185, 2, 154, 2, 186, 2, 185, 2, 180, 2, 115, 2, 151, 2, 170, 2, 115, 2, 166, 2, 151, 2, 186, 2, 115, 2, 185, 2, 115, 2, 178, 2, 166, 2, 115, 2, 186, 2, 178, 2, 163, 2, 130, 2, 107, 2, 130, 2, 120, 2, 118, 2, 120, 2, 163, 2, 160, 2, 163, 2, 120, 2, 130, 2, 186, 1, 132, 2, 164, 1, 186, 1, 121, 2, 132, 2, 23, 2, 173, 2, 29, 2, 23, 2, 129, 2, 173, 2, 202, 0, 136, 2, 237, 0, 202, 0, 124, 2, 136, 2, 4, 1, 114, 2, 250, 0, 4, 1, 116, 2, 114, 2, 140, 0, 101, 2, 115, 0, 140, 0, 103, 2, 101, 2, 17, 2, 129, 2, 23, 2, 17, 2, 127, 2, 129, 2, 101, 1, 182, 2, 76, 1, 101, 1, 94, 2, 182, 2, 210, 1, 181, 2, 227, 1, 210, 1, 187, 2, 181, 2, 15, 1, 158, 2, 32, 1, 15, 1, 140, 2, 158, 2, 143, 1, 96, 2, 121, 1, 143, 1, 98, 2, 96, 2, 32, 1, 148, 2, 70, 1, 32, 1, 158, 2, 148, 2, 255, 1, 113, 2, 5, 2, 255, 1, 111, 2, 113, 2, 31, 1, 188, 2, 23, 1, 31, 1, 142, 2, 188, 2, 23, 1, 184, 2, 12, 1, 23, 1, 188, 2, 184, 2, 29, 2, 161, 2, 10, 0, 29, 2, 173, 2, 161, 2, 227, 1, 155, 2, 242, 1, 227, 1, 181, 2, 155, 2, 253, 0, 140, 2, 15, 1, 253, 0, 138, 2, 140, 2, 241, 0, 171, 2, 227, 0, 241, 0, 175, 2, 171, 2, 250, 0, 175, 2, 241, 0, 250, 0, 114, 2, 175, 2, 35, 0, 106, 2, 78, 0, 35, 0, 162, 2, 106, 2, 203, 0, 153, 2, 185, 0, 203, 0, 169, 2, 153, 2, 160, 0, 103, 2, 140, 0, 160, 0, 135, 2, 103, 2, 150, 1, 179, 2, 191, 1, 150, 1, 167, 2, 179, 2, 11, 2, 127, 2, 17, 2, 11, 2, 165, 2, 127, 2, 71, 0, 147, 2, 50, 0, 71, 0, 177, 2, 147, 2, 115, 0, 105, 2, 97, 0, 115, 0, 101, 2, 105, 2, 164, 1, 98, 2, 143, 1, 164, 1, 132, 2, 98, 2, 50, 0, 131, 2, 26, 0, 50, 0, 147, 2, 131, 2, 158, 0, 124, 2, 202, 0, 158, 0, 122, 2, 124, 2, 26, 0, 119, 2, 6, 0, 26, 0, 131, 2, 119, 2, 6, 0, 121, 2, 186, 1, 6, 0, 119, 2, 121, 2, 78, 0, 108, 2, 120, 0, 78, 0, 106, 2, 108, 2, 227, 0, 169, 2, 203, 0, 227, 0, 171, 2, 169, 2, 10, 0, 162, 2, 35, 0, 10, 0, 161, 2, 162, 2, 121, 1, 94, 2, 101, 1, 121, 1, 96, 2, 94, 2, 120, 0, 122, 2, 158, 0, 120, 0, 108, 2, 122, 2, 110, 1, 167, 2, 150, 1, 110, 1, 150, 2, 167, 2, 76, 1, 144, 2, 58, 1, 76, 1, 182, 2, 144, 2, 191, 1, 187, 2, 210, 1, 191, 1, 179, 2, 187, 2, 12, 1, 116, 2, 4, 1, 12, 1, 184, 2, 116, 2, 97, 0, 177, 2, 71, 0, 97, 0, 105, 2, 177, 2, 70, 1, 150, 2, 110, 1, 70, 1, 148, 2, 150, 2, 249, 1, 111, 2, 255, 1, 249, 1, 157, 2, 111, 2, 5, 2, 165, 2, 11, 2, 5, 2, 113, 2, 165, 2, 242, 1, 157, 2, 249, 1, 242, 1, 155, 2, 157, 2, 237, 0, 138, 2, 253, 0, 237, 0, 136, 2, 138, 2 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.06, -8.3819e-07, -0.06, 0.152087, 0.0689103, 0.12), +"attribute_data": PackedByteArray(166, 197, 43, 62, 128, 133, 228, 62, 74, 111, 142, 62, 232, 255, 103, 63, 168, 135, 139, 62, 82, 168, 93, 63, 173, 197, 43, 62, 136, 178, 236, 62, 182, 197, 43, 62, 94, 42, 242, 62, 182, 197, 43, 62, 94, 42, 242, 62, 100, 197, 173, 62, 154, 13, 113, 63, 38, 117, 246, 62, 18, 170, 220, 62, 186, 197, 43, 62, 118, 87, 244, 62, 46, 164, 163, 62, 230, 42, 101, 63, 155, 96, 108, 63, 206, 27, 46, 63, 39, 117, 246, 62, 176, 206, 225, 62, 49, 123, 155, 62, 162, 147, 91, 63, 39, 117, 246, 62, 232, 38, 234, 62, 4, 9, 98, 63, 54, 132, 50, 63, 39, 117, 246, 62, 30, 127, 242, 62, 11, 160, 148, 62, 186, 96, 83, 63, 39, 117, 246, 62, 188, 163, 247, 62, 182, 197, 43, 62, 134, 179, 212, 62, 192, 83, 82, 63, 194, 51, 57, 63, 178, 197, 43, 62, 160, 224, 214, 62, 178, 197, 43, 62, 160, 224, 214, 62, 31, 160, 142, 62, 160, 4, 76, 63, 171, 197, 43, 62, 118, 88, 220, 62, 195, 40, 137, 62, 126, 27, 69, 63, 182, 130, 23, 62, 126, 133, 228, 62, 24, 132, 198, 62, 254, 208, 105, 63, 202, 165, 23, 62, 248, 171, 236, 62, 75, 154, 182, 62, 20, 177, 95, 63, 249, 248, 23, 62, 160, 38, 242, 62, 249, 248, 23, 62, 160, 38, 242, 62, 212, 199, 169, 62, 254, 129, 87, 63, 221, 244, 237, 62, 22, 147, 220, 62, 16, 86, 24, 62, 246, 102, 244, 62, 227, 2, 238, 62, 132, 203, 225, 62, 241, 199, 111, 63, 178, 89, 58, 63, 106, 1, 238, 62, 232, 38, 234, 62, 202, 238, 158, 62, 23, 125, 80, 63, 111, 118, 100, 63, 77, 231, 59, 63, 227, 2, 238, 62, 74, 130, 242, 62, 37, 87, 149, 62, 164, 41, 74, 63, 222, 244, 237, 62, 184, 186, 247, 62, 13, 86, 24, 62, 6, 164, 212, 62, 243, 125, 140, 62, 177, 50, 68, 63, 246, 248, 23, 62, 92, 228, 214, 62, 246, 248, 23, 62, 92, 228, 214, 62, 235, 117, 91, 63, 52, 20, 61, 63, 201, 165, 23, 62, 6, 95, 220, 62, 224, 172, 3, 62, 126, 133, 228, 62, 244, 167, 83, 63, 176, 47, 62, 63, 160, 142, 218, 62, 32, 165, 95, 63, 180, 222, 3, 62, 8, 163, 236, 62, 166, 93, 4, 62, 14, 34, 242, 62, 166, 93, 4, 62, 14, 34, 242, 62, 13, 204, 76, 63, 134, 17, 63, 63, 233, 6, 198, 62, 190, 248, 87, 63, 52, 134, 229, 62, 164, 104, 220, 62, 4, 1, 5, 62, 88, 117, 244, 62, 46, 91, 70, 63, 173, 230, 63, 63, 203, 163, 229, 62, 158, 179, 225, 62, 3, 118, 181, 62, 234, 189, 81, 63, 206, 163, 229, 62, 232, 38, 234, 62, 203, 163, 229, 62, 50, 154, 242, 62, 203, 97, 167, 62, 111, 95, 76, 63, 54, 134, 229, 62, 42, 229, 247, 62, 1, 1, 5, 62, 166, 149, 212, 62, 115, 220, 154, 62, 91, 129, 71, 63, 163, 93, 4, 62, 242, 232, 214, 62, 163, 93, 4, 62, 242, 232, 214, 62, 77, 61, 143, 62, 164, 227, 66, 63, 179, 222, 3, 62, 244, 103, 220, 62, 249, 142, 232, 62, 132, 73, 83, 63, 170, 55, 225, 61, 126, 133, 228, 62, 47, 230, 208, 62, 42, 146, 78, 63, 254, 169, 225, 61, 224, 147, 236, 62, 219, 192, 189, 62, 176, 174, 74, 63, 32, 205, 226, 61, 130, 19, 242, 62, 32, 205, 226, 61, 130, 19, 242, 62, 51, 209, 111, 63, 112, 22, 71, 63, 152, 107, 100, 63, 158, 143, 69, 63, 176, 76, 221, 62, 58, 49, 220, 62, 166, 82, 228, 61, 96, 127, 244, 62, 180, 87, 74, 63, 191, 20, 90, 63, 154, 111, 221, 62, 236, 145, 225, 62, 70, 105, 173, 62, 45, 81, 71, 63, 243, 110, 221, 62, 232, 38, 234, 62, 214, 87, 91, 63, 146, 87, 68, 63, 155, 111, 221, 62, 228, 187, 242, 62, 54, 209, 158, 62, 140, 58, 68, 63, 177, 76, 221, 62, 148, 28, 248, 62, 159, 82, 228, 61, 160, 139, 212, 62, 214, 154, 83, 63, 72, 85, 67, 63, 26, 205, 226, 61, 126, 247, 214, 62, 26, 205, 226, 61, 126, 247, 214, 62, 80, 55, 145, 62, 64, 69, 65, 63, 249, 169, 225, 61, 34, 119, 220, 62, 51, 194, 76, 63, 237, 107, 66, 63, 123, 196, 239, 62, 231, 152, 69, 63, 87, 236, 188, 61, 128, 133, 228, 62, 22, 88, 70, 63, 113, 142, 65, 63, 74, 99, 189, 61, 164, 132, 236, 62, 52, 150, 214, 62, 174, 51, 68, 63, 124, 124, 190, 61, 98, 5, 242, 62, 124, 124, 190, 61, 98, 5, 242, 62, 238, 34, 194, 62, 192, 203, 66, 63, 45, 86, 213, 62, 222, 244, 219, 62, 161, 227, 191, 61, 86, 141, 244, 62, 181, 113, 213, 62, 252, 109, 225, 62, 133, 161, 176, 62, 5, 172, 65, 63, 52, 242, 160, 62, 33, 142, 64, 63, 127, 109, 213, 62, 234, 38, 234, 62, 255, 73, 146, 62, 177, 115, 63, 63, 181, 113, 213, 62, 212, 223, 242, 62, 46, 86, 213, 62, 240, 88, 248, 62, 152, 227, 191, 61, 168, 125, 212, 62, 200, 176, 239, 62, 182, 246, 55, 63, 133, 162, 214, 62, 140, 104, 57, 63, 117, 124, 190, 61, 156, 5, 215, 62, 117, 124, 190, 61, 156, 5, 215, 62, 69, 99, 189, 61, 92, 134, 220, 62, 31, 126, 108, 63, 116, 100, 83, 63, 253, 47, 154, 61, 128, 133, 228, 62, 32, 110, 194, 62, 87, 190, 58, 63, 59, 203, 97, 63, 56, 216, 78, 63, 117, 157, 154, 61, 160, 126, 236, 62, 195, 131, 155, 61, 184, 6, 242, 62, 195, 131, 155, 61, 184, 6, 242, 62, 247, 196, 176, 62, 24, 199, 59, 63, 148, 88, 89, 63, 100, 69, 75, 63, 27, 151, 205, 62, 36, 193, 219, 62, 81, 116, 156, 61, 76, 171, 244, 62, 102, 27, 161, 62, 146, 186, 60, 63, 244, 163, 205, 62, 26, 83, 225, 62, 75, 50, 82, 63, 107, 66, 72, 63, 117, 157, 205, 62, 234, 38, 234, 62, 245, 163, 205, 62, 182, 250, 242, 62, 5, 99, 146, 62, 132, 142, 61, 63, 28, 151, 205, 62, 172, 140, 248, 62, 74, 116, 156, 61, 180, 95, 212, 62, 128, 220, 75, 63, 98, 164, 69, 63, 101, 167, 233, 62, 174, 128, 42, 63, 189, 131, 155, 61, 70, 4, 215, 62, 189, 131, 155, 61, 70, 4, 215, 62, 92, 231, 69, 63, 23, 38, 67, 63, 113, 157, 154, 61, 96, 140, 220, 62, 65, 103, 112, 61, 128, 133, 228, 62, 138, 76, 209, 62, 178, 240, 46, 63, 171, 102, 190, 62, 34, 224, 50, 63, 64, 216, 112, 61, 94, 134, 236, 62, 171, 225, 173, 62, 144, 19, 54, 63, 0, 191, 113, 61, 192, 30, 242, 62, 0, 191, 113, 61, 192, 30, 242, 62, 72, 234, 197, 62, 240, 169, 219, 62, 145, 76, 114, 61, 252, 230, 244, 62, 227, 74, 159, 62, 120, 3, 57, 63, 207, 238, 197, 62, 126, 84, 225, 62, 211, 128, 145, 62, 168, 182, 59, 63, 7, 243, 197, 62, 234, 38, 234, 62, 71, 228, 101, 63, 11, 60, 94, 63, 208, 238, 197, 62, 84, 249, 242, 62, 7, 11, 220, 62, 77, 227, 29, 63, 74, 234, 197, 62, 226, 163, 248, 62, 130, 76, 114, 61, 6, 36, 212, 62, 184, 251, 92, 63, 75, 48, 87, 63, 244, 190, 113, 61, 66, 236, 214, 62, 244, 190, 113, 61, 66, 236, 214, 62, 147, 39, 199, 62, 227, 119, 37, 63, 58, 216, 112, 61, 164, 132, 220, 62, 28, 136, 182, 62, 162, 170, 43, 63, 92, 222, 42, 61, 130, 133, 228, 62, 104, 201, 85, 63, 155, 136, 81, 63, 161, 106, 43, 61, 228, 200, 236, 62, 128, 169, 79, 63, 112, 184, 76, 63, 242, 11, 44, 61, 130, 113, 242, 62, 242, 11, 44, 61, 130, 113, 242, 62, 48, 85, 168, 62, 108, 240, 48, 63, 84, 43, 74, 63, 135, 133, 72, 63, 133, 62, 190, 62, 218, 205, 219, 62, 6, 149, 43, 61, 22, 32, 245, 62, 254, 60, 190, 62, 10, 93, 225, 62, 252, 163, 155, 62, 242, 168, 53, 63, 22, 17, 69, 63, 235, 145, 68, 63, 124, 77, 190, 62, 234, 38, 234, 62, 255, 60, 190, 62, 200, 240, 242, 62, 207, 178, 143, 62, 9, 12, 58, 63, 215, 86, 200, 62, 54, 111, 19, 63, 135, 62, 190, 62, 248, 127, 248, 62, 249, 148, 43, 61, 238, 234, 211, 62, 124, 39, 184, 62, 34, 137, 29, 63, 230, 11, 44, 61, 128, 153, 214, 62, 230, 11, 44, 61, 128, 153, 214, 62, 153, 106, 43, 61, 32, 66, 220, 62, 45, 61, 171, 62, 52, 182, 37, 63, 95, 184, 191, 60, 130, 133, 228, 62, 225, 61, 160, 62, 240, 171, 44, 63, 183, 152, 195, 60, 52, 83, 237, 62, 58, 97, 150, 62, 40, 226, 50, 63, 82, 189, 200, 60, 100, 40, 243, 62, 82, 189, 200, 60, 100, 40, 243, 62, 245, 23, 141, 62, 89, 171, 56, 63, 190, 78, 200, 60, 60, 204, 245, 62, 148, 128, 182, 62, 194, 21, 220, 62, 226, 203, 92, 63, 123, 228, 102, 63, 44, 195, 175, 62, 158, 231, 11, 63, 103, 123, 182, 62, 154, 136, 225, 62, 248, 145, 182, 62, 236, 38, 234, 62, 211, 42, 86, 63, 127, 252, 93, 63, 105, 123, 182, 62, 58, 197, 242, 62, 251, 108, 165, 62, 48, 207, 23, 63, 236, 176, 80, 63, 21, 172, 86, 63, 161, 78, 200, 60, 200, 62, 211, 62, 150, 128, 182, 62, 18, 56, 248, 62, 53, 189, 200, 60, 160, 226, 213, 62, 53, 189, 200, 60, 160, 226, 213, 62, 10, 4, 76, 63, 185, 97, 80, 63, 162, 152, 195, 60, 206, 183, 219, 62, 67, 50, 157, 62, 46, 106, 33, 63, 200, 201, 71, 63, 199, 219, 74, 63, 65, 45, 150, 62, 68, 150, 41, 63, 91, 211, 193, 59, 52, 205, 244, 62, 91, 211, 193, 59, 52, 205, 244, 62, 209, 217, 143, 62, 136, 224, 48, 63, 82, 228, 67, 63, 19, 185, 69, 63, 126, 5, 209, 59, 108, 99, 247, 62, 249, 137, 174, 62, 76, 128, 220, 62, 232, 220, 137, 62, 154, 172, 55, 63, 224, 159, 174, 62, 250, 211, 225, 62, 239, 9, 148, 62, 4, 219, 7, 63, 65, 193, 174, 62, 236, 38, 234, 62, 225, 159, 174, 62, 222, 121, 242, 62, 166, 75, 144, 62, 148, 184, 20, 63, 182, 4, 209, 59, 152, 167, 209, 62, 251, 137, 174, 62, 136, 205, 247, 62, 219, 91, 141, 62, 140, 22, 31, 63, 186, 211, 138, 62, 216, 232, 39, 63, 180, 210, 193, 59, 208, 61, 212, 62, 180, 210, 193, 59, 208, 61, 212, 62, 173, 229, 81, 63, 77, 6, 109, 63, 75, 126, 136, 62, 89, 200, 47, 63, 184, 187, 77, 63, 129, 162, 98, 63, 128, 57, 134, 62, 98, 33, 55, 63, 138, 66, 110, 62, 14, 148, 7, 63, 114, 127, 116, 62, 190, 127, 20, 63, 222, 128, 71, 63, 137, 249, 82, 63, 176, 166, 121, 62, 103, 231, 30, 63, 196, 225, 68, 63, 190, 122, 76, 63, 73, 118, 66, 63, 139, 135, 70, 63, 228, 242, 125, 62, 110, 195, 39, 63, 52, 207, 128, 62, 212, 173, 47, 63, 14, 109, 130, 62, 116, 19, 55, 63, 177, 33, 54, 62, 106, 23, 11, 63, 102, 168, 73, 62, 233, 41, 23, 63, 152, 126, 89, 62, 158, 225, 32, 63, 200, 188, 69, 63, 131, 23, 112, 63, 141, 224, 102, 62, 3, 42, 41, 63, 44, 107, 68, 63, 192, 222, 100, 63, 86, 167, 114, 62, 151, 147, 48, 63, 75, 104, 67, 63, 180, 241, 91, 63, 239, 115, 125, 62, 5, 132, 55, 63, 235, 116, 66, 63, 202, 55, 84, 63, 198, 154, 3, 62, 159, 37, 18, 63, 70, 14, 35, 62, 11, 136, 28, 63, 104, 171, 65, 63, 178, 85, 77, 63, 178, 123, 60, 62, 241, 226, 36, 63, 158, 224, 64, 63, 210, 243, 70, 63, 115, 9, 82, 62, 174, 4, 44, 63, 80, 31, 101, 62, 101, 106, 50, 63, 64, 194, 118, 62, 148, 107, 56, 63, 96, 92, 180, 61, 131, 64, 28, 63, 200, 94, 3, 62, 224, 58, 36, 63, 34, 161, 36, 62, 203, 164, 42, 63, 187, 57, 57, 63, 216, 224, 111, 63, 235, 222, 64, 62, 124, 33, 48, 63, 217, 230, 58, 63, 187, 172, 100, 63, 70, 245, 89, 62, 54, 18, 53, 63, 254, 57, 60, 63, 190, 187, 91, 63, 172, 58, 113, 62, 107, 186, 57, 63, 0, 81, 61, 63, 182, 25, 84, 63, 149, 88, 62, 63, 248, 79, 77, 63, 151, 222, 114, 61, 107, 180, 40, 63, 102, 60, 63, 63, 50, 243, 70, 63, 150, 149, 217, 61, 232, 185, 45, 63, 116, 149, 19, 62, 116, 193, 49, 63, 212, 144, 52, 62, 9, 56, 53, 63, 99, 238, 81, 62, 125, 92, 56, 63, 114, 62, 109, 62, 172, 89, 59, 63, 36, 238, 131, 62, 19, 81, 62, 63, 94, 246, 52, 61, 175, 164, 54, 63, 39, 49, 45, 63, 145, 113, 108, 63, 0, 177, 168, 62, 66, 184, 244, 62, 0, 177, 168, 62, 66, 184, 244, 62, 38, 193, 193, 61, 12, 93, 56, 63, 220, 119, 168, 62, 240, 76, 247, 62, 62, 48, 31, 63, 20, 128, 220, 62, 254, 205, 49, 63, 243, 246, 97, 63, 196, 133, 10, 62, 67, 187, 57, 63, 80, 37, 31, 63, 254, 211, 225, 62, 153, 20, 31, 63, 228, 38, 234, 62, 147, 105, 53, 63, 68, 175, 89, 63, 80, 37, 31, 63, 204, 121, 242, 62, 161, 248, 45, 62, 167, 238, 58, 63, 219, 119, 168, 62, 6, 190, 209, 62, 61, 48, 31, 63, 182, 205, 247, 62, 112, 111, 56, 63, 96, 168, 82, 63, 86, 152, 77, 62, 103, 15, 60, 63, 254, 176, 168, 62, 182, 82, 212, 62, 254, 176, 168, 62, 182, 82, 212, 62, 204, 37, 59, 63, 224, 109, 76, 63, 175, 19, 107, 62, 237, 44, 61, 63, 67, 188, 159, 62, 124, 133, 228, 62, 172, 166, 61, 63, 176, 133, 70, 63, 239, 129, 159, 62, 62, 76, 237, 62, 226, 52, 159, 62, 164, 30, 243, 62, 226, 52, 159, 62, 164, 30, 243, 62, 27, 59, 51, 61, 216, 26, 69, 63, 220, 61, 159, 62, 198, 192, 245, 62, 225, 52, 27, 63, 166, 21, 220, 62, 66, 226, 192, 61, 73, 104, 67, 63, 96, 17, 10, 62, 97, 5, 66, 63, 124, 55, 27, 63, 144, 136, 225, 62, 52, 44, 27, 63, 228, 38, 234, 62, 110, 138, 45, 62, 160, 224, 64, 63, 130, 63, 77, 62, 232, 233, 63, 63, 124, 55, 27, 63, 58, 197, 242, 62, 219, 61, 159, 62, 50, 74, 211, 62, 225, 52, 27, 63, 36, 56, 248, 62, 52, 159, 34, 63, 190, 211, 101, 63, 127, 224, 106, 62, 47, 20, 63, 63, 226, 52, 159, 62, 86, 236, 213, 62, 226, 52, 159, 62, 86, 236, 213, 62, 238, 129, 159, 62, 184, 190, 219, 62, 62, 172, 41, 63, 93, 34, 93, 63, 232, 192, 109, 61, 106, 23, 83, 63, 203, 99, 150, 62, 124, 133, 228, 62, 65, 73, 47, 63, 20, 31, 86, 63, 159, 83, 150, 62, 186, 197, 236, 62, 104, 4, 215, 61, 153, 24, 78, 63, 181, 65, 150, 62, 186, 108, 242, 62, 181, 65, 150, 62, 186, 108, 242, 62, 210, 81, 150, 62, 192, 26, 245, 62, 230, 85, 23, 63, 202, 205, 219, 62, 59, 11, 52, 63, 178, 31, 80, 63, 24, 63, 18, 62, 145, 13, 74, 63, 172, 86, 23, 63, 2, 93, 225, 62, 85, 73, 56, 63, 148, 194, 74, 63, 111, 78, 23, 63, 228, 38, 234, 62, 172, 86, 23, 63, 200, 240, 242, 62, 51, 77, 51, 62, 53, 165, 70, 63, 200, 233, 80, 62, 62, 168, 67, 63, 210, 81, 150, 62, 56, 240, 211, 62, 230, 85, 23, 63, 0, 128, 248, 62, 180, 65, 150, 62, 64, 158, 214, 62, 180, 65, 150, 62, 64, 158, 214, 62, 39, 59, 60, 63, 250, 178, 69, 63, 92, 168, 108, 62, 17, 238, 64, 63, 158, 83, 150, 62, 62, 69, 220, 62, 232, 181, 141, 62, 124, 133, 228, 62, 17, 56, 176, 61, 132, 163, 95, 63, 78, 168, 141, 62, 216, 132, 236, 62, 235, 77, 1, 62, 115, 177, 87, 63, 120, 140, 141, 62, 136, 28, 242, 62, 120, 140, 141, 62, 136, 28, 242, 62, 234, 124, 34, 62, 71, 70, 81, 63, 101, 123, 141, 62, 150, 228, 244, 62, 1, 128, 19, 63, 232, 169, 219, 62, 99, 218, 62, 62, 229, 214, 75, 63, 224, 46, 26, 63, 182, 213, 92, 63, 193, 125, 19, 63, 120, 84, 225, 62, 165, 123, 19, 63, 228, 38, 234, 62, 50, 86, 88, 62, 165, 8, 71, 63, 193, 125, 19, 63, 82, 249, 242, 62, 226, 75, 112, 62, 34, 154, 66, 63, 71, 31, 35, 63, 56, 94, 86, 63, 100, 123, 141, 62, 96, 38, 212, 62, 2, 128, 19, 63, 228, 163, 248, 62, 120, 140, 141, 62, 110, 238, 214, 62, 120, 140, 141, 62, 110, 238, 214, 62, 103, 212, 0, 62, 236, 225, 105, 63, 111, 74, 42, 63, 53, 21, 81, 63, 79, 168, 141, 62, 30, 134, 220, 62, 182, 80, 32, 62, 202, 137, 95, 63, 47, 56, 133, 62, 124, 133, 228, 62, 52, 114, 48, 63, 34, 132, 76, 63, 31, 29, 133, 62, 220, 125, 236, 62, 80, 170, 57, 62, 122, 48, 87, 63, 10, 228, 132, 62, 156, 5, 242, 62, 10, 228, 132, 62, 156, 5, 242, 62, 205, 242, 53, 63, 78, 105, 72, 63, 42, 168, 132, 62, 26, 170, 244, 62, 153, 169, 15, 63, 32, 193, 219, 62, 46, 163, 15, 63, 22, 83, 225, 62, 50, 101, 79, 62, 114, 26, 80, 63, 99, 18, 59, 63, 113, 137, 68, 63, 109, 166, 15, 63, 228, 38, 234, 62, 143, 1, 99, 62, 230, 207, 73, 63, 46, 163, 15, 63, 180, 250, 242, 62, 43, 168, 132, 62, 220, 96, 212, 62, 153, 169, 15, 63, 170, 140, 248, 62, 10, 139, 117, 62, 27, 251, 67, 63, 69, 198, 50, 62, 57, 30, 113, 63, 10, 228, 132, 62, 92, 5, 215, 62, 10, 228, 132, 62, 92, 5, 215, 62, 250, 99, 70, 62, 190, 23, 101, 63, 30, 29, 133, 62, 30, 141, 220, 62, 70, 44, 86, 62, 104, 100, 91, 63, 166, 19, 121, 62, 124, 133, 228, 62, 213, 109, 20, 63, 42, 35, 82, 63, 127, 216, 120, 62, 62, 132, 236, 62, 96, 76, 120, 62, 206, 4, 242, 62, 96, 76, 120, 62, 206, 4, 242, 62, 225, 200, 99, 62, 49, 37, 83, 63, 157, 47, 112, 62, 106, 205, 75, 63, 16, 202, 11, 63, 220, 244, 219, 62, 15, 153, 119, 62, 182, 140, 244, 62, 77, 188, 11, 63, 248, 109, 225, 62, 66, 148, 30, 63, 117, 52, 78, 63, 156, 9, 124, 62, 233, 248, 68, 63, 104, 190, 11, 63, 228, 38, 234, 62, 77, 188, 11, 63, 210, 223, 242, 62, 207, 187, 38, 63, 225, 237, 74, 63, 96, 122, 106, 62, 98, 217, 116, 63, 16, 202, 11, 63, 238, 88, 248, 62, 14, 153, 119, 62, 66, 126, 212, 62, 244, 228, 45, 63, 112, 22, 72, 63, 96, 76, 120, 62, 42, 6, 215, 62, 96, 76, 120, 62, 42, 6, 215, 62, 127, 216, 120, 62, 186, 134, 220, 62, 246, 227, 112, 62, 59, 250, 103, 63, 201, 238, 102, 62, 124, 133, 228, 62, 107, 75, 52, 63, 78, 137, 69, 63, 207, 9, 118, 62, 221, 152, 93, 63, 201, 181, 102, 62, 168, 147, 236, 62, 123, 64, 58, 63, 54, 29, 67, 63, 117, 36, 102, 62, 46, 19, 242, 62, 117, 36, 102, 62, 46, 19, 242, 62, 54, 157, 122, 62, 62, 194, 84, 63, 207, 206, 7, 63, 56, 49, 220, 62, 209, 97, 101, 62, 8, 127, 244, 62, 55, 248, 126, 62, 155, 222, 76, 63, 90, 189, 7, 63, 234, 145, 225, 62, 206, 170, 129, 62, 76, 130, 69, 63, 174, 189, 7, 63, 228, 38, 234, 62, 243, 8, 146, 62, 217, 210, 116, 63, 90, 189, 7, 63, 226, 187, 242, 62, 221, 39, 137, 62, 36, 214, 84, 63, 207, 206, 7, 63, 146, 28, 248, 62, 208, 97, 101, 62, 240, 139, 212, 62, 228, 155, 17, 63, 240, 118, 70, 63, 114, 36, 102, 62, 202, 247, 214, 62, 114, 36, 102, 62, 202, 247, 214, 62, 197, 43, 135, 62, 59, 241, 76, 63, 197, 181, 102, 62, 78, 119, 220, 62, 153, 119, 133, 62, 8, 142, 69, 63, 39, 222, 83, 62, 126, 133, 228, 62, 163, 42, 28, 63, 96, 53, 69, 63, 105, 172, 83, 62, 236, 162, 236, 62, 216, 6, 37, 63, 250, 13, 68, 63, 153, 45, 83, 62, 228, 33, 242, 62, 153, 45, 83, 62, 228, 33, 242, 62, 121, 145, 44, 63, 56, 34, 67, 63, 12, 178, 3, 63, 162, 104, 220, 62, 76, 138, 82, 62, 42, 117, 244, 62, 249, 112, 51, 63, 19, 84, 66, 63, 66, 163, 3, 63, 156, 179, 225, 62, 196, 211, 57, 63, 239, 134, 65, 63, 64, 163, 3, 63, 228, 38, 234, 62, 241, 164, 17, 63, 163, 130, 58, 63, 66, 163, 3, 63, 48, 154, 242, 62, 142, 81, 28, 63, 60, 231, 59, 63, 12, 178, 3, 63, 40, 229, 247, 62, 72, 138, 82, 62, 208, 149, 212, 62, 12, 28, 37, 63, 11, 4, 61, 63, 151, 45, 83, 62, 26, 233, 214, 62, 151, 45, 83, 62, 26, 233, 214, 62, 245, 166, 44, 63, 2, 2, 62, 63, 103, 172, 83, 62, 12, 104, 220, 62, 210, 115, 51, 63, 203, 1, 63, 63, 132, 8, 64, 62, 124, 133, 228, 62, 190, 211, 57, 63, 43, 226, 63, 63, 126, 229, 63, 62, 234, 171, 236, 62, 138, 19, 64, 63, 31, 181, 64, 63, 101, 146, 63, 62, 142, 38, 242, 62, 101, 146, 63, 62, 142, 38, 242, 62, 199, 170, 20, 63, 82, 230, 46, 63, 111, 245, 254, 62, 20, 147, 220, 62, 89, 53, 63, 62, 228, 102, 244, 62, 128, 190, 30, 63, 206, 239, 50, 63, 108, 231, 254, 62, 132, 203, 225, 62, 107, 248, 38, 63, 81, 58, 54, 63, 227, 232, 254, 62, 228, 38, 234, 62, 168, 5, 46, 63, 44, 24, 57, 63, 108, 231, 254, 62, 72, 130, 242, 62, 102, 82, 52, 63, 187, 205, 59, 63, 112, 245, 254, 62, 182, 186, 247, 62, 84, 53, 63, 62, 24, 164, 212, 62, 122, 64, 58, 63, 148, 75, 62, 63, 98, 146, 63, 62, 106, 228, 214, 62, 98, 146, 63, 62, 106, 228, 214, 62, 29, 139, 26, 63, 190, 98, 36, 63, 125, 229, 63, 62, 16, 95, 220, 62, 255, 87, 35, 63, 124, 217, 42, 63, 233, 125, 42, 63, 81, 32, 48, 63, 229, 151, 48, 63, 130, 178, 52, 63, 99, 252, 53, 63, 183, 238, 56, 63, 157, 18, 59, 63, 186, 222, 60, 63, 18, 243, 34, 63, 114, 156, 27, 63, 79, 222, 41, 63, 45, 40, 36, 63, 28, 118, 47, 63, 199, 27, 43, 63, 112, 52, 52, 63, 211, 25, 49, 63, 73, 85, 56, 63, 152, 149, 54, 63, 1, 60, 60, 63, 76, 180, 59, 63, 255, 103, 45, 63, 50, 57, 21, 63, 192, 237, 49, 63, 70, 83, 31, 63, 164, 145, 53, 63, 112, 132, 39, 63, 247, 159, 56, 63, 2, 140, 46, 63, 116, 53, 59, 63, 194, 234, 52, 63, 179, 168, 61, 63, 146, 224, 58, 63, 39, 57, 57, 63, 74, 178, 17, 63, 174, 0, 59, 63, 81, 182, 28, 63, 166, 106, 60, 63, 113, 156, 37, 63, 235, 143, 61, 63, 206, 54, 45, 63, 38, 108, 62, 63, 112, 11, 52, 63, 50, 64, 63, 63, 26, 114, 58, 63, 53, 158, 69, 63, 254, 91, 17, 63, 49, 125, 68, 63, 112, 136, 28, 63, 225, 139, 67, 63, 48, 138, 37, 63, 248, 174, 66, 63, 189, 51, 45, 63, 153, 194, 65, 63, 124, 7, 52, 63, 0, 231, 64, 63, 186, 112, 58, 63, 173, 202, 81, 63, 190, 68, 20, 63, 162, 191, 77, 63, 45, 215, 30, 63, 14, 120, 74, 63, 244, 84, 39, 63, 243, 161, 71, 63, 112, 133, 46, 63, 231, 255, 68, 63, 230, 223, 52, 63, 108, 128, 66, 63, 9, 221, 58, 63, 9, 223, 92, 63, 234, 80, 26, 63, 55, 31, 86, 63, 159, 133, 35, 63, 16, 177, 80, 63, 158, 226, 42, 63, 52, 20, 76, 63, 64, 22, 49, 63, 132, 226, 71, 63, 71, 146, 54, 63, 115, 240, 67, 63, 63, 176, 59, 63, 82, 14, 102, 63, 183, 20, 35, 63, 223, 250, 92, 63, 186, 69, 42, 63, 157, 188, 85, 63, 69, 244, 47, 63, 136, 186, 79, 63, 204, 187, 52, 63, 17, 56, 74, 63, 110, 243, 56, 63, 105, 26, 69, 63, 152, 221, 60, 63, 129, 122, 89, 63, 134, 23, 54, 63, 222, 232, 75, 63, 72, 213, 59, 63, 62, 236, 69, 63, 177, 77, 62, 63, 195, 35, 159, 59, 128, 119, 218, 62, 24, 140, 237, 62, 20, 68, 61, 63, 231, 152, 137, 59, 126, 172, 216, 62, 162, 192, 236, 62, 118, 32, 62, 63, 190, 250, 50, 59, 242, 173, 211, 62, 190, 250, 50, 59, 242, 173, 211, 62, 161, 46, 234, 62, 61, 87, 64, 63, 175, 185, 7, 57, 34, 103, 208, 62, 214, 184, 171, 62, 96, 131, 247, 62, 66, 148, 230, 62, 198, 85, 64, 63, 12, 164, 172, 62, 236, 38, 234, 62, 49, 248, 227, 62, 160, 156, 56, 63, 159, 121, 171, 62, 230, 62, 242, 62, 221, 126, 228, 62, 90, 105, 61, 63, 157, 106, 188, 62, 36, 129, 62, 63, 43, 151, 32, 63, 104, 67, 242, 62, 27, 65, 170, 62, 164, 203, 211, 62, 27, 65, 170, 62, 164, 203, 211, 62, 5, 206, 184, 62, 52, 177, 64, 63, 175, 87, 171, 62, 178, 161, 208, 62, 150, 32, 187, 62, 210, 163, 64, 63, 176, 116, 32, 63, 74, 138, 247, 62, 26, 217, 168, 62, 122, 133, 228, 62, 8, 228, 180, 62, 101, 137, 59, 63, 114, 238, 187, 62, 98, 33, 59, 63, 232, 37, 32, 63, 228, 38, 234, 62, 148, 176, 169, 62, 206, 156, 217, 62, 92, 184, 182, 62, 148, 252, 62, 63, 223, 143, 169, 62, 16, 127, 218, 62, 227, 107, 182, 62, 246, 182, 62, 63, 46, 211, 186, 62, 49, 196, 55, 63, 43, 151, 32, 63, 98, 10, 226, 62, 28, 65, 170, 62, 84, 63, 245, 62, 28, 65, 170, 62, 84, 63, 245, 62, 129, 72, 182, 62, 250, 13, 54, 63, 175, 87, 171, 62, 70, 105, 248, 62, 85, 146, 184, 62, 186, 212, 53, 63, 177, 116, 32, 63, 128, 195, 220, 62, 148, 176, 169, 62, 40, 110, 239, 62, 196, 16, 181, 62, 125, 245, 55, 63, 222, 143, 169, 62, 230, 139, 238, 62, 74, 234, 180, 62, 127, 66, 56, 63, 199, 212, 7, 57, 228, 163, 248, 62, 212, 184, 171, 62, 116, 202, 220, 62, 139, 237, 226, 62, 236, 205, 48, 63, 158, 121, 171, 62, 240, 14, 226, 62, 137, 74, 226, 62, 196, 235, 51, 63, 75, 153, 137, 59, 134, 94, 240, 62, 114, 17, 234, 62, 74, 71, 50, 63, 78, 252, 50, 59, 20, 93, 245, 62, 78, 252, 50, 59, 20, 93, 245, 62, 18, 130, 230, 62, 9, 101, 48, 63, 174, 40, 227, 59, 130, 133, 228, 62, 186, 9, 239, 62, 210, 255, 55, 63, 39, 36, 159, 59, 130, 147, 238, 62, 178, 64, 235, 62, 164, 9, 51, 63, 225, 40, 81, 61, 174, 111, 102, 63, 74, 6, 71, 63, 147, 145, 1, 63, 121, 174, 202, 61, 103, 197, 114, 63, 81, 89, 87, 63, 91, 54, 5, 63, 243, 129, 33, 62, 44, 123, 123, 63, 196, 93, 102, 63, 146, 51, 13, 63, 113, 225, 87, 63, 170, 219, 123, 63, 94, 135, 2, 63, 163, 197, 54, 63, 227, 150, 71, 63, 132, 247, 127, 63, 4, 0, 254, 62, 10, 181, 38, 63, 123, 97, 102, 63, 25, 168, 115, 63, 94, 135, 2, 63, 226, 8, 71, 63, 18, 159, 122, 63, 166, 126, 72, 63, 18, 159, 122, 63, 166, 126, 72, 63, 57, 108, 118, 63, 134, 151, 87, 63, 57, 108, 118, 63, 134, 151, 87, 63, 57, 18, 41, 63, 84, 188, 11, 63, 57, 18, 41, 63, 84, 188, 11, 63, 50, 114, 55, 63, 46, 70, 7, 63, 50, 114, 55, 63, 46, 70, 7, 63, 165, 153, 37, 62, 4, 157, 0, 63, 86, 152, 2, 63, 236, 76, 72, 63, 192, 107, 209, 61, 64, 28, 9, 63, 99, 159, 2, 63, 6, 156, 56, 63, 132, 247, 127, 63, 146, 14, 56, 63, 160, 104, 182, 62, 53, 91, 123, 63, 140, 77, 123, 63, 45, 145, 39, 63, 254, 255, 148, 62, 247, 235, 127, 63, 214, 90, 110, 63, 148, 223, 100, 63, 214, 90, 110, 63, 148, 223, 100, 63, 242, 78, 99, 63, 170, 128, 111, 63, 242, 78, 99, 63, 170, 128, 111, 63, 77, 135, 85, 63, 217, 49, 10, 63, 77, 135, 85, 63, 217, 49, 10, 63, 92, 46, 99, 63, 18, 149, 17, 63, 92, 46, 99, 63, 18, 149, 17, 63, 132, 247, 127, 63, 239, 67, 73, 63, 255, 48, 212, 62, 61, 154, 114, 63, 187, 157, 100, 62, 132, 247, 127, 63, 231, 156, 114, 63, 209, 7, 25, 63, 192, 213, 54, 63, 164, 162, 127, 63, 165, 40, 238, 62, 248, 117, 23, 63, 80, 231, 85, 63, 236, 230, 118, 63, 80, 231, 85, 63, 236, 230, 118, 63, 67, 6, 71, 63, 38, 183, 122, 63, 67, 6, 71, 63, 38, 183, 122, 63, 237, 171, 55, 63, 5, 113, 122, 63, 237, 171, 55, 63, 5, 113, 122, 63, 219, 92, 40, 58, 208, 16, 53, 63, 227, 15, 25, 63, 0, 176, 15, 63, 175, 185, 7, 57, 116, 123, 70, 63, 43, 233, 38, 63, 152, 251, 6, 63, 72, 82, 123, 63, 123, 194, 89, 63, 146, 63, 236, 62, 16, 77, 102, 63, 186, 6, 28, 63, 235, 6, 110, 63, 186, 6, 28, 63, 235, 6, 110, 63, 96, 194, 17, 63, 223, 244, 98, 63, 96, 194, 17, 63, 223, 244, 98, 63, 75, 213, 38, 63, 66, 228, 122, 63, 215, 137, 214, 62, 88, 197, 10, 63, 18, 52, 18, 63, 174, 97, 30, 63, 18, 52, 18, 63, 174, 97, 30, 63, 234, 85, 28, 63, 98, 155, 19, 63, 234, 85, 28, 63, 98, 155, 19, 63, 61, 242, 40, 63, 89, 44, 118, 63, 61, 242, 40, 63, 89, 44, 118, 63, 235, 99, 118, 63, 156, 183, 41, 63, 235, 99, 118, 63, 156, 183, 41, 63, 159, 140, 122, 63, 254, 205, 56, 63, 159, 140, 122, 63, 254, 205, 56, 63, 216, 148, 70, 63, 133, 196, 6, 63, 216, 148, 70, 63, 133, 196, 6, 63, 113, 222, 10, 63, 32, 221, 85, 63, 113, 222, 10, 63, 32, 221, 85, 63, 10, 167, 24, 63, 56, 24, 114, 63, 146, 235, 184, 62, 12, 164, 1, 63, 15, 138, 13, 63, 33, 224, 101, 63, 108, 124, 151, 62, 110, 119, 249, 62, 128, 126, 110, 63, 182, 78, 28, 63, 128, 126, 110, 63, 182, 78, 28, 63, 227, 41, 6, 63, 29, 149, 87, 63, 231, 65, 105, 62, 210, 197, 248, 62, 47, 115, 114, 63, 232, 54, 104, 63, 92, 227, 252, 62, 222, 96, 87, 63, 19, 112, 7, 63, 126, 190, 71, 63, 19, 112, 7, 63, 126, 190, 71, 63, 184, 37, 11, 63, 212, 43, 43, 63, 184, 37, 11, 63, 212, 43, 43, 63, 50, 10, 142, 60, 137, 83, 87, 63, 13, 154, 54, 63, 220, 64, 2, 63, 199, 50, 91, 61, 242, 71, 21, 63, 218, 151, 6, 63, 162, 95, 41, 63, 39, 155, 7, 63, 98, 65, 57, 63, 39, 155, 7, 63, 98, 65, 57, 63, 66, 110, 154, 60, 102, 71, 36, 63, 46, 28, 14, 63, 152, 120, 27, 63, 189, 131, 155, 61, 70, 4, 215, 62, 0, 177, 168, 62, 66, 184, 244, 62, 0, 177, 168, 62, 66, 184, 244, 62, 225, 52, 27, 63, 36, 56, 248, 62, 226, 52, 159, 62, 86, 236, 213, 62, 226, 52, 159, 62, 86, 236, 213, 62, 96, 76, 120, 62, 206, 4, 242, 62, 43, 151, 32, 63, 104, 67, 242, 62, 176, 116, 32, 63, 74, 138, 247, 62, 148, 176, 169, 62, 40, 110, 239, 62, 246, 248, 23, 62, 92, 228, 214, 62, 26, 205, 226, 61, 126, 247, 214, 62, 0, 191, 113, 61, 192, 30, 242, 62, 244, 190, 113, 61, 66, 236, 214, 62, 242, 11, 44, 61, 130, 113, 242, 62, 180, 210, 193, 59, 208, 61, 212, 62, 0, 177, 168, 62, 66, 184, 244, 62, 254, 176, 168, 62, 182, 82, 212, 62, 226, 52, 159, 62, 164, 30, 243, 62, 226, 52, 159, 62, 164, 30, 243, 62, 225, 52, 27, 63, 166, 21, 220, 62, 225, 52, 27, 63, 36, 56, 248, 62, 226, 52, 159, 62, 86, 236, 213, 62, 226, 52, 159, 62, 86, 236, 213, 62, 96, 76, 120, 62, 206, 4, 242, 62, 96, 76, 120, 62, 42, 6, 215, 62, 96, 76, 120, 62, 42, 6, 215, 62, 101, 146, 63, 62, 142, 38, 242, 62, 231, 152, 137, 59, 126, 172, 216, 62, 43, 151, 32, 63, 104, 67, 242, 62, 5, 206, 184, 62, 52, 177, 64, 63, 176, 116, 32, 63, 74, 138, 247, 62, 227, 107, 182, 62, 246, 182, 62, 63, 177, 116, 32, 63, 128, 195, 220, 62, 148, 176, 169, 62, 40, 110, 239, 62, 57, 108, 118, 63, 134, 151, 87, 63, 50, 114, 55, 63, 46, 70, 7, 63, 50, 114, 55, 63, 46, 70, 7, 63, 242, 78, 99, 63, 170, 128, 111, 63, 242, 78, 99, 63, 170, 128, 111, 63, 92, 46, 99, 63, 18, 149, 17, 63, 67, 6, 71, 63, 38, 183, 122, 63, 146, 63, 236, 62, 16, 77, 102, 63, 96, 194, 17, 63, 223, 244, 98, 63, 19, 112, 7, 63, 126, 190, 71, 63, 19, 112, 7, 63, 126, 190, 71, 63, 13, 154, 54, 63, 220, 64, 2, 63, 170, 55, 225, 61, 126, 133, 228, 62, 170, 55, 225, 61, 126, 133, 228, 62, 32, 205, 226, 61, 130, 19, 242, 62, 26, 205, 226, 61, 126, 247, 214, 62, 124, 124, 190, 61, 98, 5, 242, 62, 117, 124, 190, 61, 156, 5, 215, 62, 189, 131, 155, 61, 70, 4, 215, 62, 0, 191, 113, 61, 192, 30, 242, 62, 244, 190, 113, 61, 66, 236, 214, 62, 82, 189, 200, 60, 100, 40, 243, 62, 53, 189, 200, 60, 160, 226, 213, 62, 91, 211, 193, 59, 52, 205, 244, 62, 180, 210, 193, 59, 208, 61, 212, 62, 239, 115, 125, 62, 5, 132, 55, 63, 0, 177, 168, 62, 66, 184, 244, 62, 254, 176, 168, 62, 182, 82, 212, 62, 226, 52, 159, 62, 164, 30, 243, 62, 225, 52, 27, 63, 166, 21, 220, 62, 226, 52, 159, 62, 86, 236, 213, 62, 226, 52, 159, 62, 86, 236, 213, 62, 181, 65, 150, 62, 186, 108, 242, 62, 120, 140, 141, 62, 110, 238, 214, 62, 10, 228, 132, 62, 156, 5, 242, 62, 96, 76, 120, 62, 206, 4, 242, 62, 96, 76, 120, 62, 206, 4, 242, 62, 117, 36, 102, 62, 46, 19, 242, 62, 151, 45, 83, 62, 26, 233, 214, 62, 195, 35, 159, 59, 128, 119, 218, 62, 5, 206, 184, 62, 52, 177, 64, 63, 232, 37, 32, 63, 228, 38, 234, 62, 223, 143, 169, 62, 16, 127, 218, 62, 43, 151, 32, 63, 98, 10, 226, 62, 177, 116, 32, 63, 128, 195, 220, 62, 222, 143, 169, 62, 230, 139, 238, 62, 75, 153, 137, 59, 134, 94, 240, 62, 182, 130, 23, 62, 126, 133, 228, 62, 32, 205, 226, 61, 130, 19, 242, 62, 26, 205, 226, 61, 126, 247, 214, 62, 87, 236, 188, 61, 128, 133, 228, 62, 87, 236, 188, 61, 128, 133, 228, 62, 124, 124, 190, 61, 98, 5, 242, 62, 124, 124, 190, 61, 98, 5, 242, 62, 117, 124, 190, 61, 156, 5, 215, 62, 117, 124, 190, 61, 156, 5, 215, 62, 195, 131, 155, 61, 184, 6, 242, 62, 189, 131, 155, 61, 70, 4, 215, 62, 244, 190, 113, 61, 66, 236, 214, 62, 244, 190, 113, 61, 66, 236, 214, 62, 92, 222, 42, 61, 130, 133, 228, 62, 242, 11, 44, 61, 130, 113, 242, 62, 230, 11, 44, 61, 128, 153, 214, 62, 82, 189, 200, 60, 100, 40, 243, 62, 53, 189, 200, 60, 160, 226, 213, 62, 91, 211, 193, 59, 52, 205, 244, 62, 180, 210, 193, 59, 208, 61, 212, 62, 0, 177, 168, 62, 66, 184, 244, 62, 62, 48, 31, 63, 20, 128, 220, 62, 254, 176, 168, 62, 182, 82, 212, 62, 226, 52, 159, 62, 164, 30, 243, 62, 52, 44, 27, 63, 228, 38, 234, 62, 52, 44, 27, 63, 228, 38, 234, 62, 226, 52, 159, 62, 86, 236, 213, 62, 203, 99, 150, 62, 124, 133, 228, 62, 203, 99, 150, 62, 124, 133, 228, 62, 181, 65, 150, 62, 186, 108, 242, 62, 180, 65, 150, 62, 64, 158, 214, 62, 120, 140, 141, 62, 136, 28, 242, 62, 120, 140, 141, 62, 110, 238, 214, 62, 47, 56, 133, 62, 124, 133, 228, 62, 47, 56, 133, 62, 124, 133, 228, 62, 10, 228, 132, 62, 156, 5, 242, 62, 10, 228, 132, 62, 92, 5, 215, 62, 96, 76, 120, 62, 206, 4, 242, 62, 96, 76, 120, 62, 42, 6, 215, 62, 117, 36, 102, 62, 46, 19, 242, 62, 39, 222, 83, 62, 126, 133, 228, 62, 195, 35, 159, 59, 128, 119, 218, 62, 232, 37, 32, 63, 228, 38, 234, 62, 232, 37, 32, 63, 228, 38, 234, 62, 223, 143, 169, 62, 16, 127, 218, 62, 222, 143, 169, 62, 230, 139, 238, 62, 75, 153, 137, 59, 134, 94, 240, 62), +"format": 4119, "index_count": 3276, -"material": ExtResource( 5 ), -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 702 -} +"index_data": PackedByteArray(188, 1, 12, 0, 2, 0, 188, 1, 16, 0, 12, 0, 194, 1, 16, 0, 188, 1, 194, 1, 22, 0, 16, 0, 1, 0, 6, 0, 186, 1, 1, 0, 9, 0, 6, 0, 196, 1, 22, 0, 194, 1, 196, 1, 24, 0, 22, 0, 2, 0, 9, 0, 1, 0, 2, 0, 12, 0, 9, 0, 30, 1, 24, 0, 196, 1, 24, 0, 40, 0, 22, 0, 24, 0, 43, 0, 40, 0, 12, 0, 28, 0, 9, 0, 12, 0, 31, 0, 28, 0, 30, 1, 43, 0, 24, 0, 16, 0, 31, 0, 12, 0, 16, 0, 37, 0, 31, 0, 22, 0, 37, 0, 16, 0, 22, 0, 40, 0, 37, 0, 9, 0, 26, 0, 6, 0, 9, 0, 28, 0, 26, 0, 40, 0, 63, 0, 37, 0, 40, 0, 66, 0, 63, 0, 28, 0, 50, 0, 26, 0, 28, 0, 55, 0, 50, 0, 43, 0, 66, 0, 40, 0, 43, 0, 69, 0, 66, 0, 31, 0, 55, 0, 28, 0, 31, 0, 60, 0, 55, 0, 30, 1, 69, 0, 43, 0, 37, 0, 60, 0, 31, 0, 37, 0, 63, 0, 60, 0, 30, 1, 94, 0, 69, 0, 63, 0, 75, 0, 60, 0, 63, 0, 84, 0, 75, 0, 66, 0, 84, 0, 63, 0, 66, 0, 88, 0, 84, 0, 55, 0, 71, 0, 50, 0, 55, 0, 73, 0, 71, 0, 69, 0, 88, 0, 66, 0, 69, 0, 94, 0, 88, 0, 60, 0, 73, 0, 55, 0, 60, 0, 75, 0, 73, 0, 73, 0, 97, 0, 71, 0, 73, 0, 101, 0, 97, 0, 94, 0, 109, 0, 88, 0, 94, 0, 111, 0, 109, 0, 75, 0, 101, 0, 73, 0, 75, 0, 104, 0, 101, 0, 30, 1, 111, 0, 94, 0, 84, 0, 104, 0, 75, 0, 84, 0, 108, 0, 104, 0, 88, 0, 108, 0, 84, 0, 88, 0, 109, 0, 108, 0, 109, 0, 127, 0, 108, 0, 109, 0, 131, 0, 127, 0, 51, 2, 116, 0, 49, 2, 116, 0, 97, 0, 101, 0, 97, 0, 91, 2, 115, 0, 97, 0, 39, 2, 91, 2, 47, 2, 116, 0, 51, 2, 47, 2, 97, 0, 116, 0, 97, 0, 41, 2, 39, 2, 44, 2, 97, 0, 47, 2, 97, 0, 44, 2, 41, 2, 111, 0, 131, 0, 109, 0, 111, 0, 136, 0, 131, 0, 104, 0, 116, 0, 101, 0, 104, 0, 122, 0, 116, 0, 30, 1, 136, 0, 111, 0, 67, 2, 127, 0, 61, 2, 104, 0, 62, 2, 122, 0, 104, 0, 52, 2, 62, 2, 67, 2, 108, 0, 127, 0, 65, 2, 108, 0, 67, 2, 104, 0, 58, 2, 52, 2, 56, 2, 108, 0, 65, 2, 104, 0, 56, 2, 58, 2, 108, 0, 56, 2, 104, 0, 122, 0, 146, 0, 116, 0, 122, 0, 147, 0, 146, 0, 30, 1, 156, 0, 136, 0, 68, 2, 122, 0, 62, 2, 149, 0, 61, 2, 127, 0, 149, 0, 79, 2, 61, 2, 68, 2, 147, 0, 122, 0, 74, 2, 147, 0, 68, 2, 149, 0, 77, 2, 79, 2, 72, 2, 147, 0, 74, 2, 149, 0, 72, 2, 77, 2, 147, 0, 72, 2, 149, 0, 131, 0, 149, 0, 127, 0, 131, 0, 154, 0, 149, 0, 93, 2, 115, 0, 91, 2, 140, 0, 116, 0, 146, 0, 116, 0, 84, 2, 49, 2, 116, 0, 82, 2, 84, 2, 93, 2, 140, 0, 115, 0, 86, 2, 140, 0, 93, 2, 140, 0, 82, 2, 116, 0, 89, 2, 140, 0, 86, 2, 140, 0, 89, 2, 82, 2, 136, 0, 154, 0, 131, 0, 136, 0, 156, 0, 154, 0, 146, 0, 160, 0, 140, 0, 146, 0, 166, 0, 160, 0, 156, 0, 180, 0, 154, 0, 156, 0, 184, 0, 180, 0, 147, 0, 166, 0, 146, 0, 147, 0, 168, 0, 166, 0, 30, 1, 184, 0, 156, 0, 149, 0, 168, 0, 147, 0, 149, 0, 175, 0, 168, 0, 154, 0, 175, 0, 149, 0, 154, 0, 180, 0, 175, 0, 175, 0, 192, 0, 168, 0, 175, 0, 194, 0, 192, 0, 180, 0, 194, 0, 175, 0, 180, 0, 196, 0, 194, 0, 166, 0, 185, 0, 160, 0, 166, 0, 188, 0, 185, 0, 184, 0, 196, 0, 180, 0, 184, 0, 199, 0, 196, 0, 168, 0, 188, 0, 166, 0, 168, 0, 192, 0, 188, 0, 30, 1, 199, 0, 184, 0, 192, 0, 208, 0, 188, 0, 192, 0, 216, 0, 208, 0, 30, 1, 225, 0, 199, 0, 194, 0, 216, 0, 192, 0, 194, 0, 218, 0, 216, 0, 196, 0, 218, 0, 194, 0, 196, 0, 221, 0, 218, 0, 203, 0, 188, 0, 208, 0, 203, 0, 185, 0, 188, 0, 199, 0, 221, 0, 196, 0, 199, 0, 225, 0, 221, 0, 221, 0, 234, 0, 218, 0, 221, 0, 238, 0, 234, 0, 208, 0, 227, 0, 203, 0, 208, 0, 230, 0, 227, 0, 225, 0, 238, 0, 221, 0, 225, 0, 240, 0, 238, 0, 216, 0, 230, 0, 208, 0, 216, 0, 233, 0, 230, 0, 30, 1, 240, 0, 225, 0, 218, 0, 233, 0, 216, 0, 218, 0, 234, 0, 233, 0, 234, 0, 244, 0, 233, 0, 234, 0, 247, 0, 244, 0, 238, 0, 247, 0, 234, 0, 238, 0, 248, 0, 247, 0, 230, 0, 241, 0, 227, 0, 230, 0, 242, 0, 241, 0, 240, 0, 248, 0, 238, 0, 240, 0, 249, 0, 248, 0, 233, 0, 242, 0, 230, 0, 233, 0, 244, 0, 242, 0, 30, 1, 249, 0, 240, 0, 249, 0, 0, 1, 248, 0, 249, 0, 2, 1, 0, 1, 244, 0, 251, 0, 242, 0, 244, 0, 252, 0, 251, 0, 30, 1, 2, 1, 249, 0, 247, 0, 252, 0, 244, 0, 247, 0, 254, 0, 252, 0, 248, 0, 254, 0, 247, 0, 248, 0, 0, 1, 254, 0, 242, 0, 250, 0, 241, 0, 242, 0, 251, 0, 250, 0, 0, 1, 9, 1, 254, 0, 0, 1, 10, 1, 9, 1, 251, 0, 4, 1, 250, 0, 251, 0, 5, 1, 4, 1, 2, 1, 10, 1, 0, 1, 2, 1, 11, 1, 10, 1, 252, 0, 5, 1, 251, 0, 252, 0, 7, 1, 5, 1, 30, 1, 11, 1, 2, 1, 254, 0, 7, 1, 252, 0, 254, 0, 9, 1, 7, 1, 30, 1, 20, 1, 11, 1, 9, 1, 14, 1, 7, 1, 9, 1, 16, 1, 14, 1, 10, 1, 16, 1, 9, 1, 10, 1, 18, 1, 16, 1, 5, 1, 12, 1, 4, 1, 5, 1, 13, 1, 12, 1, 11, 1, 18, 1, 10, 1, 11, 1, 20, 1, 18, 1, 7, 1, 13, 1, 5, 1, 7, 1, 14, 1, 13, 1, 20, 1, 28, 1, 18, 1, 20, 1, 29, 1, 28, 1, 14, 1, 25, 1, 13, 1, 14, 1, 26, 1, 25, 1, 30, 1, 29, 1, 20, 1, 16, 1, 26, 1, 14, 1, 16, 1, 27, 1, 26, 1, 18, 1, 27, 1, 16, 1, 18, 1, 28, 1, 27, 1, 13, 1, 23, 1, 12, 1, 13, 1, 25, 1, 23, 1, 28, 1, 44, 1, 27, 1, 28, 1, 48, 1, 44, 1, 25, 1, 31, 1, 23, 1, 25, 1, 35, 1, 31, 1, 29, 1, 48, 1, 28, 1, 29, 1, 52, 1, 48, 1, 26, 1, 35, 1, 25, 1, 26, 1, 39, 1, 35, 1, 30, 1, 52, 1, 29, 1, 27, 1, 39, 1, 26, 1, 27, 1, 44, 1, 39, 1, 30, 1, 71, 1, 52, 1, 44, 1, 62, 1, 39, 1, 44, 1, 65, 1, 62, 1, 48, 1, 65, 1, 44, 1, 48, 1, 66, 1, 65, 1, 35, 1, 58, 1, 31, 1, 35, 1, 61, 1, 58, 1, 52, 1, 66, 1, 48, 1, 52, 1, 71, 1, 66, 1, 39, 1, 61, 1, 35, 1, 39, 1, 62, 1, 61, 1, 71, 1, 92, 1, 66, 1, 71, 1, 98, 1, 92, 1, 62, 1, 80, 1, 61, 1, 62, 1, 86, 1, 80, 1, 30, 1, 98, 1, 71, 1, 65, 1, 86, 1, 62, 1, 65, 1, 91, 1, 86, 1, 66, 1, 91, 1, 65, 1, 66, 1, 92, 1, 91, 1, 61, 1, 76, 1, 58, 1, 61, 1, 80, 1, 76, 1, 92, 1, 109, 1, 91, 1, 92, 1, 113, 1, 109, 1, 80, 1, 101, 1, 76, 1, 80, 1, 103, 1, 101, 1, 98, 1, 113, 1, 92, 1, 98, 1, 115, 1, 113, 1, 86, 1, 103, 1, 80, 1, 86, 1, 106, 1, 103, 1, 30, 1, 115, 1, 98, 1, 91, 1, 106, 1, 86, 1, 91, 1, 109, 1, 106, 1, 30, 1, 142, 1, 115, 1, 109, 1, 128, 1, 106, 1, 109, 1, 135, 1, 128, 1, 113, 1, 135, 1, 109, 1, 113, 1, 138, 1, 135, 1, 103, 1, 121, 1, 101, 1, 103, 1, 124, 1, 121, 1, 115, 1, 138, 1, 113, 1, 115, 1, 142, 1, 138, 1, 106, 1, 124, 1, 103, 1, 106, 1, 128, 1, 124, 1, 143, 1, 124, 1, 146, 1, 143, 1, 121, 1, 124, 1, 142, 1, 155, 1, 138, 1, 142, 1, 160, 1, 155, 1, 128, 1, 146, 1, 124, 1, 128, 1, 148, 1, 146, 1, 30, 1, 160, 1, 142, 1, 135, 1, 148, 1, 128, 1, 135, 1, 154, 1, 148, 1, 138, 1, 154, 1, 135, 1, 138, 1, 155, 1, 154, 1, 155, 1, 179, 1, 154, 1, 155, 1, 182, 1, 179, 1, 146, 1, 164, 1, 143, 1, 146, 1, 171, 1, 164, 1, 160, 1, 182, 1, 155, 1, 160, 1, 184, 1, 182, 1, 148, 1, 171, 1, 146, 1, 148, 1, 174, 1, 171, 1, 30, 1, 184, 1, 160, 1, 154, 1, 174, 1, 148, 1, 154, 1, 179, 1, 174, 1, 174, 1, 1, 0, 171, 1, 174, 1, 2, 0, 1, 0, 30, 1, 196, 1, 184, 1, 179, 1, 2, 0, 174, 1, 179, 1, 188, 1, 2, 0, 182, 1, 188, 1, 179, 1, 182, 1, 194, 1, 188, 1, 171, 1, 186, 1, 164, 1, 171, 1, 1, 0, 186, 1, 184, 1, 194, 1, 182, 1, 184, 1, 196, 1, 194, 1, 35, 2, 38, 0, 46, 0, 35, 2, 14, 0, 38, 0, 37, 2, 58, 0, 224, 1, 36, 2, 49, 0, 54, 0, 36, 2, 19, 0, 49, 0, 10, 0, 38, 0, 14, 0, 10, 0, 35, 0, 38, 0, 37, 2, 54, 0, 58, 0, 37, 2, 36, 2, 54, 0, 49, 0, 96, 0, 54, 0, 49, 0, 91, 0, 96, 0, 35, 0, 79, 0, 38, 0, 35, 0, 78, 0, 79, 0, 58, 0, 99, 0, 224, 1, 99, 0, 143, 0, 224, 1, 96, 0, 143, 0, 99, 0, 96, 0, 139, 0, 143, 0, 79, 0, 128, 0, 86, 0, 79, 0, 123, 0, 128, 0, 163, 0, 128, 0, 123, 0, 163, 0, 170, 0, 128, 0, 143, 0, 181, 0, 224, 1, 170, 0, 133, 0, 128, 0, 170, 0, 172, 0, 133, 0, 133, 0, 176, 0, 139, 0, 133, 0, 172, 0, 176, 0, 158, 0, 123, 0, 120, 0, 158, 0, 163, 0, 123, 0, 172, 0, 217, 0, 176, 0, 172, 0, 214, 0, 217, 0, 202, 0, 163, 0, 158, 0, 202, 0, 206, 0, 163, 0, 206, 0, 170, 0, 163, 0, 206, 0, 209, 0, 170, 0, 181, 0, 222, 0, 224, 1, 209, 0, 172, 0, 170, 0, 209, 0, 214, 0, 172, 0, 222, 0, 246, 0, 224, 1, 214, 0, 245, 0, 217, 0, 214, 0, 243, 0, 245, 0, 246, 0, 6, 1, 8, 1, 246, 0, 245, 0, 6, 1, 224, 1, 246, 0, 8, 1, 245, 0, 3, 1, 6, 1, 245, 0, 243, 0, 3, 1, 6, 1, 21, 1, 22, 1, 6, 1, 3, 1, 21, 1, 253, 0, 17, 1, 255, 0, 253, 0, 15, 1, 17, 1, 8, 1, 22, 1, 24, 1, 8, 1, 6, 1, 22, 1, 224, 1, 8, 1, 24, 1, 17, 1, 42, 1, 19, 1, 17, 1, 38, 1, 42, 1, 224, 1, 24, 1, 54, 1, 22, 1, 47, 1, 51, 1, 22, 1, 21, 1, 47, 1, 24, 1, 51, 1, 54, 1, 24, 1, 22, 1, 51, 1, 38, 1, 70, 1, 75, 1, 38, 1, 32, 1, 70, 1, 54, 1, 88, 1, 97, 1, 54, 1, 51, 1, 88, 1, 75, 1, 42, 1, 38, 1, 75, 1, 78, 1, 42, 1, 224, 1, 54, 1, 97, 1, 78, 1, 47, 1, 42, 1, 78, 1, 85, 1, 47, 1, 51, 1, 85, 1, 88, 1, 51, 1, 47, 1, 85, 1, 122, 1, 85, 1, 78, 1, 122, 1, 126, 1, 85, 1, 88, 1, 126, 1, 131, 1, 88, 1, 85, 1, 126, 1, 75, 1, 110, 1, 116, 1, 75, 1, 70, 1, 110, 1, 97, 1, 131, 1, 136, 1, 97, 1, 88, 1, 131, 1, 116, 1, 78, 1, 75, 1, 116, 1, 122, 1, 78, 1, 224, 1, 97, 1, 136, 1, 159, 1, 122, 1, 116, 1, 159, 1, 163, 1, 122, 1, 224, 1, 136, 1, 176, 1, 163, 1, 126, 1, 122, 1, 163, 1, 167, 1, 126, 1, 131, 1, 167, 1, 173, 1, 131, 1, 126, 1, 167, 1, 150, 1, 116, 1, 110, 1, 150, 1, 159, 1, 116, 1, 136, 1, 173, 1, 176, 1, 136, 1, 131, 1, 173, 1, 203, 1, 173, 1, 167, 1, 203, 1, 206, 1, 173, 1, 191, 1, 159, 1, 150, 1, 191, 1, 198, 1, 159, 1, 206, 1, 176, 1, 173, 1, 206, 1, 208, 1, 176, 1, 159, 1, 200, 1, 163, 1, 159, 1, 198, 1, 200, 1, 208, 1, 224, 1, 176, 1, 200, 1, 167, 1, 163, 1, 200, 1, 203, 1, 167, 1, 218, 1, 206, 1, 203, 1, 218, 1, 220, 1, 206, 1, 191, 1, 212, 1, 198, 1, 191, 1, 210, 1, 212, 1, 220, 1, 208, 1, 206, 1, 220, 1, 222, 1, 208, 1, 222, 1, 224, 1, 208, 1, 236, 1, 222, 1, 220, 1, 236, 1, 239, 1, 222, 1, 239, 1, 224, 1, 222, 1, 234, 1, 220, 1, 218, 1, 234, 1, 236, 1, 220, 1, 210, 1, 230, 1, 212, 1, 210, 1, 227, 1, 230, 1, 246, 1, 236, 1, 234, 1, 246, 1, 247, 1, 236, 1, 247, 1, 239, 1, 236, 1, 247, 1, 248, 1, 239, 1, 230, 1, 245, 1, 232, 1, 230, 1, 244, 1, 245, 1, 248, 1, 224, 1, 239, 1, 254, 1, 224, 1, 248, 1, 252, 1, 247, 1, 246, 1, 252, 1, 253, 1, 247, 1, 253, 1, 248, 1, 247, 1, 253, 1, 254, 1, 248, 1, 244, 1, 251, 1, 245, 1, 244, 1, 250, 1, 251, 1, 3, 2, 254, 1, 253, 1, 3, 2, 4, 2, 254, 1, 4, 2, 224, 1, 254, 1, 251, 1, 2, 2, 252, 1, 251, 1, 1, 2, 2, 2, 2, 2, 253, 1, 252, 1, 2, 2, 3, 2, 253, 1, 8, 2, 3, 2, 2, 2, 8, 2, 9, 2, 3, 2, 9, 2, 4, 2, 3, 2, 9, 2, 10, 2, 4, 2, 0, 2, 7, 2, 1, 2, 0, 2, 6, 2, 7, 2, 10, 2, 224, 1, 4, 2, 16, 2, 224, 1, 10, 2, 14, 2, 9, 2, 8, 2, 14, 2, 15, 2, 9, 2, 15, 2, 10, 2, 9, 2, 15, 2, 16, 2, 10, 2, 21, 2, 16, 2, 15, 2, 21, 2, 22, 2, 16, 2, 22, 2, 224, 1, 16, 2, 20, 2, 15, 2, 14, 2, 20, 2, 21, 2, 15, 2, 27, 2, 22, 2, 21, 2, 27, 2, 28, 2, 22, 2, 28, 2, 224, 1, 22, 2, 19, 2, 26, 2, 20, 2, 19, 2, 25, 2, 26, 2, 34, 2, 224, 1, 28, 2, 25, 2, 32, 2, 26, 2, 25, 2, 31, 2, 32, 2, 26, 2, 33, 2, 27, 2, 26, 2, 32, 2, 33, 2, 30, 2, 10, 0, 14, 0, 30, 2, 29, 2, 10, 0, 14, 0, 31, 2, 30, 2, 14, 0, 35, 2, 31, 2, 34, 2, 37, 2, 224, 1, 31, 2, 19, 0, 32, 2, 31, 2, 35, 2, 19, 0, 19, 0, 33, 2, 32, 2, 19, 0, 36, 2, 33, 2, 58, 1, 142, 2, 31, 1, 58, 1, 144, 2, 142, 2, 185, 0, 135, 2, 160, 0, 185, 0, 153, 2, 135, 2, 0, 0, 27, 0, 25, 0, 0, 0, 3, 0, 27, 0, 3, 0, 30, 0, 27, 0, 3, 0, 5, 0, 30, 0, 4, 0, 33, 0, 29, 0, 4, 0, 8, 0, 33, 0, 7, 0, 34, 0, 32, 0, 7, 0, 11, 0, 34, 0, 11, 0, 36, 0, 34, 0, 11, 0, 13, 0, 36, 0, 13, 0, 39, 0, 36, 0, 13, 0, 15, 0, 39, 0, 15, 0, 41, 0, 39, 0, 15, 0, 17, 0, 41, 0, 18, 0, 44, 0, 42, 0, 18, 0, 20, 0, 44, 0, 21, 0, 47, 0, 45, 0, 21, 0, 23, 0, 47, 0, 23, 0, 25, 0, 47, 0, 23, 0, 0, 0, 25, 0, 25, 0, 51, 0, 48, 0, 25, 0, 27, 0, 51, 0, 27, 0, 53, 0, 51, 0, 27, 0, 30, 0, 53, 0, 29, 0, 57, 0, 52, 0, 29, 0, 33, 0, 57, 0, 32, 0, 59, 0, 56, 0, 32, 0, 34, 0, 59, 0, 34, 0, 61, 0, 59, 0, 34, 0, 36, 0, 61, 0, 36, 0, 62, 0, 61, 0, 36, 0, 39, 0, 62, 0, 39, 0, 64, 0, 62, 0, 39, 0, 41, 0, 64, 0, 42, 0, 67, 0, 65, 0, 42, 0, 44, 0, 67, 0, 45, 0, 70, 0, 68, 0, 45, 0, 47, 0, 70, 0, 47, 0, 48, 0, 70, 0, 47, 0, 25, 0, 48, 0, 48, 0, 74, 0, 72, 0, 48, 0, 51, 0, 74, 0, 51, 0, 77, 0, 74, 0, 51, 0, 53, 0, 77, 0, 52, 0, 81, 0, 76, 0, 52, 0, 57, 0, 81, 0, 56, 0, 83, 0, 80, 0, 56, 0, 59, 0, 83, 0, 59, 0, 85, 0, 83, 0, 59, 0, 61, 0, 85, 0, 61, 0, 87, 0, 85, 0, 61, 0, 62, 0, 87, 0, 62, 0, 89, 0, 87, 0, 62, 0, 64, 0, 89, 0, 65, 0, 92, 0, 90, 0, 65, 0, 67, 0, 92, 0, 68, 0, 95, 0, 93, 0, 68, 0, 70, 0, 95, 0, 70, 0, 72, 0, 95, 0, 70, 0, 48, 0, 72, 0, 72, 0, 100, 0, 98, 0, 72, 0, 74, 0, 100, 0, 74, 0, 103, 0, 100, 0, 74, 0, 77, 0, 103, 0, 76, 0, 106, 0, 102, 0, 76, 0, 81, 0, 106, 0, 80, 0, 107, 0, 105, 0, 80, 0, 83, 0, 107, 0, 83, 0, 110, 0, 107, 0, 83, 0, 85, 0, 110, 0, 85, 0, 112, 0, 110, 0, 85, 0, 87, 0, 112, 0, 87, 0, 113, 0, 112, 0, 87, 0, 89, 0, 113, 0, 90, 0, 117, 0, 114, 0, 90, 0, 92, 0, 117, 0, 93, 0, 119, 0, 118, 0, 93, 0, 95, 0, 119, 0, 95, 0, 98, 0, 119, 0, 95, 0, 72, 0, 98, 0, 98, 0, 124, 0, 121, 0, 98, 0, 100, 0, 124, 0, 100, 0, 126, 0, 124, 0, 100, 0, 103, 0, 126, 0, 102, 0, 130, 0, 125, 0, 102, 0, 106, 0, 130, 0, 105, 0, 132, 0, 129, 0, 105, 0, 107, 0, 132, 0, 107, 0, 134, 0, 132, 0, 107, 0, 110, 0, 134, 0, 110, 0, 135, 0, 134, 0, 110, 0, 112, 0, 135, 0, 112, 0, 137, 0, 135, 0, 112, 0, 113, 0, 137, 0, 114, 0, 141, 0, 138, 0, 114, 0, 117, 0, 141, 0, 118, 0, 144, 0, 142, 0, 118, 0, 119, 0, 144, 0, 119, 0, 121, 0, 144, 0, 119, 0, 98, 0, 121, 0, 121, 0, 148, 0, 145, 0, 121, 0, 124, 0, 148, 0, 124, 0, 151, 0, 148, 0, 124, 0, 126, 0, 151, 0, 125, 0, 153, 0, 150, 0, 125, 0, 130, 0, 153, 0, 129, 0, 155, 0, 152, 0, 129, 0, 132, 0, 155, 0, 132, 0, 157, 0, 155, 0, 132, 0, 134, 0, 157, 0, 134, 0, 159, 0, 157, 0, 134, 0, 135, 0, 159, 0, 135, 0, 161, 0, 159, 0, 135, 0, 137, 0, 161, 0, 138, 0, 164, 0, 162, 0, 138, 0, 141, 0, 164, 0, 142, 0, 167, 0, 165, 0, 142, 0, 144, 0, 167, 0, 144, 0, 145, 0, 167, 0, 144, 0, 121, 0, 145, 0, 145, 0, 171, 0, 169, 0, 145, 0, 148, 0, 171, 0, 148, 0, 174, 0, 171, 0, 148, 0, 151, 0, 174, 0, 150, 0, 178, 0, 173, 0, 150, 0, 153, 0, 178, 0, 152, 0, 179, 0, 177, 0, 152, 0, 155, 0, 179, 0, 155, 0, 182, 0, 179, 0, 155, 0, 157, 0, 182, 0, 157, 0, 183, 0, 182, 0, 157, 0, 159, 0, 183, 0, 159, 0, 186, 0, 183, 0, 159, 0, 161, 0, 186, 0, 162, 0, 189, 0, 187, 0, 162, 0, 164, 0, 189, 0, 165, 0, 191, 0, 190, 0, 165, 0, 167, 0, 191, 0, 167, 0, 169, 0, 191, 0, 167, 0, 145, 0, 169, 0, 169, 0, 195, 0, 193, 0, 169, 0, 171, 0, 195, 0, 171, 0, 197, 0, 195, 0, 171, 0, 174, 0, 197, 0, 173, 0, 200, 0, 198, 0, 173, 0, 178, 0, 200, 0, 177, 0, 204, 0, 201, 0, 177, 0, 179, 0, 204, 0, 179, 0, 205, 0, 204, 0, 179, 0, 182, 0, 205, 0, 182, 0, 207, 0, 205, 0, 182, 0, 183, 0, 207, 0, 183, 0, 211, 0, 207, 0, 183, 0, 186, 0, 211, 0, 187, 0, 213, 0, 210, 0, 187, 0, 189, 0, 213, 0, 190, 0, 215, 0, 212, 0, 190, 0, 191, 0, 215, 0, 191, 0, 193, 0, 215, 0, 191, 0, 169, 0, 193, 0, 195, 0, 90, 2, 193, 0, 195, 0, 92, 2, 90, 2, 195, 0, 85, 2, 92, 2, 85, 2, 197, 0, 219, 0, 85, 2, 195, 0, 197, 0, 198, 0, 223, 0, 220, 0, 198, 0, 200, 0, 223, 0, 201, 0, 226, 0, 224, 0, 201, 0, 204, 0, 226, 0, 204, 0, 228, 0, 226, 0, 204, 0, 205, 0, 228, 0, 205, 0, 229, 0, 228, 0, 205, 0, 207, 0, 229, 0, 207, 0, 232, 0, 229, 0, 207, 0, 211, 0, 232, 0, 210, 0, 236, 0, 231, 0, 210, 0, 213, 0, 236, 0, 235, 0, 38, 2, 40, 2, 38, 2, 212, 0, 215, 0, 38, 2, 235, 0, 212, 0, 193, 0, 38, 2, 215, 0, 193, 0, 90, 2, 38, 2, 239, 0, 202, 0, 237, 0, 239, 0, 206, 0, 202, 0, 219, 0, 87, 2, 85, 2, 223, 0, 88, 2, 220, 0, 223, 0, 80, 2, 88, 2, 226, 0, 81, 2, 224, 0, 226, 0, 83, 2, 81, 2, 214, 0, 82, 0, 243, 0, 214, 0, 209, 0, 82, 0, 48, 2, 226, 0, 228, 0, 48, 2, 83, 2, 226, 0, 50, 2, 228, 0, 229, 0, 50, 2, 48, 2, 228, 0, 46, 2, 229, 0, 232, 0, 46, 2, 50, 2, 229, 0, 236, 0, 45, 2, 231, 0, 236, 0, 43, 2, 45, 2, 255, 0, 237, 0, 253, 0, 255, 0, 239, 0, 237, 0, 40, 2, 42, 2, 235, 0, 3, 1, 82, 0, 1, 1, 3, 1, 243, 0, 82, 0, 82, 0, 206, 0, 239, 0, 82, 0, 209, 0, 206, 0, 255, 0, 82, 0, 239, 0, 255, 0, 1, 1, 82, 0, 70, 2, 33, 1, 76, 2, 34, 1, 73, 2, 36, 1, 34, 1, 71, 2, 73, 2, 75, 2, 40, 1, 37, 1, 75, 2, 69, 2, 40, 1, 63, 2, 40, 1, 69, 2, 63, 2, 41, 1, 40, 1, 63, 2, 43, 1, 41, 1, 63, 2, 53, 2, 43, 1, 53, 2, 46, 1, 43, 1, 53, 2, 59, 2, 46, 1, 45, 1, 55, 2, 50, 1, 45, 1, 57, 2, 55, 2, 64, 2, 49, 1, 54, 2, 60, 2, 55, 1, 53, 1, 60, 2, 78, 2, 55, 1, 55, 1, 33, 1, 56, 1, 33, 1, 78, 2, 76, 2, 33, 1, 55, 1, 78, 2, 34, 1, 59, 1, 57, 1, 34, 1, 36, 1, 59, 1, 37, 1, 63, 1, 60, 1, 37, 1, 40, 1, 63, 1, 40, 1, 64, 1, 63, 1, 40, 1, 41, 1, 64, 1, 41, 1, 67, 1, 64, 1, 41, 1, 43, 1, 67, 1, 43, 1, 69, 1, 67, 1, 43, 1, 46, 1, 69, 1, 45, 1, 73, 1, 68, 1, 45, 1, 50, 1, 73, 1, 66, 2, 49, 1, 64, 2, 49, 1, 74, 1, 72, 1, 49, 1, 66, 2, 74, 1, 74, 1, 60, 2, 53, 1, 74, 1, 66, 2, 60, 2, 53, 1, 79, 1, 77, 1, 53, 1, 55, 1, 79, 1, 55, 1, 81, 1, 79, 1, 55, 1, 56, 1, 81, 1, 57, 1, 83, 1, 82, 1, 57, 1, 59, 1, 83, 1, 60, 1, 87, 1, 84, 1, 60, 1, 63, 1, 87, 1, 63, 1, 89, 1, 87, 1, 63, 1, 64, 1, 89, 1, 64, 1, 90, 1, 89, 1, 64, 1, 67, 1, 90, 1, 67, 1, 94, 1, 90, 1, 67, 1, 69, 1, 94, 1, 68, 1, 96, 1, 93, 1, 68, 1, 73, 1, 96, 1, 72, 1, 99, 1, 95, 1, 72, 1, 74, 1, 99, 1, 74, 1, 77, 1, 99, 1, 74, 1, 53, 1, 77, 1, 77, 1, 102, 1, 100, 1, 77, 1, 79, 1, 102, 1, 79, 1, 104, 1, 102, 1, 79, 1, 81, 1, 104, 1, 82, 1, 107, 1, 105, 1, 82, 1, 83, 1, 107, 1, 84, 1, 111, 1, 108, 1, 84, 1, 87, 1, 111, 1, 87, 1, 112, 1, 111, 1, 87, 1, 89, 1, 112, 1, 89, 1, 114, 1, 112, 1, 89, 1, 90, 1, 114, 1, 90, 1, 118, 1, 114, 1, 90, 1, 94, 1, 118, 1, 93, 1, 120, 1, 117, 1, 93, 1, 96, 1, 120, 1, 95, 1, 123, 1, 119, 1, 95, 1, 99, 1, 123, 1, 99, 1, 100, 1, 123, 1, 99, 1, 77, 1, 100, 1, 100, 1, 127, 1, 125, 1, 100, 1, 102, 1, 127, 1, 102, 1, 129, 1, 127, 1, 102, 1, 104, 1, 129, 1, 105, 1, 132, 1, 130, 1, 105, 1, 107, 1, 132, 1, 108, 1, 134, 1, 133, 1, 108, 1, 111, 1, 134, 1, 111, 1, 137, 1, 134, 1, 111, 1, 112, 1, 137, 1, 112, 1, 139, 1, 137, 1, 112, 1, 114, 1, 139, 1, 114, 1, 141, 1, 139, 1, 114, 1, 118, 1, 141, 1, 117, 1, 145, 1, 140, 1, 117, 1, 120, 1, 145, 1, 119, 1, 147, 1, 144, 1, 119, 1, 123, 1, 147, 1, 123, 1, 125, 1, 147, 1, 123, 1, 100, 1, 125, 1, 125, 1, 151, 1, 149, 1, 125, 1, 127, 1, 151, 1, 127, 1, 153, 1, 151, 1, 127, 1, 129, 1, 153, 1, 130, 1, 157, 1, 152, 1, 130, 1, 132, 1, 157, 1, 133, 1, 158, 1, 156, 1, 133, 1, 134, 1, 158, 1, 134, 1, 161, 1, 158, 1, 134, 1, 137, 1, 161, 1, 137, 1, 162, 1, 161, 1, 137, 1, 139, 1, 162, 1, 139, 1, 165, 1, 162, 1, 139, 1, 141, 1, 165, 1, 140, 1, 168, 1, 166, 1, 140, 1, 145, 1, 168, 1, 144, 1, 170, 1, 169, 1, 144, 1, 147, 1, 170, 1, 147, 1, 149, 1, 170, 1, 147, 1, 125, 1, 149, 1, 149, 1, 175, 1, 172, 1, 149, 1, 151, 1, 175, 1, 151, 1, 178, 1, 175, 1, 151, 1, 153, 1, 178, 1, 152, 1, 181, 1, 177, 1, 152, 1, 157, 1, 181, 1, 156, 1, 183, 1, 180, 1, 156, 1, 158, 1, 183, 1, 158, 1, 185, 1, 183, 1, 158, 1, 161, 1, 185, 1, 161, 1, 187, 1, 185, 1, 161, 1, 162, 1, 187, 1, 162, 1, 189, 1, 187, 1, 162, 1, 165, 1, 189, 1, 166, 1, 192, 1, 190, 1, 166, 1, 168, 1, 192, 1, 169, 1, 195, 1, 193, 1, 169, 1, 170, 1, 195, 1, 170, 1, 172, 1, 195, 1, 170, 1, 149, 1, 172, 1, 172, 1, 199, 1, 197, 1, 172, 1, 175, 1, 199, 1, 175, 1, 202, 1, 199, 1, 175, 1, 178, 1, 202, 1, 177, 1, 205, 1, 201, 1, 177, 1, 181, 1, 205, 1, 180, 1, 207, 1, 204, 1, 180, 1, 183, 1, 207, 1, 183, 1, 209, 1, 207, 1, 183, 1, 185, 1, 209, 1, 185, 1, 211, 1, 209, 1, 185, 1, 187, 1, 211, 1, 187, 1, 213, 1, 211, 1, 187, 1, 189, 1, 213, 1, 190, 1, 216, 1, 214, 1, 190, 1, 192, 1, 216, 1, 193, 1, 219, 1, 217, 1, 193, 1, 195, 1, 219, 1, 195, 1, 197, 1, 219, 1, 195, 1, 172, 1, 197, 1, 197, 1, 223, 1, 221, 1, 197, 1, 199, 1, 223, 1, 199, 1, 226, 1, 223, 1, 199, 1, 202, 1, 226, 1, 201, 1, 229, 1, 225, 1, 201, 1, 205, 1, 229, 1, 204, 1, 231, 1, 228, 1, 204, 1, 207, 1, 231, 1, 207, 1, 233, 1, 231, 1, 207, 1, 209, 1, 233, 1, 209, 1, 235, 1, 233, 1, 209, 1, 211, 1, 235, 1, 211, 1, 237, 1, 235, 1, 211, 1, 213, 1, 237, 1, 214, 1, 240, 1, 238, 1, 214, 1, 216, 1, 240, 1, 217, 1, 243, 1, 241, 1, 217, 1, 219, 1, 243, 1, 219, 1, 221, 1, 243, 1, 219, 1, 197, 1, 221, 1, 221, 1, 3, 0, 0, 0, 221, 1, 223, 1, 3, 0, 223, 1, 5, 0, 3, 0, 223, 1, 226, 1, 5, 0, 225, 1, 8, 0, 4, 0, 225, 1, 229, 1, 8, 0, 228, 1, 11, 0, 7, 0, 228, 1, 231, 1, 11, 0, 231, 1, 13, 0, 11, 0, 231, 1, 233, 1, 13, 0, 233, 1, 15, 0, 13, 0, 233, 1, 235, 1, 15, 0, 235, 1, 17, 0, 15, 0, 235, 1, 237, 1, 17, 0, 238, 1, 20, 0, 18, 0, 238, 1, 240, 1, 20, 0, 241, 1, 23, 0, 21, 0, 241, 1, 243, 1, 23, 0, 243, 1, 0, 0, 23, 0, 243, 1, 221, 1, 0, 0, 35, 2, 49, 0, 19, 0, 35, 2, 46, 0, 49, 0, 38, 0, 86, 0, 46, 0, 38, 0, 79, 0, 86, 0, 46, 0, 91, 0, 49, 0, 46, 0, 86, 0, 91, 0, 54, 0, 99, 0, 58, 0, 54, 0, 96, 0, 99, 0, 78, 0, 123, 0, 79, 0, 78, 0, 120, 0, 123, 0, 86, 0, 133, 0, 91, 0, 86, 0, 128, 0, 133, 0, 91, 0, 139, 0, 96, 0, 91, 0, 133, 0, 139, 0, 139, 0, 181, 0, 143, 0, 139, 0, 176, 0, 181, 0, 176, 0, 222, 0, 181, 0, 176, 0, 217, 0, 222, 0, 217, 0, 246, 0, 222, 0, 217, 0, 245, 0, 246, 0, 255, 0, 19, 1, 1, 1, 255, 0, 17, 1, 19, 1, 1, 1, 21, 1, 3, 1, 1, 1, 19, 1, 21, 1, 15, 1, 38, 1, 17, 1, 15, 1, 32, 1, 38, 1, 19, 1, 47, 1, 21, 1, 19, 1, 42, 1, 47, 1, 198, 1, 215, 1, 200, 1, 198, 1, 212, 1, 215, 1, 200, 1, 218, 1, 203, 1, 200, 1, 215, 1, 218, 1, 212, 1, 232, 1, 215, 1, 212, 1, 230, 1, 232, 1, 215, 1, 234, 1, 218, 1, 215, 1, 232, 1, 234, 1, 232, 1, 246, 1, 234, 1, 232, 1, 245, 1, 246, 1, 227, 1, 244, 1, 230, 1, 227, 1, 242, 1, 244, 1, 242, 1, 250, 1, 244, 1, 242, 1, 249, 1, 250, 1, 245, 1, 252, 1, 246, 1, 245, 1, 251, 1, 252, 1, 249, 1, 0, 2, 250, 1, 249, 1, 255, 1, 0, 2, 250, 1, 1, 2, 251, 1, 250, 1, 0, 2, 1, 2, 1, 2, 8, 2, 2, 2, 1, 2, 7, 2, 8, 2, 255, 1, 6, 2, 0, 2, 255, 1, 5, 2, 6, 2, 5, 2, 12, 2, 6, 2, 5, 2, 11, 2, 12, 2, 6, 2, 13, 2, 7, 2, 6, 2, 12, 2, 13, 2, 7, 2, 14, 2, 8, 2, 7, 2, 13, 2, 14, 2, 13, 2, 20, 2, 14, 2, 13, 2, 19, 2, 20, 2, 11, 2, 18, 2, 12, 2, 11, 2, 17, 2, 18, 2, 12, 2, 19, 2, 13, 2, 12, 2, 18, 2, 19, 2, 18, 2, 25, 2, 19, 2, 18, 2, 24, 2, 25, 2, 20, 2, 27, 2, 21, 2, 20, 2, 26, 2, 27, 2, 17, 2, 24, 2, 18, 2, 17, 2, 23, 2, 24, 2, 23, 2, 30, 2, 24, 2, 23, 2, 29, 2, 30, 2, 27, 2, 34, 2, 28, 2, 27, 2, 33, 2, 34, 2, 24, 2, 31, 2, 25, 2, 24, 2, 30, 2, 31, 2, 33, 2, 37, 2, 34, 2, 33, 2, 36, 2, 37, 2, 160, 2, 133, 2, 120, 2, 133, 2, 97, 2, 99, 2, 97, 2, 183, 2, 95, 2, 183, 2, 143, 2, 145, 2, 143, 2, 185, 2, 189, 2, 185, 2, 115, 2, 117, 2, 115, 2, 170, 2, 174, 2, 170, 2, 152, 2, 168, 2, 152, 2, 102, 2, 134, 2, 102, 2, 104, 2, 100, 2, 104, 2, 146, 2, 176, 2, 146, 2, 107, 2, 130, 2, 146, 2, 109, 2, 107, 2, 172, 2, 133, 2, 160, 2, 128, 2, 133, 2, 172, 2, 104, 2, 109, 2, 146, 2, 104, 2, 123, 2, 109, 2, 128, 2, 97, 2, 133, 2, 126, 2, 97, 2, 128, 2, 104, 2, 125, 2, 123, 2, 104, 2, 137, 2, 125, 2, 126, 2, 183, 2, 97, 2, 164, 2, 183, 2, 126, 2, 102, 2, 137, 2, 104, 2, 102, 2, 139, 2, 137, 2, 112, 2, 183, 2, 164, 2, 110, 2, 183, 2, 112, 2, 152, 2, 139, 2, 102, 2, 152, 2, 141, 2, 139, 2, 110, 2, 143, 2, 183, 2, 156, 2, 143, 2, 110, 2, 152, 2, 159, 2, 141, 2, 152, 2, 149, 2, 159, 2, 156, 2, 185, 2, 143, 2, 154, 2, 185, 2, 156, 2, 170, 2, 149, 2, 152, 2, 170, 2, 151, 2, 149, 2, 180, 2, 185, 2, 154, 2, 186, 2, 185, 2, 180, 2, 115, 2, 151, 2, 170, 2, 115, 2, 166, 2, 151, 2, 186, 2, 115, 2, 185, 2, 115, 2, 178, 2, 166, 2, 115, 2, 186, 2, 178, 2, 163, 2, 130, 2, 107, 2, 130, 2, 120, 2, 118, 2, 120, 2, 163, 2, 160, 2, 163, 2, 120, 2, 130, 2, 186, 1, 132, 2, 164, 1, 186, 1, 121, 2, 132, 2, 23, 2, 173, 2, 29, 2, 23, 2, 129, 2, 173, 2, 202, 0, 136, 2, 237, 0, 202, 0, 124, 2, 136, 2, 4, 1, 114, 2, 250, 0, 4, 1, 116, 2, 114, 2, 140, 0, 101, 2, 115, 0, 140, 0, 103, 2, 101, 2, 17, 2, 129, 2, 23, 2, 17, 2, 127, 2, 129, 2, 101, 1, 182, 2, 76, 1, 101, 1, 94, 2, 182, 2, 210, 1, 181, 2, 227, 1, 210, 1, 187, 2, 181, 2, 15, 1, 158, 2, 32, 1, 15, 1, 140, 2, 158, 2, 143, 1, 96, 2, 121, 1, 143, 1, 98, 2, 96, 2, 32, 1, 148, 2, 70, 1, 32, 1, 158, 2, 148, 2, 255, 1, 113, 2, 5, 2, 255, 1, 111, 2, 113, 2, 31, 1, 188, 2, 23, 1, 31, 1, 142, 2, 188, 2, 23, 1, 184, 2, 12, 1, 23, 1, 188, 2, 184, 2, 29, 2, 161, 2, 10, 0, 29, 2, 173, 2, 161, 2, 227, 1, 155, 2, 242, 1, 227, 1, 181, 2, 155, 2, 253, 0, 140, 2, 15, 1, 253, 0, 138, 2, 140, 2, 241, 0, 171, 2, 227, 0, 241, 0, 175, 2, 171, 2, 250, 0, 175, 2, 241, 0, 250, 0, 114, 2, 175, 2, 35, 0, 106, 2, 78, 0, 35, 0, 162, 2, 106, 2, 203, 0, 153, 2, 185, 0, 203, 0, 169, 2, 153, 2, 160, 0, 103, 2, 140, 0, 160, 0, 135, 2, 103, 2, 150, 1, 179, 2, 191, 1, 150, 1, 167, 2, 179, 2, 11, 2, 127, 2, 17, 2, 11, 2, 165, 2, 127, 2, 71, 0, 147, 2, 50, 0, 71, 0, 177, 2, 147, 2, 115, 0, 105, 2, 97, 0, 115, 0, 101, 2, 105, 2, 164, 1, 98, 2, 143, 1, 164, 1, 132, 2, 98, 2, 50, 0, 131, 2, 26, 0, 50, 0, 147, 2, 131, 2, 158, 0, 124, 2, 202, 0, 158, 0, 122, 2, 124, 2, 26, 0, 119, 2, 6, 0, 26, 0, 131, 2, 119, 2, 6, 0, 121, 2, 186, 1, 6, 0, 119, 2, 121, 2, 78, 0, 108, 2, 120, 0, 78, 0, 106, 2, 108, 2, 227, 0, 169, 2, 203, 0, 227, 0, 171, 2, 169, 2, 10, 0, 162, 2, 35, 0, 10, 0, 161, 2, 162, 2, 121, 1, 94, 2, 101, 1, 121, 1, 96, 2, 94, 2, 120, 0, 122, 2, 158, 0, 120, 0, 108, 2, 122, 2, 110, 1, 167, 2, 150, 1, 110, 1, 150, 2, 167, 2, 76, 1, 144, 2, 58, 1, 76, 1, 182, 2, 144, 2, 191, 1, 187, 2, 210, 1, 191, 1, 179, 2, 187, 2, 12, 1, 116, 2, 4, 1, 12, 1, 184, 2, 116, 2, 97, 0, 177, 2, 71, 0, 97, 0, 105, 2, 177, 2, 70, 1, 150, 2, 110, 1, 70, 1, 148, 2, 150, 2, 249, 1, 111, 2, 255, 1, 249, 1, 157, 2, 111, 2, 5, 2, 165, 2, 11, 2, 5, 2, 113, 2, 165, 2, 242, 1, 157, 2, 249, 1, 242, 1, 155, 2, 157, 2, 237, 0, 138, 2, 253, 0, 237, 0, 136, 2, 138, 2), +"lods": [0.00381843, PackedByteArray(9, 0, 119, 2, 132, 2, 119, 2, 121, 2, 132, 2, 132, 2, 98, 2, 96, 2, 171, 1, 132, 2, 96, 2, 171, 1, 9, 0, 132, 2, 96, 2, 124, 1, 171, 1, 179, 1, 9, 0, 171, 1, 124, 1, 179, 1, 171, 1, 9, 0, 55, 0, 119, 2, 55, 0, 147, 2, 119, 2, 147, 2, 131, 2, 119, 2, 9, 0, 63, 0, 55, 0, 55, 0, 73, 0, 147, 2, 63, 0, 73, 0, 55, 0, 73, 0, 97, 0, 147, 2, 97, 0, 177, 2, 147, 2, 97, 0, 105, 2, 177, 2, 22, 0, 63, 0, 9, 0, 179, 1, 22, 0, 9, 0, 63, 0, 104, 0, 73, 0, 91, 2, 105, 2, 97, 0, 91, 2, 101, 2, 105, 2, 97, 0, 39, 2, 91, 2, 97, 0, 41, 2, 39, 2, 97, 0, 44, 2, 41, 2, 44, 2, 97, 0, 47, 2, 116, 0, 97, 0, 73, 0, 47, 2, 97, 0, 116, 0, 104, 0, 116, 0, 73, 0, 47, 2, 116, 0, 51, 2, 51, 2, 116, 0, 49, 2, 116, 0, 84, 2, 49, 2, 116, 0, 82, 2, 84, 2, 140, 0, 82, 2, 116, 0, 140, 0, 101, 2, 91, 2, 140, 0, 89, 2, 82, 2, 140, 0, 103, 2, 101, 2, 89, 2, 140, 0, 86, 2, 140, 0, 135, 2, 103, 2, 93, 2, 140, 0, 91, 2, 86, 2, 140, 0, 93, 2, 153, 2, 135, 2, 140, 0, 116, 0, 188, 0, 140, 0, 188, 0, 153, 2, 140, 0, 147, 0, 188, 0, 116, 0, 104, 0, 147, 0, 116, 0, 153, 2, 188, 0, 230, 0, 230, 0, 171, 2, 153, 2, 171, 2, 169, 2, 153, 2, 188, 0, 234, 0, 230, 0, 230, 0, 251, 0, 171, 2, 234, 0, 251, 0, 230, 0, 196, 0, 234, 0, 188, 0, 251, 0, 114, 2, 171, 2, 114, 2, 175, 2, 171, 2, 234, 0, 0, 1, 251, 0, 196, 0, 0, 1, 234, 0, 251, 0, 13, 1, 114, 2, 0, 1, 16, 1, 251, 0, 251, 0, 16, 1, 13, 1, 13, 1, 184, 2, 114, 2, 184, 2, 116, 2, 114, 2, 16, 1, 35, 1, 13, 1, 13, 1, 35, 1, 184, 2, 0, 1, 48, 1, 16, 1, 16, 1, 48, 1, 35, 1, 35, 1, 142, 2, 184, 2, 142, 2, 188, 2, 184, 2, 35, 1, 80, 1, 142, 2, 80, 1, 182, 2, 142, 2, 182, 2, 144, 2, 142, 2, 35, 1, 91, 1, 80, 1, 48, 1, 91, 1, 35, 1, 80, 1, 124, 1, 182, 2, 91, 1, 124, 1, 80, 1, 124, 1, 96, 2, 182, 2, 96, 2, 94, 2, 182, 2, 91, 1, 138, 1, 124, 1, 48, 1, 138, 1, 91, 1, 138, 1, 179, 1, 124, 1, 138, 1, 22, 0, 179, 1, 142, 1, 138, 1, 48, 1, 142, 1, 22, 0, 138, 1, 2, 1, 142, 1, 48, 1, 2, 1, 48, 1, 0, 1, 142, 1, 24, 0, 22, 0, 2, 1, 0, 1, 196, 0, 111, 0, 142, 1, 2, 1, 111, 0, 24, 0, 142, 1, 111, 0, 2, 1, 196, 0, 24, 0, 111, 0, 109, 0, 24, 0, 109, 0, 22, 0, 111, 0, 196, 0, 109, 0, 22, 0, 109, 0, 108, 0, 22, 0, 108, 0, 63, 0, 109, 0, 196, 0, 149, 0, 109, 0, 149, 0, 108, 0, 149, 0, 196, 0, 188, 0, 63, 0, 108, 0, 104, 0, 149, 0, 188, 0, 147, 0, 108, 0, 56, 2, 104, 0, 56, 2, 108, 0, 65, 2, 104, 0, 56, 2, 58, 2, 65, 2, 108, 0, 67, 2, 67, 2, 108, 0, 149, 0, 104, 0, 58, 2, 52, 2, 104, 0, 52, 2, 62, 2, 104, 0, 62, 2, 147, 0, 68, 2, 147, 0, 62, 2, 74, 2, 147, 0, 68, 2, 72, 2, 147, 0, 74, 2, 147, 0, 72, 2, 149, 0, 67, 2, 149, 0, 61, 2, 149, 0, 72, 2, 77, 2, 149, 0, 79, 2, 61, 2, 149, 0, 77, 2, 79, 2, 29, 2, 78, 0, 14, 0, 78, 0, 106, 2, 108, 2, 78, 0, 162, 2, 106, 2, 29, 2, 162, 2, 78, 0, 29, 2, 161, 2, 162, 2, 78, 0, 108, 2, 122, 2, 29, 2, 173, 2, 161, 2, 29, 2, 129, 2, 173, 2, 78, 0, 122, 2, 202, 0, 202, 0, 122, 2, 124, 2, 202, 0, 124, 2, 136, 2, 202, 0, 136, 2, 253, 0, 253, 0, 136, 2, 138, 2, 253, 0, 138, 2, 140, 2, 202, 0, 206, 0, 78, 0, 206, 0, 202, 0, 253, 0, 206, 0, 86, 0, 78, 0, 14, 0, 78, 0, 86, 0, 206, 0, 170, 0, 86, 0, 14, 0, 86, 0, 54, 0, 86, 0, 170, 0, 54, 0, 243, 0, 170, 0, 206, 0, 253, 0, 243, 0, 206, 0, 54, 0, 170, 0, 217, 0, 170, 0, 243, 0, 217, 0, 253, 0, 19, 1, 243, 0, 217, 0, 243, 0, 22, 1, 22, 1, 243, 0, 19, 1, 253, 0, 78, 1, 19, 1, 22, 1, 19, 1, 78, 1, 253, 0, 140, 2, 32, 1, 253, 0, 32, 1, 78, 1, 32, 1, 140, 2, 158, 2, 32, 1, 158, 2, 148, 2, 32, 1, 148, 2, 70, 1, 70, 1, 148, 2, 150, 2, 70, 1, 150, 2, 167, 2, 32, 1, 70, 1, 116, 1, 116, 1, 78, 1, 32, 1, 70, 1, 167, 2, 191, 1, 191, 1, 116, 1, 70, 1, 191, 1, 167, 2, 179, 2, 191, 1, 179, 2, 187, 2, 191, 1, 187, 2, 227, 1, 227, 1, 187, 2, 181, 2, 191, 1, 198, 1, 116, 1, 191, 1, 227, 1, 198, 1, 227, 1, 181, 2, 155, 2, 198, 1, 203, 1, 116, 1, 116, 1, 203, 1, 78, 1, 198, 1, 227, 1, 232, 1, 198, 1, 232, 1, 203, 1, 173, 1, 78, 1, 203, 1, 232, 1, 173, 1, 203, 1, 22, 1, 78, 1, 173, 1, 227, 1, 155, 2, 249, 1, 249, 1, 155, 2, 157, 2, 249, 1, 157, 2, 111, 2, 227, 1, 249, 1, 1, 2, 227, 1, 1, 2, 232, 1, 249, 1, 111, 2, 5, 2, 249, 1, 5, 2, 1, 2, 5, 2, 111, 2, 113, 2, 5, 2, 113, 2, 165, 2, 1, 2, 247, 1, 232, 1, 232, 1, 247, 1, 173, 1, 5, 2, 13, 2, 1, 2, 13, 2, 247, 1, 1, 2, 5, 2, 165, 2, 17, 2, 17, 2, 165, 2, 127, 2, 17, 2, 127, 2, 129, 2, 17, 2, 129, 2, 29, 2, 17, 2, 18, 2, 5, 2, 17, 2, 29, 2, 18, 2, 5, 2, 18, 2, 13, 2, 18, 2, 29, 2, 31, 2, 18, 2, 31, 2, 13, 2, 14, 0, 31, 2, 29, 2, 31, 2, 14, 0, 32, 2, 13, 2, 31, 2, 32, 2, 14, 0, 54, 0, 32, 2, 32, 2, 21, 2, 13, 2, 13, 2, 21, 2, 247, 1, 32, 2, 54, 0, 181, 0, 32, 2, 181, 0, 21, 2, 54, 0, 217, 0, 181, 0, 21, 2, 4, 2, 247, 1, 21, 2, 181, 0, 4, 2, 247, 1, 4, 2, 173, 1, 217, 0, 97, 1, 181, 0, 4, 2, 181, 0, 97, 1, 173, 1, 4, 2, 97, 1, 97, 1, 217, 0, 22, 1, 97, 1, 22, 1, 173, 1, 25, 0, 5, 0, 30, 0, 25, 0, 30, 0, 53, 0, 16, 3, 53, 0, 77, 0, 25, 0, 77, 0, 98, 0, 68, 0, 98, 0, 93, 0, 68, 0, 25, 0, 98, 0, 45, 0, 25, 0, 68, 0, 21, 0, 25, 0, 45, 0, 241, 1, 25, 0, 21, 0, 241, 1, 197, 1, 25, 0, 197, 1, 5, 0, 25, 0, 217, 1, 197, 1, 241, 1, 197, 1, 226, 1, 5, 0, 193, 1, 197, 1, 217, 1, 197, 1, 202, 1, 226, 1, 197, 1, 178, 1, 202, 1, 54, 3, 56, 3, 193, 1, 54, 3, 125, 1, 56, 3, 125, 1, 153, 1, 55, 3, 50, 3, 55, 3, 56, 3, 52, 3, 50, 3, 54, 3, 48, 3, 125, 1, 52, 3, 50, 3, 51, 3, 53, 3, 77, 1, 51, 3, 125, 1, 46, 3, 77, 1, 48, 3, 44, 3, 47, 3, 51, 3, 77, 1, 45, 3, 47, 3, 72, 1, 56, 1, 77, 1, 48, 3, 43, 3, 49, 3, 39, 3, 45, 3, 43, 3, 42, 3, 43, 3, 46, 3, 42, 3, 60, 2, 39, 3, 60, 2, 61, 3, 39, 3, 36, 3, 39, 3, 61, 3, 42, 3, 60, 3, 60, 2, 38, 3, 60, 3, 42, 3, 36, 3, 78, 2, 76, 2, 70, 2, 33, 1, 76, 2, 4, 0, 33, 0, 29, 0, 29, 0, 33, 0, 57, 0, 4, 0, 8, 0, 33, 0, 29, 0, 57, 0, 52, 0, 225, 1, 8, 0, 4, 0, 52, 0, 57, 0, 81, 0, 225, 1, 229, 1, 8, 0, 52, 0, 81, 0, 76, 0, 201, 1, 229, 1, 225, 1, 76, 0, 81, 0, 106, 0, 201, 1, 205, 1, 229, 1, 76, 0, 106, 0, 102, 0, 177, 1, 205, 1, 201, 1, 102, 0, 106, 0, 130, 0, 177, 1, 181, 1, 205, 1, 102, 0, 130, 0, 125, 0, 152, 1, 181, 1, 177, 1, 125, 0, 130, 0, 153, 0, 152, 1, 157, 1, 181, 1, 125, 0, 153, 0, 150, 0, 130, 1, 157, 1, 152, 1, 150, 0, 153, 0, 178, 0, 130, 1, 132, 1, 157, 1, 150, 0, 178, 0, 173, 0, 105, 1, 132, 1, 130, 1, 173, 0, 178, 0, 200, 0, 105, 1, 107, 1, 132, 1, 173, 0, 200, 0, 198, 0, 82, 1, 107, 1, 105, 1, 198, 0, 200, 0, 223, 0, 82, 1, 83, 1, 107, 1, 198, 0, 223, 0, 220, 0, 223, 0, 88, 2, 220, 0, 223, 0, 80, 2, 88, 2, 57, 1, 83, 1, 82, 1, 57, 1, 59, 1, 83, 1, 34, 1, 59, 1, 57, 1, 34, 1, 36, 1, 59, 1, 34, 1, 73, 2, 36, 1, 34, 1, 71, 2, 73, 2, 7, 0, 36, 0, 32, 0, 32, 0, 36, 0, 56, 0, 228, 1, 36, 0, 7, 0, 56, 0, 36, 0, 110, 0, 56, 0, 110, 0, 80, 0, 80, 0, 110, 0, 105, 0, 228, 1, 209, 1, 36, 0, 204, 1, 209, 1, 228, 1, 180, 1, 209, 1, 204, 1, 156, 1, 209, 1, 180, 1, 105, 0, 110, 0, 134, 0, 105, 0, 134, 0, 129, 0, 129, 0, 134, 0, 152, 0, 110, 0, 137, 0, 134, 0, 110, 0, 113, 0, 137, 0, 134, 0, 137, 0, 161, 0, 110, 0, 89, 0, 113, 0, 36, 0, 89, 0, 110, 0, 36, 0, 64, 0, 89, 0, 36, 0, 41, 0, 64, 0, 36, 0, 17, 0, 41, 0, 209, 1, 17, 0, 36, 0, 134, 0, 161, 0, 186, 0, 209, 1, 237, 1, 17, 0, 209, 1, 213, 1, 237, 1, 209, 1, 189, 1, 213, 1, 134, 0, 186, 0, 205, 0, 205, 0, 186, 0, 211, 0, 152, 0, 134, 0, 205, 0, 152, 0, 205, 0, 177, 0, 205, 0, 211, 0, 232, 0, 177, 0, 205, 0, 201, 0, 161, 1, 189, 1, 209, 1, 161, 1, 165, 1, 189, 1, 156, 1, 161, 1, 209, 1, 133, 1, 161, 1, 156, 1, 161, 1, 141, 1, 165, 1, 108, 1, 161, 1, 133, 1, 112, 1, 141, 1, 161, 1, 108, 1, 112, 1, 161, 1, 112, 1, 118, 1, 141, 1, 84, 1, 112, 1, 108, 1, 64, 1, 118, 1, 112, 1, 84, 1, 64, 1, 112, 1, 64, 1, 94, 1, 118, 1, 60, 1, 64, 1, 84, 1, 64, 1, 69, 1, 94, 1, 37, 1, 64, 1, 60, 1, 59, 3, 69, 1, 41, 3, 75, 2, 69, 2, 37, 1, 63, 2, 37, 1, 69, 2, 63, 2, 46, 1, 69, 1, 63, 2, 53, 2, 46, 1, 53, 2, 59, 2, 46, 1, 18, 0, 44, 0, 42, 0, 42, 0, 44, 0, 67, 0, 18, 0, 20, 0, 44, 0, 42, 0, 67, 0, 65, 0, 238, 1, 20, 0, 18, 0, 65, 0, 67, 0, 92, 0, 238, 1, 240, 1, 20, 0, 65, 0, 92, 0, 90, 0, 214, 1, 240, 1, 238, 1, 90, 0, 92, 0, 117, 0, 214, 1, 216, 1, 240, 1, 90, 0, 117, 0, 114, 0, 190, 1, 216, 1, 214, 1, 114, 0, 117, 0, 141, 0, 190, 1, 192, 1, 216, 1, 114, 0, 141, 0, 138, 0, 166, 1, 192, 1, 190, 1, 138, 0, 141, 0, 164, 0, 166, 1, 168, 1, 192, 1, 138, 0, 164, 0, 162, 0, 140, 1, 168, 1, 166, 1, 162, 0, 164, 0, 189, 0, 140, 1, 145, 1, 168, 1, 162, 0, 189, 0, 187, 0, 117, 1, 145, 1, 140, 1, 187, 0, 189, 0, 213, 0, 117, 1, 120, 1, 145, 1, 187, 0, 213, 0, 210, 0, 93, 1, 120, 1, 117, 1, 210, 0, 213, 0, 236, 0, 93, 1, 96, 1, 120, 1, 210, 0, 236, 0, 231, 0, 236, 0, 45, 2, 231, 0, 236, 0, 43, 2, 45, 2, 68, 1, 96, 1, 93, 1, 68, 1, 73, 1, 96, 1, 45, 1, 73, 1, 68, 1, 45, 1, 50, 1, 73, 1, 45, 1, 55, 2, 50, 1, 45, 1, 57, 2, 55, 2, 19, 3, 17, 3, 21, 3, 18, 3, 19, 3, 23, 3, 20, 3, 22, 3, 25, 3, 20, 3, 25, 3, 151, 0, 20, 3, 151, 0, 29, 3, 26, 3, 20, 3, 29, 3, 24, 3, 20, 3, 26, 3, 26, 3, 29, 3, 27, 3, 169, 0, 151, 0, 30, 3, 169, 0, 30, 3, 195, 0, 190, 0, 169, 0, 195, 0, 28, 3, 169, 0, 31, 3, 31, 3, 195, 0, 33, 3, 174, 0, 197, 0, 195, 0, 195, 0, 57, 3, 33, 3, 57, 3, 35, 3, 33, 3, 195, 0, 90, 2, 57, 3, 195, 0, 92, 2, 90, 2, 195, 0, 85, 2, 92, 2, 219, 0, 87, 2, 85, 2, 35, 3, 38, 2, 40, 2, 40, 2, 42, 2, 235, 0, 62, 3, 195, 0, 32, 3, 62, 3, 32, 3, 34, 3, 201, 0, 48, 2, 224, 0, 201, 0, 205, 0, 48, 2, 48, 2, 83, 2, 224, 0, 224, 0, 83, 2, 81, 2, 205, 0, 232, 0, 48, 2, 50, 2, 48, 2, 232, 0, 46, 2, 50, 2, 232, 0, 64, 2, 49, 1, 54, 2, 66, 2, 49, 1, 64, 2, 37, 3, 58, 3, 40, 3, 160, 2, 133, 2, 120, 2, 172, 2, 133, 2, 160, 2, 120, 2, 163, 2, 160, 2, 128, 2, 133, 2, 172, 2, 163, 2, 120, 2, 130, 2, 130, 2, 120, 2, 118, 2, 163, 2, 130, 2, 107, 2, 146, 2, 107, 2, 130, 2, 146, 2, 109, 2, 107, 2, 128, 2, 97, 2, 133, 2, 133, 2, 97, 2, 99, 2, 126, 2, 97, 2, 128, 2, 104, 2, 109, 2, 146, 2, 104, 2, 146, 2, 176, 2, 104, 2, 123, 2, 109, 2, 104, 2, 125, 2, 123, 2, 104, 2, 137, 2, 125, 2, 126, 2, 183, 2, 97, 2, 97, 2, 183, 2, 95, 2, 164, 2, 183, 2, 126, 2, 112, 2, 183, 2, 164, 2, 110, 2, 183, 2, 112, 2, 102, 2, 137, 2, 104, 2, 102, 2, 104, 2, 100, 2, 102, 2, 139, 2, 137, 2, 152, 2, 139, 2, 102, 2, 152, 2, 102, 2, 134, 2, 152, 2, 141, 2, 139, 2, 152, 2, 159, 2, 141, 2, 152, 2, 149, 2, 159, 2, 170, 2, 149, 2, 152, 2, 170, 2, 152, 2, 168, 2, 170, 2, 151, 2, 149, 2, 115, 2, 151, 2, 170, 2, 115, 2, 170, 2, 174, 2, 115, 2, 166, 2, 151, 2, 115, 2, 178, 2, 166, 2, 115, 2, 186, 2, 178, 2, 186, 2, 115, 2, 185, 2, 185, 2, 115, 2, 117, 2, 186, 2, 185, 2, 180, 2, 180, 2, 185, 2, 154, 2, 154, 2, 185, 2, 156, 2, 156, 2, 185, 2, 143, 2, 143, 2, 185, 2, 189, 2, 156, 2, 143, 2, 110, 2, 110, 2, 143, 2, 183, 2, 183, 2, 143, 2, 145, 2), 0.0373354, PackedByteArray(147, 2, 39, 2, 91, 2, 147, 2, 41, 2, 39, 2, 147, 2, 44, 2, 41, 2, 44, 2, 147, 2, 47, 2, 250, 2, 9, 3, 147, 2, 91, 2, 105, 2, 147, 2, 91, 2, 101, 2, 105, 2, 153, 2, 101, 2, 91, 2, 153, 2, 103, 2, 101, 2, 93, 2, 153, 2, 91, 2, 86, 2, 153, 2, 93, 2, 89, 2, 153, 2, 86, 2, 153, 2, 89, 2, 82, 2, 147, 2, 121, 2, 132, 2, 94, 2, 147, 2, 132, 2, 144, 2, 94, 2, 182, 2, 144, 2, 147, 2, 94, 2, 144, 2, 188, 2, 184, 2, 114, 2, 144, 2, 184, 2, 184, 2, 116, 2, 114, 2, 2, 1, 144, 2, 114, 2, 2, 1, 147, 2, 144, 2, 114, 2, 175, 2, 171, 2, 153, 2, 114, 2, 171, 2, 171, 2, 169, 2, 153, 2, 2, 1, 114, 2, 153, 2, 74, 2, 153, 2, 68, 2, 72, 2, 153, 2, 74, 2, 153, 2, 72, 2, 2, 1, 68, 2, 153, 2, 62, 2, 147, 2, 62, 2, 153, 2, 2, 1, 72, 2, 77, 2, 147, 2, 52, 2, 62, 2, 147, 2, 58, 2, 52, 2, 147, 2, 56, 2, 58, 2, 56, 2, 2, 1, 65, 2, 2, 1, 77, 2, 79, 2, 65, 2, 2, 1, 67, 2, 2, 1, 79, 2, 61, 2, 67, 2, 2, 1, 61, 2, 147, 2, 153, 2, 116, 0, 153, 2, 82, 2, 116, 0, 47, 2, 147, 2, 116, 0, 116, 0, 82, 2, 84, 2, 47, 2, 116, 0, 51, 2, 116, 0, 84, 2, 51, 2, 161, 2, 108, 2, 129, 2, 108, 2, 122, 2, 124, 2, 129, 2, 108, 2, 54, 0, 124, 2, 54, 0, 108, 2, 138, 2, 54, 0, 124, 2, 124, 2, 136, 2, 138, 2, 129, 2, 54, 0, 247, 1, 113, 2, 129, 2, 247, 1, 138, 2, 150, 2, 54, 0, 54, 0, 150, 2, 247, 1, 138, 2, 140, 2, 150, 2, 157, 2, 113, 2, 247, 1, 157, 2, 111, 2, 113, 2, 157, 2, 247, 1, 179, 2, 179, 2, 247, 1, 150, 2, 150, 2, 167, 2, 179, 2, 225, 1, 57, 0, 29, 0, 29, 0, 57, 0, 52, 0, 52, 0, 57, 0, 76, 0, 76, 0, 57, 0, 102, 0, 225, 1, 229, 1, 57, 0, 102, 0, 57, 0, 130, 0, 201, 1, 229, 1, 225, 1, 102, 0, 130, 0, 125, 0, 201, 1, 157, 1, 229, 1, 125, 0, 130, 0, 223, 0, 177, 1, 157, 1, 201, 1, 152, 1, 157, 1, 177, 1, 130, 1, 157, 1, 152, 1, 105, 1, 157, 1, 130, 1, 105, 1, 83, 1, 157, 1, 82, 1, 83, 1, 105, 1, 57, 1, 83, 1, 82, 1, 57, 1, 59, 1, 83, 1, 34, 1, 59, 1, 57, 1, 34, 1, 73, 2, 59, 1, 34, 1, 71, 2, 73, 2, 125, 0, 223, 0, 150, 0, 150, 0, 223, 0, 173, 0, 173, 0, 223, 0, 198, 0, 198, 0, 223, 0, 220, 0, 223, 0, 88, 2, 220, 0, 223, 0, 80, 2, 88, 2, 56, 0, 237, 1, 41, 0, 56, 0, 41, 0, 64, 0, 56, 0, 64, 0, 89, 0, 56, 0, 89, 0, 113, 0, 56, 0, 113, 0, 137, 0, 56, 0, 137, 0, 129, 0, 156, 1, 237, 1, 56, 0, 228, 1, 156, 1, 56, 0, 156, 1, 213, 1, 237, 1, 156, 1, 189, 1, 213, 1, 156, 1, 165, 1, 189, 1, 156, 1, 141, 1, 165, 1, 84, 1, 141, 1, 156, 1, 84, 1, 118, 1, 141, 1, 69, 1, 118, 1, 84, 1, 69, 1, 94, 1, 118, 1, 60, 1, 69, 1, 84, 1, 60, 1, 63, 2, 69, 1, 63, 2, 60, 1, 69, 2, 10, 3, 46, 1, 69, 1, 63, 2, 53, 2, 46, 1, 53, 2, 59, 2, 46, 1, 238, 1, 44, 0, 42, 0, 42, 0, 44, 0, 67, 0, 238, 1, 20, 0, 44, 0, 42, 0, 67, 0, 65, 0, 238, 1, 216, 1, 20, 0, 65, 0, 67, 0, 92, 0, 214, 1, 216, 1, 238, 1, 65, 0, 92, 0, 90, 0, 190, 1, 216, 1, 214, 1, 90, 0, 92, 0, 117, 0, 190, 1, 168, 1, 216, 1, 90, 0, 117, 0, 114, 0, 166, 1, 168, 1, 190, 1, 114, 0, 117, 0, 141, 0, 140, 1, 168, 1, 166, 1, 114, 0, 141, 0, 138, 0, 140, 1, 120, 1, 168, 1, 138, 0, 141, 0, 164, 0, 117, 1, 120, 1, 140, 1, 138, 0, 164, 0, 162, 0, 93, 1, 120, 1, 117, 1, 162, 0, 164, 0, 187, 0, 93, 1, 73, 1, 120, 1, 187, 0, 164, 0, 213, 0, 68, 1, 73, 1, 93, 1, 187, 0, 213, 0, 210, 0, 45, 1, 73, 1, 68, 1, 210, 0, 213, 0, 236, 0, 45, 1, 50, 1, 73, 1, 45, 1, 55, 2, 50, 1, 45, 1, 57, 2, 55, 2, 210, 0, 236, 0, 231, 0, 236, 0, 45, 2, 231, 0, 236, 0, 43, 2, 45, 2, 21, 0, 30, 0, 45, 0, 217, 1, 30, 0, 21, 0, 217, 1, 226, 1, 30, 0, 217, 1, 202, 1, 226, 1, 217, 1, 178, 1, 202, 1, 45, 0, 30, 0, 72, 0, 30, 0, 53, 0, 72, 0, 72, 0, 53, 0, 77, 0, 45, 0, 72, 0, 68, 0, 68, 0, 72, 0, 93, 0, 72, 0, 126, 0, 151, 0, 238, 2, 103, 0, 126, 0, 245, 2, 151, 0, 174, 0, 118, 0, 238, 2, 244, 2, 118, 0, 244, 2, 243, 2, 243, 2, 244, 2, 245, 2, 245, 2, 174, 0, 246, 2, 245, 2, 246, 2, 212, 0, 246, 2, 8, 3, 212, 0, 8, 3, 249, 2, 247, 2, 15, 3, 246, 2, 248, 2, 246, 2, 15, 3, 92, 2, 246, 2, 92, 2, 90, 2, 197, 0, 90, 2, 38, 2, 235, 0, 38, 2, 40, 2, 40, 2, 42, 2, 235, 0, 237, 2, 239, 2, 241, 2, 240, 2, 237, 2, 242, 2, 129, 0, 137, 0, 224, 0, 137, 0, 161, 0, 186, 0, 137, 0, 186, 0, 224, 0, 224, 0, 186, 0, 211, 0, 224, 0, 211, 0, 232, 0, 224, 0, 232, 0, 50, 2, 46, 2, 50, 2, 232, 0, 50, 2, 83, 2, 224, 0, 224, 0, 83, 2, 81, 2, 219, 0, 87, 2, 85, 2, 70, 2, 33, 1, 76, 2, 33, 1, 78, 2, 76, 2, 13, 3, 12, 3, 254, 2, 64, 2, 49, 1, 54, 2, 66, 2, 49, 1, 64, 2, 60, 2, 14, 3, 253, 2, 251, 2, 253, 2, 14, 3, 255, 2, 60, 2, 253, 2, 255, 2, 11, 3, 60, 2, 252, 2, 11, 3, 255, 2, 253, 2, 1, 3, 255, 2, 255, 2, 1, 3, 104, 1, 72, 1, 104, 1, 129, 1, 119, 1, 72, 1, 153, 1, 0, 3, 3, 3, 153, 1, 169, 1, 153, 1, 217, 1, 2, 3, 4, 3, 169, 1, 5, 3, 6, 3, 7, 3, 160, 2, 133, 2, 120, 2, 128, 2, 133, 2, 160, 2, 120, 2, 109, 2, 160, 2, 128, 2, 95, 2, 133, 2, 109, 2, 120, 2, 146, 2, 128, 2, 183, 2, 95, 2, 112, 2, 183, 2, 128, 2, 110, 2, 183, 2, 112, 2, 110, 2, 145, 2, 183, 2, 104, 2, 109, 2, 146, 2, 156, 2, 145, 2, 110, 2, 104, 2, 123, 2, 109, 2, 104, 2, 125, 2, 123, 2, 104, 2, 137, 2, 125, 2, 102, 2, 137, 2, 104, 2, 102, 2, 104, 2, 100, 2, 102, 2, 139, 2, 137, 2, 152, 2, 139, 2, 102, 2, 152, 2, 141, 2, 139, 2, 152, 2, 151, 2, 141, 2, 170, 2, 151, 2, 152, 2, 170, 2, 152, 2, 168, 2, 115, 2, 151, 2, 170, 2, 115, 2, 170, 2, 174, 2, 115, 2, 166, 2, 151, 2, 115, 2, 178, 2, 166, 2, 115, 2, 156, 2, 178, 2, 156, 2, 115, 2, 185, 2, 185, 2, 115, 2, 117, 2, 156, 2, 185, 2, 145, 2, 145, 2, 185, 2, 189, 2), 0.0615714, PackedByteArray(47, 2, 147, 2, 51, 2, 44, 2, 147, 2, 47, 2, 147, 2, 44, 2, 41, 2, 41, 2, 105, 2, 147, 2, 41, 2, 103, 2, 105, 2, 153, 2, 103, 2, 41, 2, 147, 2, 153, 2, 51, 2, 86, 2, 153, 2, 41, 2, 153, 2, 82, 2, 51, 2, 89, 2, 153, 2, 86, 2, 153, 2, 89, 2, 82, 2, 147, 2, 121, 2, 132, 2, 94, 2, 147, 2, 132, 2, 67, 2, 147, 2, 94, 2, 67, 2, 94, 2, 182, 2, 67, 2, 182, 2, 114, 2, 114, 2, 77, 2, 67, 2, 114, 2, 72, 2, 77, 2, 153, 2, 72, 2, 114, 2, 153, 2, 114, 2, 169, 2, 72, 2, 153, 2, 74, 2, 74, 2, 153, 2, 52, 2, 147, 2, 52, 2, 153, 2, 147, 2, 58, 2, 52, 2, 147, 2, 56, 2, 58, 2, 222, 2, 220, 2, 232, 2, 161, 2, 108, 2, 129, 2, 108, 2, 122, 2, 124, 2, 179, 2, 129, 2, 124, 2, 227, 2, 129, 2, 179, 2, 235, 2, 228, 2, 231, 2, 231, 2, 233, 2, 235, 2, 225, 1, 130, 0, 102, 0, 102, 0, 130, 0, 150, 0, 150, 0, 130, 0, 173, 0, 130, 0, 88, 2, 173, 0, 130, 0, 80, 2, 88, 2, 225, 1, 59, 1, 130, 0, 152, 1, 59, 1, 225, 1, 57, 1, 59, 1, 152, 1, 34, 1, 59, 1, 57, 1, 34, 1, 73, 2, 59, 1, 34, 1, 71, 2, 73, 2, 42, 0, 44, 0, 92, 0, 42, 0, 92, 0, 141, 0, 42, 0, 141, 0, 138, 0, 138, 0, 141, 0, 164, 0, 138, 0, 164, 0, 236, 0, 138, 0, 236, 0, 231, 0, 236, 0, 45, 2, 231, 0, 236, 0, 43, 2, 45, 2, 190, 1, 44, 0, 42, 0, 190, 1, 192, 1, 44, 0, 190, 1, 168, 1, 192, 1, 190, 1, 120, 1, 168, 1, 68, 1, 120, 1, 190, 1, 68, 1, 73, 1, 120, 1, 68, 1, 50, 1, 73, 1, 68, 1, 55, 2, 50, 1, 68, 1, 57, 2, 55, 2, 200, 2, 217, 2, 201, 2, 129, 0, 41, 0, 137, 0, 129, 0, 137, 0, 232, 0, 60, 1, 41, 0, 129, 0, 60, 1, 189, 1, 41, 0, 60, 1, 69, 1, 189, 1, 60, 1, 53, 2, 69, 1, 129, 0, 232, 0, 50, 2, 46, 2, 50, 2, 232, 0, 129, 0, 50, 2, 81, 2, 93, 0, 226, 1, 142, 0, 142, 0, 226, 1, 151, 0, 226, 1, 103, 0, 151, 0, 142, 0, 202, 2, 203, 2, 203, 2, 202, 2, 204, 2, 203, 2, 204, 2, 205, 2, 204, 2, 85, 2, 218, 2, 174, 0, 87, 2, 85, 2, 174, 0, 40, 2, 235, 0, 40, 2, 42, 2, 235, 0, 45, 0, 193, 1, 226, 1, 216, 2, 226, 1, 193, 1, 169, 1, 153, 1, 226, 1, 119, 1, 72, 1, 169, 1, 70, 2, 33, 1, 76, 2, 223, 2, 219, 2, 210, 2, 219, 2, 221, 2, 211, 2, 66, 2, 49, 1, 54, 2, 207, 2, 66, 2, 212, 2, 212, 2, 66, 2, 208, 2, 66, 2, 224, 2, 208, 2, 206, 2, 208, 2, 224, 2, 212, 2, 214, 2, 215, 2, 213, 2, 209, 2, 214, 2, 230, 2, 225, 2, 229, 2, 160, 2, 133, 2, 120, 2, 128, 2, 133, 2, 160, 2, 120, 2, 109, 2, 160, 2, 128, 2, 95, 2, 133, 2, 109, 2, 120, 2, 146, 2, 128, 2, 183, 2, 95, 2, 112, 2, 183, 2, 128, 2, 234, 2, 183, 2, 226, 2, 104, 2, 109, 2, 146, 2, 104, 2, 123, 2, 109, 2, 104, 2, 125, 2, 123, 2, 104, 2, 139, 2, 125, 2, 102, 2, 139, 2, 104, 2, 152, 2, 139, 2, 102, 2, 152, 2, 141, 2, 139, 2, 152, 2, 151, 2, 141, 2, 168, 2, 151, 2, 152, 2, 115, 2, 151, 2, 168, 2, 115, 2, 178, 2, 151, 2, 234, 2, 115, 2, 236, 2, 138, 2, 140, 2, 150, 2), 0.0738546, PackedByteArray(47, 2, 74, 2, 51, 2, 74, 2, 82, 2, 51, 2, 47, 2, 98, 2, 74, 2, 44, 2, 98, 2, 47, 2, 98, 2, 44, 2, 41, 2, 98, 2, 52, 2, 74, 2, 98, 2, 58, 2, 52, 2, 98, 2, 56, 2, 58, 2, 77, 2, 56, 2, 98, 2, 41, 2, 103, 2, 98, 2, 77, 2, 98, 2, 114, 2, 114, 2, 72, 2, 77, 2, 74, 2, 72, 2, 114, 2, 153, 2, 103, 2, 41, 2, 74, 2, 114, 2, 153, 2, 153, 2, 82, 2, 74, 2, 153, 2, 114, 2, 175, 2, 153, 2, 89, 2, 82, 2, 89, 2, 153, 2, 41, 2, 138, 0, 120, 1, 141, 0, 141, 0, 45, 2, 138, 0, 141, 0, 43, 2, 45, 2, 68, 1, 120, 1, 138, 0, 68, 1, 73, 1, 120, 1, 68, 1, 50, 1, 73, 1, 68, 1, 55, 2, 50, 1, 68, 1, 57, 2, 55, 2, 119, 1, 53, 0, 190, 2, 119, 1, 153, 1, 53, 0, 72, 1, 153, 1, 119, 1, 53, 0, 87, 2, 40, 2, 53, 0, 40, 2, 142, 0, 40, 2, 42, 2, 142, 0, 56, 0, 137, 0, 50, 2, 56, 0, 50, 2, 81, 2, 46, 2, 50, 2, 137, 0, 156, 1, 137, 0, 56, 0, 156, 1, 69, 1, 137, 0, 156, 1, 53, 2, 69, 1, 75, 2, 53, 2, 156, 1, 57, 0, 88, 2, 52, 0, 57, 0, 80, 2, 88, 2, 52, 0, 157, 1, 57, 0, 152, 1, 157, 1, 52, 0, 34, 1, 157, 1, 152, 1, 34, 1, 73, 2, 157, 1, 34, 1, 71, 2, 73, 2, 70, 2, 33, 1, 76, 2, 76, 2, 49, 1, 54, 2, 49, 1, 199, 2, 194, 2, 194, 2, 199, 2, 191, 2, 197, 2, 198, 2, 193, 2, 195, 2, 192, 2, 196, 2, 102, 2, 151, 2, 99, 2, 151, 2, 115, 2, 99, 2, 152, 2, 151, 2, 102, 2, 115, 2, 151, 2, 174, 2, 174, 2, 151, 2, 152, 2)], +"material": SubResource("StandardMaterial3D_ea5pe"), +"primitive": 3, +"vertex_count": 831, +"vertex_data": PackedByteArray(70, 122, 184, 61, 34, 123, 193, 60, 0, 0, 0, 128, 191, 220, 191, 92, 178, 92, 156, 145, 0, 0, 0, 0, 188, 198, 45, 61, 204, 98, 109, 189, 208, 26, 0, 0, 166, 241, 17, 201, 0, 0, 0, 0, 227, 1, 229, 60, 155, 213, 84, 189, 123, 46, 0, 0, 202, 243, 148, 201, 171, 151, 183, 61, 158, 211, 194, 60, 0, 155, 192, 59, 62, 208, 128, 97, 189, 92, 158, 145, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 60, 255, 127, 255, 127, 125, 92, 192, 145, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 60, 181, 201, 252, 99, 191, 92, 163, 145, 242, 109, 126, 60, 57, 98, 109, 61, 204, 98, 109, 189, 135, 249, 174, 25, 31, 205, 49, 208, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 60, 73, 54, 2, 156, 123, 92, 158, 145, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 60, 255, 127, 255, 127, 123, 92, 193, 145, 143, 194, 117, 60, 188, 198, 45, 61, 21, 76, 101, 189, 58, 233, 60, 22, 243, 209, 151, 208, 0, 0, 0, 0, 57, 98, 109, 61, 174, 71, 97, 189, 255, 127, 212, 135, 76, 169, 44, 238, 213, 23, 176, 61, 24, 58, 206, 60, 0, 155, 192, 59, 241, 47, 107, 158, 155, 92, 156, 145, 166, 87, 92, 60, 227, 1, 229, 60, 14, 149, 77, 189, 85, 215, 116, 18, 166, 218, 238, 207, 58, 53, 175, 61, 148, 146, 207, 60, 217, 185, 180, 33, 63, 35, 63, 163, 185, 92, 158, 145, 0, 0, 0, 0, 178, 19, 51, 61, 144, 154, 89, 189, 255, 127, 207, 154, 189, 182, 84, 238, 213, 23, 176, 61, 24, 58, 206, 60, 0, 155, 192, 187, 108, 30, 241, 175, 168, 92, 150, 145, 167, 232, 51, 60, 168, 107, 126, 60, 113, 219, 39, 189, 241, 198, 254, 14, 128, 228, 127, 206, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 188, 3, 28, 73, 182, 159, 92, 140, 145, 24, 105, 178, 61, 60, 180, 202, 60, 51, 210, 27, 188, 255, 255, 255, 255, 3, 93, 125, 145, 0, 0, 0, 0, 96, 44, 156, 60, 9, 76, 31, 189, 255, 127, 130, 191, 4, 207, 155, 240, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 188, 255, 255, 255, 255, 1, 93, 126, 145, 104, 70, 181, 61, 122, 89, 198, 60, 51, 210, 27, 188, 251, 227, 181, 73, 196, 92, 161, 145, 242, 109, 254, 59, 240, 100, 196, 59, 204, 98, 237, 188, 175, 181, 88, 11, 145, 236, 33, 205, 171, 151, 183, 61, 158, 211, 194, 60, 0, 155, 192, 187, 127, 225, 62, 80, 187, 92, 159, 145, 208, 179, 131, 59, 0, 0, 19, 181, 143, 194, 117, 188, 185, 154, 165, 5, 190, 247, 75, 201, 112, 62, 188, 61, 250, 36, 252, 60, 0, 0, 0, 128, 123, 240, 124, 112, 120, 112, 192, 135, 143, 194, 245, 60, 57, 98, 109, 61, 155, 213, 84, 189, 42, 250, 183, 44, 110, 182, 200, 214, 107, 73, 187, 61, 164, 94, 252, 60, 0, 155, 192, 59, 87, 223, 221, 114, 81, 112, 180, 135, 204, 98, 237, 60, 188, 198, 45, 61, 14, 149, 77, 189, 51, 235, 61, 39, 139, 188, 104, 215, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 60, 255, 127, 255, 127, 224, 112, 143, 135, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 60, 125, 214, 221, 115, 31, 112, 211, 135, 155, 213, 212, 60, 227, 1, 229, 60, 235, 81, 56, 189, 76, 218, 13, 33, 95, 199, 144, 214, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 60, 72, 41, 215, 139, 44, 113, 18, 136, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 60, 255, 127, 255, 127, 164, 111, 45, 136, 148, 45, 179, 61, 47, 71, 254, 60, 0, 155, 192, 59, 3, 33, 53, 141, 150, 112, 15, 136, 30, 58, 105, 60, 57, 98, 109, 61, 144, 154, 89, 189, 80, 102, 119, 134, 168, 143, 122, 250, 142, 56, 178, 61, 218, 128, 254, 60, 217, 185, 180, 33, 154, 15, 153, 143, 70, 112, 202, 135, 79, 199, 173, 60, 168, 107, 126, 60, 35, 127, 22, 189, 95, 202, 56, 27, 171, 212, 61, 212, 173, 71, 97, 60, 178, 19, 51, 61, 104, 48, 82, 189, 194, 105, 196, 150, 172, 167, 113, 245, 148, 45, 179, 61, 47, 71, 254, 60, 0, 155, 192, 187, 53, 13, 2, 161, 204, 111, 175, 135, 143, 194, 117, 60, 240, 100, 196, 59, 155, 213, 212, 188, 29, 185, 231, 20, 23, 226, 52, 209, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 188, 215, 11, 71, 169, 219, 111, 106, 135, 12, 175, 181, 61, 55, 176, 253, 60, 51, 210, 27, 188, 255, 255, 0, 0, 157, 111, 48, 136, 242, 109, 254, 59, 0, 0, 19, 181, 166, 87, 92, 188, 26, 157, 167, 10, 223, 242, 71, 203, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 188, 255, 255, 0, 0, 235, 112, 137, 135, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 188, 220, 243, 126, 86, 90, 112, 240, 135, 4, 251, 73, 60, 196, 124, 249, 60, 77, 115, 60, 189, 138, 109, 169, 168, 244, 184, 188, 245, 107, 73, 187, 61, 164, 94, 252, 60, 0, 155, 192, 187, 220, 242, 88, 95, 148, 112, 214, 135, 76, 152, 188, 61, 76, 206, 27, 61, 0, 0, 0, 128, 160, 244, 94, 139, 104, 139, 174, 133, 153, 234, 36, 60, 96, 44, 156, 60, 125, 222, 25, 189, 1, 113, 13, 185, 199, 201, 92, 243, 80, 199, 45, 61, 57, 98, 109, 61, 80, 199, 45, 189, 91, 250, 45, 61, 220, 164, 227, 221, 144, 161, 187, 61, 194, 89, 27, 61, 0, 155, 192, 59, 243, 225, 147, 137, 241, 139, 185, 133, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 60, 255, 127, 255, 127, 102, 140, 51, 134, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 60, 231, 216, 70, 136, 133, 139, 129, 133, 30, 58, 233, 59, 84, 36, 41, 60, 144, 154, 217, 188, 167, 116, 79, 202, 182, 216, 126, 242, 113, 219, 39, 61, 188, 198, 45, 61, 113, 219, 39, 189, 204, 235, 230, 53, 251, 172, 104, 222, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 60, 140, 39, 40, 119, 27, 140, 30, 135, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 60, 255, 127, 255, 127, 14, 138, 7, 133, 82, 116, 113, 59, 72, 61, 158, 59, 174, 71, 97, 188, 27, 121, 97, 223, 168, 233, 103, 240, 47, 119, 179, 61, 106, 126, 23, 61, 0, 155, 192, 59, 39, 30, 172, 118, 75, 139, 99, 134, 36, 127, 22, 61, 227, 1, 229, 60, 36, 127, 22, 189, 55, 219, 155, 45, 116, 186, 161, 220, 114, 128, 178, 61, 224, 9, 23, 61, 217, 185, 180, 33, 48, 11, 207, 116, 63, 139, 150, 133, 47, 119, 179, 61, 106, 126, 23, 61, 0, 155, 192, 187, 83, 9, 216, 97, 222, 140, 166, 133, 142, 194, 245, 60, 168, 107, 126, 60, 140, 194, 245, 188, 114, 203, 185, 37, 245, 201, 88, 217, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 188, 215, 8, 115, 88, 83, 142, 15, 134, 37, 253, 181, 61, 133, 175, 24, 61, 51, 210, 27, 188, 255, 255, 0, 0, 27, 138, 13, 133, 80, 199, 173, 60, 240, 100, 196, 59, 80, 199, 173, 188, 54, 186, 27, 29, 82, 218, 224, 212, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 188, 255, 255, 0, 0, 153, 140, 76, 134, 154, 27, 185, 61, 167, 40, 26, 61, 51, 210, 27, 188, 184, 247, 23, 167, 0, 139, 184, 133, 167, 232, 51, 60, 0, 0, 19, 181, 167, 232, 51, 188, 228, 157, 242, 14, 18, 239, 14, 205, 144, 161, 187, 61, 194, 89, 27, 61, 0, 155, 192, 187, 107, 246, 10, 158, 113, 139, 238, 133, 156, 213, 84, 61, 57, 98, 109, 61, 144, 194, 245, 188, 42, 250, 115, 77, 14, 150, 240, 230, 188, 129, 185, 61, 64, 234, 55, 61, 0, 0, 0, 128, 6, 222, 248, 161, 248, 161, 251, 144, 13, 149, 77, 61, 188, 198, 45, 61, 202, 98, 237, 188, 51, 235, 246, 67, 143, 161, 158, 230, 24, 154, 184, 61, 72, 236, 54, 61, 0, 155, 192, 59, 116, 208, 24, 157, 120, 162, 248, 144, 235, 81, 56, 61, 227, 1, 229, 60, 154, 213, 212, 188, 76, 218, 63, 57, 106, 178, 176, 226, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 255, 127, 255, 127, 253, 162, 126, 145, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 194, 201, 46, 154, 32, 162, 196, 144, 174, 71, 225, 60, 57, 98, 109, 61, 35, 25, 67, 189, 72, 83, 212, 133, 214, 99, 115, 249, 144, 154, 217, 60, 178, 19, 51, 61, 76, 115, 60, 189, 194, 88, 203, 148, 180, 158, 227, 254, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 60, 185, 54, 68, 101, 61, 162, 57, 146, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 60, 255, 127, 255, 127, 232, 160, 115, 144, 35, 25, 67, 61, 196, 124, 249, 60, 0, 0, 128, 176, 123, 46, 123, 174, 34, 227, 196, 247, 162, 239, 176, 61, 155, 132, 46, 61, 0, 155, 192, 59, 152, 47, 51, 99, 155, 161, 152, 145, 35, 127, 22, 61, 168, 107, 126, 60, 77, 199, 173, 188, 95, 202, 38, 47, 3, 196, 206, 221, 254, 7, 176, 61, 163, 134, 45, 61, 217, 185, 180, 33, 205, 33, 50, 94, 206, 161, 229, 144, 36, 25, 195, 60, 196, 124, 249, 60, 194, 245, 40, 189, 241, 94, 177, 165, 226, 181, 249, 249, 162, 239, 176, 61, 155, 132, 46, 61, 0, 155, 192, 187, 204, 28, 103, 80, 55, 163, 205, 144, 156, 213, 212, 60, 240, 100, 196, 59, 144, 194, 117, 188, 29, 185, 53, 36, 123, 213, 237, 215, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 188, 186, 26, 69, 73, 134, 164, 30, 145, 16, 78, 179, 61, 130, 29, 49, 61, 51, 210, 27, 188, 255, 255, 0, 0, 233, 160, 116, 144, 9, 76, 159, 60, 96, 44, 156, 60, 139, 244, 9, 189, 198, 100, 159, 181, 242, 199, 74, 246, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 255, 255, 0, 0, 38, 163, 146, 145, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 208, 229, 60, 182, 138, 161, 17, 145, 166, 87, 92, 60, 0, 0, 19, 181, 240, 109, 254, 187, 26, 157, 116, 18, 128, 236, 133, 206, 24, 154, 184, 61, 72, 236, 54, 61, 0, 155, 192, 187, 229, 226, 138, 175, 241, 161, 60, 145, 174, 71, 97, 60, 84, 36, 41, 60, 35, 25, 195, 188, 23, 107, 225, 198, 77, 216, 115, 243, 204, 98, 109, 61, 57, 98, 109, 61, 243, 109, 126, 188, 135, 249, 216, 95, 214, 138, 65, 243, 158, 48, 179, 61, 246, 123, 80, 61, 0, 0, 0, 128, 236, 202, 17, 181, 12, 181, 140, 154, 30, 58, 233, 59, 72, 61, 158, 59, 3, 251, 73, 188, 16, 115, 168, 220, 152, 233, 173, 240, 221, 103, 178, 61, 222, 5, 79, 61, 0, 155, 192, 59, 137, 192, 189, 173, 76, 181, 129, 154, 20, 76, 101, 61, 188, 198, 45, 61, 140, 194, 117, 188, 58, 233, 254, 82, 132, 155, 146, 238, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 255, 127, 255, 127, 161, 181, 208, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 93, 187, 143, 169, 239, 180, 85, 154, 14, 149, 77, 61, 227, 1, 229, 60, 165, 87, 92, 188, 85, 215, 225, 68, 29, 176, 151, 232, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 60, 17, 69, 254, 85, 248, 180, 123, 155, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 60, 255, 127, 255, 127, 251, 179, 253, 153, 14, 195, 171, 61, 128, 164, 66, 61, 0, 155, 192, 59, 129, 63, 148, 82, 138, 180, 249, 154, 112, 219, 39, 61, 168, 107, 126, 60, 164, 232, 51, 188, 241, 198, 243, 55, 52, 194, 20, 225, 204, 98, 237, 60, 240, 100, 196, 59, 243, 109, 254, 187, 175, 181, 87, 42, 155, 211, 22, 218, 76, 250, 170, 61, 104, 46, 65, 61, 217, 185, 180, 33, 238, 52, 17, 75, 232, 180, 122, 154, 143, 194, 117, 60, 0, 0, 19, 181, 206, 179, 131, 187, 185, 154, 19, 21, 64, 235, 140, 207, 14, 195, 171, 61, 128, 164, 66, 61, 0, 155, 192, 187, 106, 45, 125, 64, 235, 181, 70, 154, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 188, 1, 42, 238, 58, 2, 183, 122, 154, 162, 208, 173, 61, 227, 119, 70, 61, 51, 210, 27, 188, 254, 255, 255, 255, 247, 179, 251, 153, 143, 194, 117, 61, 57, 98, 109, 61, 0, 0, 128, 176, 41, 248, 42, 120, 81, 145, 99, 252, 203, 98, 109, 61, 188, 198, 45, 61, 0, 0, 0, 49, 46, 229, 47, 101, 185, 162, 163, 243, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 254, 255, 255, 255, 190, 181, 223, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 110, 214, 161, 196, 168, 180, 128, 154, 221, 103, 178, 61, 222, 5, 79, 61, 0, 155, 192, 187, 64, 210, 116, 191, 254, 180, 175, 154, 9, 76, 31, 61, 57, 98, 109, 61, 8, 76, 31, 189, 209, 66, 163, 133, 139, 78, 113, 245, 39, 19, 170, 61, 204, 214, 99, 61, 0, 0, 0, 128, 67, 184, 186, 199, 175, 199, 225, 163, 155, 213, 84, 61, 227, 1, 229, 60, 0, 0, 128, 48, 131, 209, 131, 81, 230, 182, 39, 235, 125, 222, 25, 61, 178, 19, 51, 61, 124, 222, 25, 189, 25, 74, 50, 148, 69, 80, 149, 251, 247, 118, 169, 61, 19, 2, 98, 61, 0, 155, 192, 59, 80, 176, 157, 189, 156, 199, 228, 163, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 60, 255, 127, 255, 127, 95, 199, 175, 163, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 60, 80, 172, 23, 184, 43, 199, 200, 163, 78, 199, 45, 61, 168, 107, 126, 60, 0, 0, 0, 49, 123, 192, 124, 64, 2, 196, 116, 226, 140, 244, 9, 61, 196, 124, 249, 60, 140, 244, 9, 189, 99, 82, 199, 164, 35, 185, 109, 253, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 60, 246, 83, 164, 71, 127, 199, 93, 164, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 60, 255, 127, 255, 127, 75, 198, 37, 163, 143, 194, 245, 60, 240, 100, 196, 59, 0, 0, 0, 176, 124, 175, 125, 47, 121, 212, 27, 219, 183, 75, 164, 61, 0, 127, 82, 61, 0, 155, 192, 59, 193, 79, 183, 66, 84, 199, 8, 164, 173, 71, 225, 60, 96, 44, 156, 60, 172, 71, 225, 188, 69, 90, 139, 180, 129, 202, 103, 248, 135, 175, 163, 61, 70, 170, 80, 61, 217, 185, 180, 33, 164, 71, 90, 56, 143, 199, 218, 163, 183, 75, 164, 61, 0, 127, 82, 61, 0, 155, 192, 187, 72, 61, 61, 48, 252, 199, 176, 163, 241, 109, 126, 60, 0, 0, 19, 181, 0, 0, 64, 48, 176, 150, 176, 22, 81, 235, 2, 208, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 188, 90, 56, 8, 44, 195, 200, 189, 163, 159, 228, 165, 61, 32, 74, 87, 61, 51, 210, 27, 188, 254, 255, 255, 255, 98, 198, 49, 163, 9, 76, 159, 60, 84, 36, 41, 60, 8, 76, 159, 188, 228, 98, 200, 197, 82, 218, 31, 244, 204, 98, 109, 61, 57, 98, 109, 61, 241, 109, 126, 60, 216, 223, 135, 121, 1, 168, 109, 249, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 254, 255, 255, 255, 137, 199, 196, 163, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 230, 199, 173, 211, 140, 199, 162, 163, 154, 234, 36, 60, 72, 61, 158, 59, 153, 234, 36, 188, 225, 109, 195, 219, 228, 234, 219, 240, 247, 118, 169, 61, 19, 2, 98, 61, 0, 155, 192, 187, 96, 194, 173, 207, 192, 199, 219, 163, 93, 200, 158, 61, 25, 169, 112, 61, 0, 0, 0, 128, 63, 163, 191, 220, 126, 220, 107, 174, 20, 76, 101, 61, 188, 198, 45, 61, 144, 194, 117, 60, 253, 210, 58, 105, 26, 181, 72, 242, 14, 149, 77, 61, 227, 1, 229, 60, 167, 87, 92, 60, 224, 196, 85, 87, 208, 191, 79, 234, 98, 99, 158, 61, 176, 149, 110, 61, 0, 155, 192, 59, 217, 157, 139, 206, 58, 219, 115, 174, 112, 219, 39, 61, 168, 107, 126, 60, 168, 232, 51, 60, 243, 183, 241, 70, 246, 201, 116, 226, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 255, 127, 255, 127, 83, 219, 169, 173, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 13, 155, 47, 199, 169, 218, 88, 174, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 60, 241, 100, 207, 56, 184, 220, 100, 174, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 60, 255, 127, 255, 127, 73, 219, 164, 173, 204, 98, 237, 60, 240, 100, 196, 59, 241, 109, 254, 59, 86, 170, 175, 53, 162, 215, 205, 218, 224, 11, 155, 61, 134, 255, 92, 61, 0, 155, 192, 59, 70, 98, 202, 49, 191, 220, 93, 174, 142, 194, 117, 60, 0, 0, 19, 181, 208, 179, 131, 59, 19, 149, 185, 26, 158, 236, 206, 207, 229, 166, 154, 61, 30, 236, 90, 61, 217, 185, 180, 33, 191, 92, 63, 35, 183, 220, 96, 174, 35, 25, 67, 61, 57, 98, 109, 61, 172, 71, 225, 188, 139, 50, 212, 133, 27, 62, 107, 245, 224, 11, 155, 61, 134, 255, 92, 61, 0, 155, 192, 187, 53, 78, 184, 29, 90, 220, 100, 174, 155, 213, 84, 61, 57, 98, 109, 61, 142, 194, 245, 60, 115, 205, 42, 122, 153, 189, 35, 243, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 188, 48, 71, 13, 27, 30, 220, 93, 174, 62, 20, 156, 61, 196, 110, 98, 61, 51, 210, 27, 188, 255, 255, 255, 255, 128, 218, 64, 173, 76, 115, 60, 61, 178, 19, 51, 61, 142, 154, 217, 188, 8, 60, 203, 148, 206, 62, 40, 250, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 255, 255, 255, 255, 146, 218, 72, 173, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 206, 184, 241, 228, 177, 220, 91, 173, 13, 149, 77, 61, 188, 198, 45, 61, 204, 98, 237, 60, 246, 195, 51, 107, 7, 197, 164, 237, 98, 99, 158, 61, 176, 149, 110, 61, 0, 155, 192, 187, 115, 177, 37, 226, 222, 220, 199, 173, 235, 81, 56, 61, 227, 1, 229, 60, 156, 213, 212, 60, 63, 185, 77, 90, 123, 202, 49, 231, 64, 21, 146, 61, 45, 19, 118, 61, 0, 0, 0, 128, 99, 135, 154, 248, 37, 248, 80, 188, 194, 245, 40, 61, 196, 124, 249, 60, 36, 25, 195, 188, 191, 70, 177, 165, 105, 195, 217, 254, 92, 238, 145, 61, 76, 229, 115, 61, 0, 155, 192, 59, 21, 134, 6, 227, 222, 242, 229, 187, 139, 244, 9, 61, 96, 44, 156, 60, 7, 76, 159, 188, 216, 80, 159, 181, 144, 209, 60, 249, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 255, 127, 255, 127, 221, 241, 238, 184, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 30, 133, 158, 216, 249, 240, 140, 187, 34, 127, 22, 61, 168, 107, 126, 60, 79, 199, 173, 60, 38, 175, 95, 74, 84, 210, 119, 224, 35, 25, 195, 60, 84, 36, 41, 60, 172, 71, 97, 188, 201, 91, 225, 198, 228, 222, 39, 244, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 60, 108, 122, 184, 39, 160, 247, 141, 186, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 60, 255, 127, 255, 127, 75, 243, 165, 185, 229, 164, 144, 61, 219, 110, 97, 61, 0, 155, 192, 59, 30, 122, 77, 29, 140, 248, 133, 187, 155, 213, 212, 60, 240, 100, 196, 59, 142, 194, 117, 60, 53, 164, 29, 57, 174, 220, 30, 217, 3, 251, 73, 60, 72, 61, 158, 59, 29, 58, 233, 187, 152, 105, 168, 220, 148, 237, 191, 240, 1, 126, 144, 61, 250, 64, 95, 61, 217, 185, 180, 33, 194, 120, 60, 7, 135, 248, 98, 188, 229, 164, 144, 61, 219, 110, 97, 61, 0, 155, 192, 187, 178, 98, 224, 5, 203, 246, 65, 188, 165, 87, 92, 60, 0, 0, 19, 181, 242, 109, 254, 59, 115, 146, 27, 29, 13, 239, 227, 206, 80, 199, 45, 61, 57, 98, 109, 61, 79, 199, 45, 61, 45, 189, 91, 122, 232, 207, 233, 234, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 188, 70, 88, 147, 5, 47, 245, 210, 187, 180, 10, 145, 61, 104, 35, 103, 61, 51, 210, 27, 188, 254, 255, 255, 255, 179, 243, 217, 185, 112, 219, 39, 61, 188, 198, 45, 61, 113, 219, 39, 61, 229, 181, 204, 107, 94, 211, 248, 230, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 188, 254, 255, 255, 255, 77, 242, 38, 185, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 188, 95, 167, 223, 250, 69, 247, 216, 184, 92, 238, 145, 61, 76, 229, 115, 61, 0, 155, 192, 187, 248, 156, 232, 249, 233, 247, 219, 185, 36, 127, 22, 61, 227, 1, 229, 60, 36, 127, 22, 61, 155, 173, 55, 91, 66, 214, 4, 226, 95, 215, 132, 61, 146, 182, 115, 61, 0, 0, 0, 128, 224, 103, 224, 231, 92, 232, 26, 205, 138, 194, 245, 60, 168, 107, 126, 60, 142, 194, 245, 60, 185, 165, 115, 75, 125, 219, 105, 220, 57, 241, 132, 61, 61, 148, 113, 61, 0, 155, 192, 59, 177, 107, 143, 215, 111, 227, 180, 202, 80, 199, 173, 60, 240, 100, 196, 59, 79, 199, 173, 60, 26, 157, 54, 58, 123, 227, 8, 214, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 55, 109, 234, 206, 64, 226, 180, 201, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 255, 127, 255, 127, 176, 244, 166, 197, 166, 232, 51, 60, 0, 0, 19, 181, 167, 232, 51, 60, 241, 142, 228, 29, 133, 242, 65, 205, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 60, 255, 127, 255, 127, 28, 243, 112, 198, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 60, 45, 146, 160, 48, 20, 234, 230, 204, 144, 154, 89, 61, 57, 98, 109, 61, 25, 58, 105, 188, 38, 32, 119, 134, 229, 47, 206, 248, 144, 194, 245, 60, 57, 98, 109, 61, 155, 213, 84, 61, 182, 172, 42, 122, 220, 223, 215, 224, 64, 204, 133, 61, 160, 127, 95, 61, 0, 155, 192, 59, 116, 148, 246, 40, 182, 232, 13, 205, 26, 230, 133, 61, 76, 93, 93, 61, 217, 185, 180, 33, 78, 152, 79, 24, 134, 231, 33, 204, 103, 48, 82, 61, 178, 19, 51, 61, 169, 71, 97, 188, 1, 45, 196, 150, 10, 49, 245, 252, 64, 204, 133, 61, 160, 127, 95, 61, 0, 155, 192, 187, 245, 168, 117, 20, 198, 229, 154, 203, 200, 98, 237, 60, 188, 198, 45, 61, 12, 149, 77, 61, 60, 167, 51, 107, 146, 225, 29, 222, 76, 115, 60, 61, 196, 124, 249, 60, 4, 251, 73, 188, 30, 59, 169, 168, 174, 210, 219, 252, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 188, 254, 255, 255, 255, 204, 242, 152, 198, 145, 136, 133, 61, 242, 21, 101, 61, 51, 210, 27, 188, 160, 176, 46, 18, 55, 230, 247, 202, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 234, 78, 55, 237, 187, 236, 242, 206, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 254, 255, 255, 255, 129, 244, 189, 197, 124, 222, 25, 61, 96, 44, 156, 60, 150, 234, 36, 188, 11, 72, 13, 185, 235, 219, 177, 247, 57, 241, 132, 61, 61, 148, 113, 61, 0, 155, 192, 187, 144, 87, 177, 235, 130, 235, 13, 207, 154, 213, 212, 60, 227, 1, 229, 60, 235, 81, 56, 61, 13, 161, 77, 90, 20, 227, 141, 218, 144, 154, 217, 60, 84, 36, 41, 60, 25, 58, 233, 187, 168, 85, 79, 202, 240, 229, 106, 243, 75, 199, 173, 60, 168, 107, 126, 60, 35, 127, 22, 61, 56, 155, 95, 74, 135, 230, 80, 214, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 8, 92, 78, 193, 13, 203, 163, 208, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 255, 127, 255, 127, 134, 230, 187, 204, 144, 194, 117, 60, 240, 100, 196, 59, 155, 213, 212, 60, 231, 148, 29, 57, 59, 236, 108, 209, 173, 71, 97, 60, 72, 61, 158, 59, 80, 116, 113, 187, 70, 102, 97, 223, 150, 241, 74, 240, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 60, 255, 127, 255, 127, 241, 230, 133, 204, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 60, 115, 163, 67, 62, 32, 215, 169, 215, 238, 109, 254, 59, 0, 0, 19, 181, 166, 87, 92, 60, 166, 138, 27, 29, 246, 246, 240, 202, 83, 126, 118, 61, 148, 83, 87, 61, 0, 155, 192, 59, 240, 166, 205, 56, 95, 213, 220, 215, 244, 109, 126, 60, 57, 98, 109, 61, 204, 98, 109, 61, 174, 153, 135, 121, 137, 241, 214, 210, 253, 47, 119, 61, 6, 98, 85, 61, 217, 185, 180, 33, 54, 173, 54, 45, 202, 210, 156, 214, 83, 126, 118, 61, 148, 83, 87, 61, 0, 155, 192, 187, 204, 184, 241, 38, 110, 208, 101, 213, 137, 194, 117, 60, 188, 198, 45, 61, 18, 76, 101, 61, 60, 150, 58, 105, 165, 242, 87, 209, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 188, 255, 255, 0, 0, 69, 232, 220, 203, 50, 173, 116, 61, 49, 106, 92, 61, 51, 210, 27, 188, 66, 190, 116, 35, 204, 208, 138, 212, 165, 87, 92, 60, 227, 1, 229, 60, 14, 149, 77, 61, 116, 146, 85, 87, 70, 243, 147, 207, 160, 232, 51, 60, 168, 107, 126, 60, 111, 219, 39, 61, 253, 142, 241, 70, 226, 244, 111, 205, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 79, 65, 8, 220, 177, 222, 118, 218, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 255, 255, 0, 0, 135, 231, 58, 204, 173, 71, 97, 61, 57, 98, 109, 61, 0, 0, 128, 49, 213, 7, 212, 135, 195, 220, 217, 254, 244, 109, 254, 59, 240, 100, 196, 59, 204, 98, 237, 60, 87, 139, 175, 53, 142, 247, 2, 203, 143, 154, 89, 61, 178, 19, 51, 61, 0, 0, 64, 49, 208, 26, 207, 154, 218, 222, 154, 251, 204, 179, 131, 59, 0, 0, 19, 181, 142, 194, 117, 60, 165, 133, 185, 26, 82, 252, 3, 200, 0, 0, 0, 49, 57, 98, 109, 61, 143, 194, 117, 61, 255, 127, 42, 120, 60, 243, 51, 185, 0, 0, 64, 177, 188, 198, 45, 61, 201, 98, 109, 61, 255, 127, 47, 101, 73, 243, 245, 183, 7, 76, 31, 61, 96, 44, 156, 60, 0, 0, 0, 49, 131, 63, 130, 191, 200, 232, 144, 244, 0, 0, 128, 176, 227, 1, 229, 60, 155, 213, 84, 61, 255, 127, 131, 81, 253, 244, 90, 183, 173, 71, 225, 60, 84, 36, 41, 60, 0, 0, 0, 49, 130, 80, 129, 208, 245, 238, 141, 241, 28, 58, 105, 60, 72, 61, 158, 59, 0, 0, 128, 47, 15, 100, 15, 228, 171, 246, 76, 239, 0, 0, 160, 177, 168, 107, 126, 60, 77, 199, 45, 61, 255, 127, 124, 64, 69, 247, 86, 183, 0, 0, 128, 48, 240, 100, 196, 59, 143, 194, 245, 60, 255, 127, 125, 47, 242, 249, 216, 183, 0, 0, 192, 176, 0, 0, 19, 181, 240, 109, 126, 60, 255, 127, 176, 22, 142, 253, 28, 185, 240, 109, 126, 188, 57, 98, 109, 61, 204, 98, 109, 61, 80, 102, 135, 121, 28, 206, 120, 176, 143, 194, 117, 188, 188, 198, 45, 61, 18, 76, 101, 61, 194, 105, 58, 105, 169, 210, 5, 176, 167, 87, 92, 188, 227, 1, 229, 60, 14, 149, 77, 61, 138, 109, 85, 87, 253, 218, 150, 176, 143, 154, 89, 61, 57, 98, 109, 61, 33, 58, 105, 60, 119, 6, 38, 160, 60, 245, 82, 243, 169, 232, 51, 188, 168, 107, 126, 60, 111, 219, 39, 61, 1, 113, 241, 70, 241, 228, 25, 178, 103, 48, 82, 61, 178, 19, 51, 61, 175, 71, 97, 60, 196, 22, 0, 173, 167, 245, 114, 242, 240, 109, 254, 187, 240, 100, 196, 59, 204, 98, 237, 60, 167, 116, 175, 53, 202, 236, 72, 179, 76, 115, 60, 61, 196, 124, 249, 60, 2, 251, 73, 60, 169, 40, 29, 187, 160, 246, 71, 241, 210, 179, 131, 187, 0, 0, 19, 181, 141, 194, 117, 60, 89, 122, 185, 26, 205, 247, 240, 182, 123, 222, 25, 61, 96, 44, 156, 60, 153, 234, 36, 60, 13, 57, 11, 200, 63, 248, 44, 240, 142, 194, 245, 188, 57, 98, 109, 61, 155, 213, 84, 61, 72, 83, 42, 122, 27, 183, 202, 169, 202, 98, 237, 188, 188, 198, 45, 61, 11, 149, 77, 61, 194, 88, 51, 107, 1, 189, 28, 169, 143, 154, 217, 60, 84, 36, 41, 60, 33, 58, 233, 59, 79, 74, 167, 213, 29, 250, 5, 239, 156, 213, 212, 188, 227, 1, 229, 60, 235, 81, 56, 61, 241, 94, 77, 90, 141, 199, 216, 169, 172, 71, 97, 60, 72, 61, 158, 59, 81, 116, 113, 59, 98, 95, 69, 230, 184, 252, 7, 238, 79, 199, 173, 188, 168, 107, 126, 60, 34, 127, 22, 61, 198, 100, 95, 74, 157, 212, 15, 172, 142, 194, 117, 188, 240, 100, 196, 59, 155, 213, 212, 60, 23, 107, 29, 57, 46, 226, 25, 175, 242, 109, 254, 187, 0, 0, 19, 181, 164, 87, 92, 60, 88, 117, 27, 29, 230, 242, 229, 180, 79, 199, 45, 189, 57, 98, 109, 61, 80, 199, 45, 61, 209, 66, 91, 122, 105, 165, 182, 162, 112, 219, 39, 189, 188, 198, 45, 61, 110, 219, 39, 61, 25, 74, 204, 107, 75, 173, 22, 162, 36, 127, 22, 189, 227, 1, 229, 60, 36, 127, 22, 61, 99, 82, 55, 91, 133, 186, 180, 163, 34, 25, 67, 61, 57, 98, 109, 61, 174, 71, 225, 60, 212, 5, 139, 178, 42, 243, 196, 148, 142, 194, 245, 188, 168, 107, 126, 60, 138, 194, 245, 60, 69, 90, 115, 75, 221, 201, 225, 166, 75, 115, 60, 61, 178, 19, 51, 61, 144, 154, 217, 60, 203, 20, 8, 188, 230, 243, 9, 148, 79, 199, 173, 188, 240, 100, 196, 59, 80, 199, 173, 60, 228, 98, 54, 58, 82, 218, 80, 171, 193, 245, 40, 61, 196, 124, 249, 60, 34, 25, 195, 60, 178, 37, 191, 198, 92, 244, 221, 146, 167, 232, 51, 188, 0, 0, 19, 181, 165, 232, 51, 60, 13, 113, 228, 29, 18, 239, 13, 179, 137, 244, 9, 61, 96, 44, 156, 60, 8, 76, 159, 60, 159, 53, 216, 208, 76, 246, 39, 146, 34, 25, 195, 60, 84, 36, 41, 60, 174, 71, 97, 60, 225, 70, 201, 219, 86, 249, 18, 146, 155, 213, 84, 189, 57, 98, 109, 61, 144, 194, 245, 60, 139, 50, 42, 122, 135, 150, 204, 153, 1, 251, 73, 60, 72, 61, 158, 59, 28, 58, 233, 59, 168, 92, 151, 233, 153, 252, 90, 146, 11, 149, 77, 189, 188, 198, 45, 61, 199, 98, 237, 60, 8, 60, 51, 107, 188, 161, 227, 153, 235, 81, 56, 189, 227, 1, 229, 60, 154, 213, 212, 60, 191, 70, 77, 90, 101, 178, 128, 157, 35, 127, 22, 189, 168, 107, 126, 60, 75, 199, 173, 60, 216, 80, 95, 74, 228, 195, 90, 162, 155, 213, 212, 188, 240, 100, 196, 59, 144, 194, 117, 60, 201, 91, 29, 57, 115, 213, 39, 168, 165, 87, 92, 188, 0, 0, 19, 181, 236, 109, 254, 59, 139, 109, 27, 29, 126, 236, 135, 177, 0, 0, 0, 0, 0, 0, 97, 181, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 21, 198, 204, 98, 109, 189, 57, 98, 109, 61, 244, 109, 126, 60, 38, 32, 135, 121, 59, 139, 251, 141, 7, 76, 31, 61, 57, 98, 109, 61, 8, 76, 31, 61, 163, 5, 209, 194, 191, 224, 119, 151, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 60, 54, 208, 101, 151, 75, 14, 239, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 255, 127, 255, 127, 135, 75, 195, 229, 17, 76, 101, 189, 188, 198, 45, 61, 136, 194, 117, 60, 1, 45, 58, 105, 135, 155, 64, 144, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 60, 255, 127, 255, 127, 234, 74, 116, 229, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 60, 69, 201, 186, 154, 180, 93, 169, 235, 123, 222, 25, 61, 178, 19, 51, 61, 124, 222, 25, 61, 50, 20, 24, 202, 193, 225, 154, 149, 14, 149, 77, 189, 227, 1, 229, 60, 165, 87, 92, 60, 30, 59, 85, 87, 236, 175, 131, 151, 216, 164, 70, 61, 130, 215, 178, 60, 0, 155, 192, 59, 102, 208, 203, 156, 174, 94, 243, 236, 31, 116, 72, 61, 114, 211, 180, 60, 217, 185, 180, 33, 49, 222, 204, 161, 222, 93, 39, 239, 139, 244, 9, 61, 196, 124, 249, 60, 139, 244, 9, 61, 199, 36, 99, 210, 82, 228, 127, 147, 216, 164, 70, 61, 130, 215, 178, 60, 0, 155, 192, 187, 50, 227, 151, 175, 143, 89, 90, 239, 111, 219, 39, 189, 168, 107, 126, 60, 160, 232, 51, 60, 11, 72, 241, 70, 102, 194, 190, 158, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 188, 255, 255, 255, 255, 231, 75, 243, 229, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 188, 68, 229, 185, 182, 74, 87, 217, 238, 168, 71, 225, 60, 96, 44, 156, 60, 171, 71, 225, 60, 140, 52, 69, 218, 224, 232, 43, 146, 204, 98, 237, 188, 240, 100, 196, 59, 244, 109, 254, 59, 168, 85, 175, 53, 153, 211, 235, 165, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 46, 26, 194, 73, 30, 94, 202, 229, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 255, 255, 255, 255, 69, 76, 33, 230, 7, 76, 159, 60, 84, 36, 41, 60, 8, 76, 159, 60, 200, 69, 227, 226, 6, 239, 149, 145, 141, 194, 117, 188, 0, 0, 19, 181, 202, 179, 131, 59, 235, 106, 185, 26, 63, 235, 117, 176, 225, 34, 66, 61, 140, 209, 93, 60, 0, 0, 0, 128, 18, 53, 237, 74, 137, 74, 153, 229, 151, 234, 36, 60, 72, 61, 158, 59, 152, 234, 36, 60, 195, 91, 225, 237, 159, 246, 200, 145, 98, 180, 67, 61, 236, 169, 99, 60, 0, 155, 192, 59, 117, 63, 65, 82, 171, 69, 87, 230, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 161, 68, 111, 86, 190, 66, 91, 230, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 255, 127, 255, 127, 184, 66, 91, 225, 143, 194, 117, 189, 57, 98, 109, 61, 0, 0, 0, 49, 213, 7, 42, 120, 173, 143, 168, 131, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 255, 127, 255, 127, 196, 67, 225, 225, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 237, 186, 0, 170, 55, 75, 247, 227, 200, 98, 109, 189, 188, 198, 45, 61, 0, 0, 64, 177, 208, 26, 47, 101, 183, 165, 245, 139, 155, 213, 84, 189, 227, 1, 229, 60, 0, 0, 128, 176, 123, 46, 131, 81, 62, 182, 6, 149, 2, 254, 80, 61, 178, 151, 138, 60, 0, 155, 192, 59, 125, 192, 106, 173, 191, 75, 147, 228, 131, 143, 82, 61, 226, 131, 141, 60, 217, 185, 180, 33, 16, 203, 237, 180, 35, 75, 123, 229, 77, 199, 45, 189, 168, 107, 126, 60, 0, 0, 160, 177, 131, 63, 124, 64, 40, 197, 249, 156, 143, 194, 245, 188, 240, 100, 196, 59, 0, 0, 128, 48, 130, 80, 125, 47, 127, 212, 222, 164, 2, 254, 80, 61, 178, 151, 138, 60, 0, 155, 192, 187, 148, 210, 129, 191, 70, 73, 218, 229, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 254, 255, 0, 0, 146, 67, 200, 225, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 253, 213, 16, 197, 231, 71, 155, 229, 170, 71, 225, 60, 57, 98, 109, 61, 34, 25, 67, 61, 212, 5, 71, 211, 161, 208, 109, 152, 239, 109, 126, 188, 0, 0, 19, 181, 0, 0, 0, 177, 78, 105, 176, 22, 83, 235, 247, 175, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 143, 41, 93, 59, 167, 76, 145, 225, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 254, 255, 0, 0, 152, 66, 75, 225, 98, 180, 67, 61, 236, 169, 99, 60, 0, 155, 192, 187, 190, 45, 138, 64, 121, 76, 39, 227, 140, 154, 217, 60, 178, 19, 51, 61, 75, 115, 60, 61, 203, 20, 193, 216, 145, 211, 46, 150, 204, 98, 109, 189, 57, 98, 109, 61, 240, 109, 126, 188, 119, 6, 216, 95, 191, 169, 180, 134, 204, 93, 84, 61, 60, 102, 16, 60, 0, 0, 0, 128, 187, 71, 68, 56, 119, 56, 13, 220, 34, 25, 195, 60, 196, 124, 249, 60, 193, 245, 40, 61, 178, 37, 241, 222, 21, 216, 151, 147, 45, 150, 85, 61, 28, 185, 23, 60, 0, 155, 192, 59, 174, 79, 97, 66, 92, 54, 191, 220, 17, 76, 101, 189, 188, 198, 45, 61, 142, 194, 117, 188, 196, 22, 254, 82, 70, 182, 181, 141, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 174, 83, 231, 71, 123, 53, 214, 220, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 255, 127, 255, 127, 147, 52, 72, 218, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 60, 255, 127, 255, 127, 118, 53, 186, 218, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 60, 8, 172, 90, 184, 174, 56, 102, 219, 4, 76, 159, 60, 96, 44, 156, 60, 138, 244, 9, 61, 159, 53, 198, 228, 91, 222, 200, 145, 14, 149, 77, 189, 227, 1, 229, 60, 167, 87, 92, 188, 169, 40, 225, 68, 40, 192, 163, 149, 172, 236, 95, 61, 108, 197, 85, 60, 0, 155, 192, 59, 61, 176, 71, 189, 227, 56, 202, 219, 170, 71, 97, 60, 84, 36, 41, 60, 34, 25, 195, 60, 225, 70, 23, 235, 172, 230, 212, 144, 12, 37, 97, 61, 80, 24, 93, 60, 217, 185, 180, 33, 90, 184, 164, 199, 117, 56, 34, 220, 172, 236, 95, 61, 108, 197, 85, 60, 0, 155, 192, 187, 182, 194, 193, 207, 175, 55, 104, 220, 111, 219, 39, 189, 168, 107, 126, 60, 169, 232, 51, 188, 13, 57, 243, 55, 247, 202, 61, 157, 204, 98, 237, 188, 240, 100, 196, 59, 240, 109, 254, 187, 79, 74, 87, 42, 184, 215, 36, 165, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 188, 254, 255, 0, 0, 57, 53, 156, 218, 220, 186, 92, 61, 236, 152, 66, 60, 51, 210, 27, 188, 164, 199, 246, 211, 197, 54, 88, 220, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 188, 24, 56, 81, 44, 206, 57, 149, 218, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 188, 254, 255, 0, 0, 78, 52, 38, 218, 26, 58, 233, 59, 72, 61, 158, 59, 2, 251, 73, 60, 168, 92, 15, 243, 162, 241, 49, 145, 139, 194, 117, 188, 0, 0, 19, 181, 210, 179, 131, 187, 69, 101, 19, 21, 165, 236, 35, 176, 45, 150, 85, 61, 28, 185, 23, 60, 0, 155, 192, 187, 158, 61, 81, 48, 184, 57, 2, 219, 100, 243, 106, 61, 8, 58, 186, 59, 0, 0, 0, 128, 191, 92, 63, 35, 127, 35, 146, 209, 155, 213, 84, 189, 57, 98, 109, 61, 142, 194, 245, 188, 212, 5, 115, 77, 210, 191, 53, 141, 89, 189, 107, 61, 72, 213, 202, 59, 0, 155, 192, 59, 37, 98, 115, 49, 171, 34, 247, 209, 10, 149, 77, 189, 188, 198, 45, 61, 202, 98, 237, 188, 203, 20, 246, 67, 33, 198, 114, 146, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 60, 241, 100, 207, 56, 33, 34, 7, 210, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 60, 255, 127, 255, 127, 19, 33, 137, 208, 235, 81, 56, 189, 227, 1, 229, 60, 156, 213, 212, 188, 178, 37, 63, 57, 102, 203, 198, 152, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 60, 255, 127, 255, 127, 1, 33, 128, 208, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 60, 13, 155, 47, 199, 129, 35, 113, 209, 34, 127, 22, 189, 168, 107, 126, 60, 79, 199, 173, 188, 159, 53, 38, 47, 194, 210, 115, 159, 24, 58, 105, 60, 57, 98, 109, 61, 142, 154, 89, 61, 119, 6, 80, 230, 203, 189, 155, 150, 93, 108, 114, 61, 80, 195, 43, 60, 0, 155, 192, 59, 184, 157, 52, 206, 123, 35, 133, 209, 82, 54, 115, 61, 244, 16, 52, 60, 217, 185, 180, 33, 63, 163, 191, 220, 71, 35, 157, 209, 155, 213, 212, 188, 240, 100, 196, 59, 142, 194, 117, 188, 225, 70, 53, 36, 223, 220, 202, 166, 93, 108, 114, 61, 80, 195, 43, 60, 0, 155, 192, 187, 201, 177, 70, 226, 61, 35, 160, 209, 162, 87, 92, 188, 0, 0, 19, 181, 242, 109, 254, 187, 228, 98, 116, 18, 27, 239, 6, 177, 166, 71, 97, 60, 178, 19, 51, 61, 102, 48, 82, 61, 196, 22, 194, 233, 128, 195, 18, 148, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 188, 254, 255, 0, 0, 212, 33, 233, 208, 162, 91, 112, 61, 84, 6, 22, 60, 51, 210, 27, 188, 206, 184, 241, 228, 80, 35, 159, 209, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 48, 71, 13, 27, 20, 36, 12, 209, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 254, 255, 0, 0, 222, 33, 238, 208, 80, 199, 45, 189, 57, 98, 109, 61, 79, 199, 45, 189, 163, 5, 45, 61, 165, 209, 122, 149, 1, 251, 73, 60, 196, 124, 249, 60, 75, 115, 60, 61, 169, 40, 138, 237, 164, 203, 163, 145, 89, 189, 107, 61, 72, 213, 202, 59, 0, 155, 192, 187, 139, 78, 217, 29, 34, 36, 63, 209, 109, 219, 39, 189, 188, 198, 45, 61, 111, 219, 39, 189, 50, 20, 230, 53, 150, 212, 54, 153, 205, 44, 130, 61, 104, 233, 142, 59, 0, 0, 0, 128, 155, 120, 100, 7, 123, 7, 176, 195, 145, 234, 36, 60, 96, 44, 156, 60, 122, 222, 25, 61, 13, 57, 0, 241, 242, 212, 48, 144, 177, 83, 130, 61, 120, 88, 160, 59, 0, 155, 192, 59, 233, 121, 248, 28, 103, 7, 182, 195, 36, 127, 22, 189, 227, 1, 229, 60, 36, 127, 22, 189, 199, 36, 155, 45, 46, 215, 5, 158, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 224, 122, 96, 39, 218, 6, 151, 195, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 255, 127, 255, 127, 24, 7, 139, 195, 24, 58, 233, 59, 84, 36, 41, 60, 142, 154, 217, 60, 79, 74, 166, 244, 6, 224, 188, 143, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 60, 255, 127, 255, 127, 5, 5, 130, 194, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 60, 146, 133, 70, 216, 29, 8, 228, 196, 40, 157, 131, 61, 252, 5, 26, 60, 0, 155, 192, 59, 224, 133, 177, 226, 84, 7, 16, 196, 138, 194, 245, 188, 168, 107, 126, 60, 142, 194, 245, 188, 140, 52, 185, 37, 15, 220, 134, 163, 75, 116, 113, 59, 72, 61, 158, 59, 172, 71, 97, 60, 98, 95, 26, 249, 188, 237, 145, 144, 12, 196, 131, 61, 132, 189, 34, 60, 217, 185, 180, 33, 60, 135, 194, 248, 108, 7, 156, 195, 80, 199, 173, 188, 240, 100, 196, 59, 79, 199, 173, 188, 200, 69, 27, 29, 199, 227, 218, 169, 40, 157, 131, 61, 252, 5, 26, 60, 0, 155, 192, 187, 76, 157, 30, 250, 85, 8, 173, 195, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 188, 254, 255, 0, 0, 219, 4, 108, 194, 89, 55, 131, 61, 204, 51, 3, 60, 51, 210, 27, 188, 184, 167, 107, 250, 184, 9, 11, 196, 163, 232, 51, 188, 0, 0, 19, 181, 166, 232, 51, 188, 26, 98, 242, 14, 154, 242, 160, 178, 144, 194, 245, 188, 57, 98, 109, 61, 155, 213, 84, 189, 212, 5, 183, 44, 119, 225, 159, 159, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 188, 159, 88, 31, 5, 71, 7, 100, 195, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 188, 254, 255, 0, 0, 207, 6, 102, 195, 198, 98, 237, 188, 188, 198, 45, 61, 11, 149, 77, 189, 203, 20, 61, 39, 221, 226, 41, 162, 177, 83, 130, 61, 120, 88, 160, 59, 0, 155, 192, 187, 6, 99, 22, 6, 143, 7, 172, 195, 154, 213, 212, 188, 227, 1, 229, 60, 235, 81, 56, 189, 178, 37, 13, 33, 27, 228, 141, 165, 176, 106, 143, 61, 56, 206, 161, 59, 0, 0, 0, 128, 30, 152, 30, 24, 42, 24, 241, 179, 0, 0, 64, 177, 57, 98, 109, 61, 171, 71, 97, 61, 41, 248, 255, 255, 220, 167, 14, 145, 213, 80, 143, 61, 232, 224, 178, 59, 0, 155, 192, 59, 77, 148, 111, 40, 95, 24, 8, 180, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 255, 127, 255, 127, 47, 23, 103, 180, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 199, 146, 20, 49, 208, 24, 204, 179, 75, 199, 173, 188, 168, 107, 126, 60, 35, 127, 22, 189, 159, 53, 56, 27, 58, 231, 166, 169, 144, 194, 117, 188, 240, 100, 196, 59, 155, 213, 212, 188, 225, 70, 231, 20, 157, 236, 116, 174, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 60, 209, 109, 94, 207, 169, 22, 120, 179, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 60, 255, 127, 255, 127, 146, 25, 53, 179, 206, 117, 142, 61, 232, 194, 33, 60, 0, 155, 192, 59, 138, 107, 8, 215, 193, 23, 83, 179, 0, 0, 160, 177, 178, 19, 51, 61, 141, 154, 89, 61, 46, 229, 254, 255, 131, 178, 253, 142, 233, 109, 254, 187, 0, 0, 19, 181, 164, 87, 92, 188, 228, 98, 167, 10, 16, 247, 233, 180, 244, 91, 142, 61, 60, 76, 42, 60, 217, 185, 180, 33, 176, 103, 175, 231, 90, 24, 217, 179, 206, 117, 142, 61, 232, 194, 33, 60, 0, 155, 192, 187, 9, 87, 137, 235, 95, 25, 32, 180, 0, 0, 128, 176, 196, 124, 249, 60, 33, 25, 67, 61, 131, 209, 254, 255, 207, 193, 44, 143, 244, 109, 126, 188, 57, 98, 109, 61, 204, 98, 109, 189, 119, 6, 174, 25, 110, 243, 218, 173, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 188, 94, 79, 208, 237, 6, 25, 166, 180, 125, 185, 142, 61, 160, 105, 11, 60, 51, 210, 27, 188, 255, 255, 255, 255, 141, 25, 56, 179, 0, 0, 160, 177, 96, 44, 156, 60, 5, 76, 31, 61, 123, 192, 254, 255, 128, 205, 226, 141, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 255, 255, 255, 255, 86, 23, 83, 180, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 20, 177, 199, 18, 113, 24, 157, 179, 213, 80, 143, 61, 232, 224, 178, 59, 0, 155, 192, 187, 110, 168, 77, 20, 247, 23, 216, 179, 134, 194, 117, 188, 188, 198, 45, 61, 17, 76, 101, 189, 196, 22, 60, 22, 62, 244, 27, 175, 79, 76, 156, 61, 216, 158, 241, 59, 0, 0, 0, 128, 15, 173, 16, 45, 15, 45, 118, 169, 0, 0, 192, 176, 84, 36, 41, 60, 171, 71, 225, 60, 124, 175, 255, 255, 44, 219, 95, 142, 165, 87, 92, 188, 227, 1, 229, 60, 14, 149, 77, 189, 169, 40, 116, 18, 134, 244, 158, 176, 122, 243, 155, 61, 164, 149, 0, 60, 0, 155, 192, 59, 220, 166, 107, 56, 73, 45, 155, 169, 0, 0, 160, 176, 72, 61, 158, 59, 27, 58, 105, 60, 15, 100, 255, 255, 5, 235, 241, 143, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 255, 127, 255, 127, 253, 43, 0, 170, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 246, 163, 176, 62, 171, 45, 114, 169, 160, 232, 51, 188, 168, 107, 126, 60, 111, 219, 39, 189, 13, 57, 254, 14, 186, 245, 141, 178, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 60, 139, 92, 187, 193, 129, 43, 39, 169, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 60, 255, 127, 255, 127, 253, 45, 0, 169, 244, 109, 254, 187, 240, 100, 196, 59, 204, 98, 237, 188, 79, 74, 88, 11, 2, 248, 217, 180, 226, 2, 153, 61, 16, 115, 66, 60, 0, 155, 192, 59, 14, 89, 49, 199, 120, 44, 255, 168, 200, 179, 131, 187, 0, 0, 19, 181, 140, 194, 117, 188, 69, 101, 165, 5, 112, 252, 207, 183, 13, 170, 152, 61, 72, 57, 74, 60, 217, 185, 180, 33, 200, 82, 200, 210, 53, 45, 98, 169, 0, 0, 0, 177, 57, 98, 109, 61, 143, 194, 117, 189, 213, 7, 0, 0, 49, 241, 225, 199, 226, 2, 153, 61, 16, 115, 66, 60, 0, 155, 192, 187, 50, 71, 13, 217, 251, 45, 193, 169, 0, 0, 160, 49, 168, 107, 126, 60, 77, 199, 45, 189, 131, 63, 0, 0, 128, 246, 106, 201, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 188, 188, 65, 138, 220, 168, 45, 56, 170, 115, 235, 153, 61, 156, 24, 46, 60, 51, 210, 27, 188, 255, 255, 255, 255, 254, 45, 0, 169, 30, 58, 105, 188, 57, 98, 109, 61, 142, 154, 89, 61, 135, 249, 80, 230, 145, 144, 45, 134, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 188, 255, 255, 255, 255, 35, 44, 237, 169, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 188, 175, 190, 246, 35, 27, 45, 41, 169, 0, 0, 128, 176, 240, 100, 196, 59, 143, 194, 245, 188, 130, 80, 0, 0, 141, 249, 174, 200, 122, 243, 155, 61, 164, 149, 0, 60, 0, 155, 192, 187, 106, 184, 220, 38, 200, 44, 90, 169, 0, 0, 48, 49, 0, 0, 19, 181, 238, 109, 126, 188, 78, 105, 0, 0, 116, 253, 41, 199, 247, 240, 167, 61, 124, 117, 60, 60, 0, 0, 0, 128, 141, 189, 142, 61, 138, 61, 53, 161, 175, 71, 97, 188, 178, 19, 51, 61, 101, 48, 82, 61, 58, 233, 194, 233, 248, 164, 49, 136, 54, 95, 167, 61, 244, 240, 66, 60, 0, 155, 192, 59, 164, 181, 16, 70, 169, 61, 85, 161, 2, 251, 73, 188, 196, 124, 249, 60, 74, 115, 60, 61, 85, 215, 138, 237, 184, 185, 22, 139, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 60, 255, 127, 255, 127, 207, 60, 151, 161, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 60, 178, 177, 210, 74, 237, 61, 52, 161, 154, 234, 36, 188, 96, 44, 156, 60, 121, 222, 25, 61, 241, 198, 0, 241, 41, 201, 200, 139, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 60, 168, 78, 131, 181, 39, 60, 15, 161, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 60, 255, 127, 255, 127, 76, 62, 217, 160, 30, 58, 233, 187, 84, 36, 41, 60, 142, 154, 217, 60, 175, 181, 166, 244, 107, 216, 243, 140, 86, 140, 162, 61, 60, 220, 121, 60, 0, 155, 192, 59, 89, 74, 168, 185, 237, 60, 237, 160, 84, 116, 113, 187, 72, 61, 158, 59, 171, 71, 97, 60, 156, 160, 26, 249, 153, 233, 101, 143, 148, 250, 161, 61, 218, 43, 128, 60, 217, 185, 180, 33, 85, 66, 84, 194, 163, 61, 38, 161, 172, 71, 225, 188, 57, 98, 109, 61, 33, 25, 67, 61, 42, 250, 71, 211, 219, 100, 49, 134, 86, 140, 162, 61, 60, 220, 121, 60, 0, 155, 192, 187, 168, 57, 88, 202, 30, 62, 131, 161, 143, 154, 217, 188, 178, 19, 51, 61, 73, 115, 60, 61, 51, 235, 193, 216, 211, 158, 76, 129, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 188, 131, 53, 168, 206, 220, 61, 230, 161, 238, 9, 164, 61, 172, 227, 104, 60, 51, 210, 27, 188, 255, 255, 255, 255, 83, 62, 213, 160, 34, 25, 195, 188, 196, 124, 249, 60, 191, 245, 40, 61, 76, 218, 241, 222, 249, 181, 50, 134, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 188, 255, 255, 255, 255, 238, 60, 136, 161, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 188, 209, 202, 179, 49, 140, 61, 6, 161, 7, 76, 159, 188, 96, 44, 156, 60, 135, 244, 9, 61, 95, 202, 198, 228, 253, 199, 208, 137, 54, 95, 167, 61, 244, 240, 66, 60, 0, 155, 192, 187, 15, 198, 164, 53, 75, 61, 39, 161, 172, 71, 97, 188, 84, 36, 41, 60, 33, 25, 195, 60, 29, 185, 23, 235, 22, 216, 203, 139, 132, 141, 177, 61, 130, 158, 139, 60, 0, 0, 0, 128, 181, 204, 181, 76, 179, 76, 163, 153, 30, 58, 233, 187, 72, 61, 158, 59, 1, 251, 73, 60, 86, 163, 15, 243, 140, 233, 8, 143, 196, 204, 176, 61, 86, 254, 141, 60, 0, 155, 192, 59, 233, 194, 62, 83, 193, 76, 186, 153, 0, 0, 0, 0, 176, 168, 65, 59, 0, 0, 0, 128, 255, 127, 255, 255, 255, 255, 176, 146, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 60, 255, 127, 255, 127, 108, 76, 201, 153, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 60, 219, 189, 216, 86, 229, 76, 165, 153, 7, 76, 31, 189, 57, 98, 109, 61, 6, 76, 31, 61, 91, 250, 209, 194, 42, 78, 167, 138, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 60, 83, 66, 88, 169, 187, 75, 153, 153, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 60, 255, 127, 255, 127, 73, 77, 90, 153, 124, 222, 25, 189, 178, 19, 51, 61, 122, 222, 25, 61, 204, 235, 24, 202, 31, 81, 29, 132, 196, 107, 170, 61, 220, 27, 162, 60, 0, 155, 192, 59, 41, 61, 146, 172, 73, 76, 132, 153, 138, 244, 9, 189, 196, 124, 249, 60, 137, 244, 9, 61, 55, 219, 99, 210, 35, 185, 219, 130, 5, 171, 169, 61, 174, 123, 164, 60, 217, 185, 180, 33, 58, 51, 57, 179, 180, 76, 150, 153, 169, 71, 225, 188, 96, 44, 156, 60, 164, 71, 225, 60, 114, 203, 69, 218, 129, 202, 28, 136, 196, 107, 170, 61, 220, 27, 162, 60, 0, 155, 192, 187, 146, 44, 40, 189, 239, 76, 210, 153, 7, 76, 159, 188, 84, 36, 41, 60, 6, 76, 159, 60, 54, 186, 227, 226, 82, 218, 61, 139, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 188, 89, 41, 83, 194, 203, 76, 35, 154, 100, 100, 172, 61, 146, 228, 155, 60, 51, 210, 27, 188, 255, 255, 255, 255, 69, 77, 92, 153, 153, 234, 36, 188, 72, 61, 158, 59, 151, 234, 36, 60, 59, 164, 225, 237, 228, 234, 245, 142, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 188, 255, 255, 255, 255, 115, 76, 197, 153, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 188, 216, 214, 220, 61, 182, 76, 140, 153, 32, 25, 67, 189, 57, 98, 109, 61, 168, 71, 225, 60, 42, 250, 139, 178, 98, 62, 132, 138, 196, 204, 176, 61, 86, 254, 141, 60, 0, 155, 192, 187, 61, 211, 234, 66, 137, 76, 158, 153, 74, 115, 60, 189, 178, 19, 51, 61, 138, 154, 217, 60, 51, 235, 8, 188, 164, 65, 11, 133, 192, 245, 40, 189, 196, 124, 249, 60, 30, 25, 195, 60, 76, 218, 191, 198, 209, 194, 3, 130, 136, 244, 9, 189, 96, 44, 156, 60, 1, 76, 159, 60, 95, 202, 216, 208, 22, 209, 185, 135, 32, 25, 195, 188, 84, 36, 41, 60, 168, 71, 97, 60, 29, 185, 201, 219, 4, 223, 119, 139, 2, 251, 73, 188, 72, 61, 158, 59, 26, 58, 233, 59, 86, 163, 151, 233, 149, 237, 58, 143, 140, 154, 89, 189, 57, 98, 109, 61, 23, 58, 105, 60, 135, 249, 38, 160, 105, 50, 218, 134, 101, 48, 82, 189, 178, 19, 51, 61, 163, 71, 97, 60, 58, 233, 0, 173, 51, 53, 37, 130, 74, 115, 60, 189, 196, 124, 249, 60, 250, 250, 73, 60, 85, 215, 29, 187, 22, 209, 18, 132, 120, 222, 25, 189, 96, 44, 156, 60, 141, 234, 36, 60, 241, 198, 11, 200, 35, 219, 252, 136, 140, 154, 217, 188, 84, 36, 41, 60, 23, 58, 233, 59, 175, 181, 167, 213, 240, 229, 147, 140, 172, 71, 97, 188, 72, 61, 158, 59, 75, 116, 113, 59, 156, 160, 69, 230, 134, 241, 223, 143, 169, 71, 97, 189, 57, 98, 109, 61, 0, 0, 0, 177, 41, 248, 212, 135, 244, 217, 60, 129, 140, 154, 89, 189, 178, 19, 51, 61, 0, 0, 224, 177, 46, 229, 207, 154, 191, 220, 171, 132, 32, 25, 67, 189, 196, 124, 249, 60, 0, 0, 224, 177, 131, 209, 123, 174, 216, 225, 152, 136, 3, 76, 31, 189, 96, 44, 156, 60, 0, 0, 224, 177, 123, 192, 130, 191, 225, 231, 223, 139, 169, 71, 225, 188, 84, 36, 41, 60, 0, 0, 128, 176, 124, 175, 129, 208, 217, 238, 135, 142, 27, 58, 105, 188, 72, 61, 158, 59, 0, 0, 160, 176, 239, 155, 15, 228, 147, 246, 221, 144, 140, 154, 89, 189, 57, 98, 109, 61, 27, 58, 105, 188, 216, 223, 119, 134, 143, 241, 97, 140, 100, 48, 82, 189, 178, 19, 51, 61, 176, 71, 97, 188, 253, 210, 196, 150, 74, 242, 142, 141, 73, 115, 60, 189, 196, 124, 249, 60, 6, 251, 73, 188, 224, 196, 169, 168, 103, 244, 255, 142, 119, 222, 25, 189, 96, 44, 156, 60, 154, 234, 36, 188, 243, 183, 13, 185, 5, 247, 46, 144, 140, 154, 217, 188, 84, 36, 41, 60, 27, 58, 233, 187, 86, 170, 79, 202, 173, 249, 58, 145, 171, 71, 97, 188, 72, 61, 158, 59, 84, 116, 113, 187, 184, 153, 97, 223, 153, 252, 33, 146, 31, 25, 67, 189, 57, 98, 109, 61, 170, 71, 225, 188, 115, 205, 212, 133, 214, 246, 119, 234, 72, 115, 60, 189, 178, 19, 51, 61, 142, 154, 217, 188, 246, 195, 203, 148, 29, 247, 14, 235, 190, 245, 40, 189, 196, 124, 249, 60, 35, 25, 195, 188, 63, 185, 177, 165, 22, 247, 15, 236, 133, 244, 9, 189, 96, 44, 156, 60, 6, 76, 159, 188, 38, 175, 159, 181, 233, 247, 246, 236, 31, 25, 195, 188, 84, 36, 41, 60, 170, 71, 97, 188, 53, 164, 225, 198, 251, 249, 103, 237, 1, 251, 73, 188, 72, 61, 158, 59, 30, 58, 233, 187, 102, 150, 168, 220, 190, 252, 110, 237, 5, 76, 31, 189, 57, 98, 109, 61, 6, 76, 31, 189, 45, 189, 163, 133, 49, 228, 150, 231, 121, 222, 25, 189, 178, 19, 51, 61, 123, 222, 25, 189, 229, 181, 50, 148, 139, 229, 22, 233, 136, 244, 9, 189, 196, 124, 249, 60, 138, 244, 9, 189, 155, 173, 199, 164, 4, 231, 70, 235, 160, 71, 225, 188, 96, 44, 156, 60, 167, 71, 225, 188, 185, 165, 139, 180, 89, 234, 242, 236, 5, 76, 159, 188, 84, 36, 41, 60, 6, 76, 159, 188, 26, 157, 200, 197, 138, 239, 249, 237, 151, 234, 36, 188, 72, 61, 158, 59, 153, 234, 36, 188, 29, 146, 195, 219, 180, 246, 21, 238, 167, 71, 225, 188, 57, 98, 109, 61, 31, 25, 67, 189, 182, 172, 212, 133, 154, 210, 228, 230, 136, 154, 217, 188, 178, 19, 51, 61, 73, 115, 60, 189, 60, 167, 203, 148, 17, 214, 199, 232, 28, 25, 195, 188, 196, 124, 249, 60, 191, 245, 40, 189, 13, 161, 177, 165, 161, 217, 151, 235, 254, 75, 159, 188, 96, 44, 156, 60, 135, 244, 9, 189, 56, 155, 159, 181, 50, 223, 164, 237, 167, 71, 97, 188, 84, 36, 41, 60, 31, 25, 195, 188, 231, 148, 225, 198, 10, 231, 209, 238, 26, 58, 233, 187, 72, 61, 158, 59, 2, 251, 73, 188, 238, 140, 168, 220, 186, 241, 166, 238, 22, 58, 105, 188, 57, 98, 109, 61, 139, 154, 89, 189, 174, 153, 119, 134, 16, 191, 218, 232, 160, 71, 97, 188, 178, 19, 51, 61, 100, 48, 82, 189, 60, 150, 196, 150, 116, 196, 113, 235, 247, 250, 73, 188, 196, 124, 249, 60, 72, 115, 60, 189, 116, 146, 169, 168, 41, 204, 7, 238, 136, 234, 36, 188, 96, 44, 156, 60, 119, 222, 25, 189, 253, 142, 13, 185, 8, 214, 241, 238, 22, 58, 233, 187, 84, 36, 41, 60, 139, 154, 217, 188, 87, 139, 79, 202, 31, 224, 38, 240, 75, 116, 113, 187, 72, 61, 158, 59, 172, 71, 97, 188, 227, 134, 97, 223, 206, 237, 75, 239, 0, 0, 224, 49, 196, 124, 249, 60, 30, 25, 67, 189, 255, 127, 123, 174, 202, 192, 159, 241, 0, 0, 128, 48, 84, 36, 41, 60, 168, 71, 225, 188, 255, 127, 129, 208, 75, 219, 116, 241, 0, 0, 160, 48, 72, 61, 158, 59, 27, 58, 105, 188, 255, 127, 15, 228, 13, 235, 250, 239, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 186, 77, 229, 225, 42, 225, 171, 212, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 168, 242, 81, 101, 124, 151, 218, 249, 236, 30, 113, 61, 118, 95, 102, 61, 237, 209, 225, 187, 146, 70, 83, 226, 1, 226, 226, 213, 236, 30, 113, 61, 118, 95, 102, 61, 237, 209, 225, 187, 168, 242, 81, 101, 227, 142, 6, 247, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 87, 59, 229, 212, 101, 218, 235, 222, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 254, 255, 0, 0, 241, 224, 133, 207, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 188, 168, 242, 81, 101, 227, 142, 164, 247, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 254, 255, 0, 0, 166, 228, 171, 205, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 167, 196, 25, 43, 167, 199, 100, 216, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 188, 168, 242, 81, 101, 120, 167, 71, 252, 129, 29, 114, 61, 249, 178, 81, 61, 241, 135, 156, 47, 217, 181, 217, 53, 118, 202, 35, 219, 129, 29, 114, 61, 249, 178, 81, 61, 241, 135, 156, 47, 26, 241, 27, 113, 30, 153, 57, 249, 129, 247, 110, 61, 48, 220, 81, 61, 0, 155, 192, 187, 137, 191, 208, 46, 176, 199, 73, 217, 129, 247, 110, 61, 48, 220, 81, 61, 0, 155, 192, 187, 168, 242, 81, 101, 191, 152, 11, 250, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 70, 204, 103, 67, 167, 184, 197, 228, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 94, 236, 169, 166, 97, 97, 124, 244, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 215, 17, 49, 81, 25, 102, 101, 230, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 255, 255, 255, 255, 92, 78, 45, 231, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 70, 204, 103, 67, 30, 185, 2, 229, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 255, 255, 255, 255, 255, 76, 126, 230, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 70, 204, 103, 67, 92, 185, 34, 229, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 39, 238, 205, 174, 92, 94, 238, 243, 90, 117, 55, 61, 186, 112, 152, 60, 142, 70, 224, 48, 119, 43, 136, 84, 136, 84, 67, 234, 90, 117, 55, 61, 186, 112, 152, 60, 142, 70, 224, 48, 108, 200, 108, 72, 155, 189, 134, 230, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 108, 200, 108, 72, 213, 188, 58, 230, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 240, 232, 14, 151, 240, 104, 119, 244, 52, 249, 55, 61, 198, 193, 162, 60, 109, 56, 209, 187, 223, 32, 204, 67, 205, 86, 240, 229, 52, 249, 55, 61, 198, 193, 162, 60, 109, 56, 209, 187, 70, 204, 103, 67, 138, 185, 58, 229, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 239, 36, 211, 71, 37, 86, 27, 230, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 70, 204, 103, 67, 183, 186, 214, 229, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 59, 102, 195, 71, 76, 221, 191, 138, 230, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 59, 84, 217, 160, 147, 250, 104, 219, 240, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 206, 46, 40, 110, 205, 76, 11, 243, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 255, 127, 255, 127, 187, 80, 92, 232, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 60, 102, 195, 71, 76, 183, 193, 15, 231, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 255, 127, 255, 127, 177, 77, 215, 230, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 102, 195, 71, 76, 121, 193, 253, 230, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 48, 209, 214, 145, 246, 103, 161, 239, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 51, 60, 31, 95, 226, 75, 102, 235, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 102, 195, 71, 76, 173, 193, 12, 231, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 43, 56, 16, 91, 56, 76, 18, 235, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 102, 195, 71, 76, 124, 193, 254, 230, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 255, 127, 255, 127, 131, 229, 61, 205, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 24, 171, 167, 68, 52, 207, 42, 220, 204, 187, 109, 61, 83, 95, 87, 61, 51, 210, 27, 60, 81, 229, 168, 114, 48, 137, 39, 239, 129, 247, 110, 61, 49, 220, 81, 61, 0, 155, 192, 59, 208, 174, 137, 63, 187, 205, 69, 220, 129, 247, 110, 61, 49, 220, 81, 61, 0, 155, 192, 59, 81, 229, 168, 114, 56, 152, 140, 248, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 83, 98, 145, 198, 35, 212, 240, 206, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 81, 229, 168, 114, 206, 166, 140, 248, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 230, 84, 87, 187, 37, 194, 203, 210, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 255, 127, 255, 127, 242, 227, 5, 206, 248, 226, 110, 61, 96, 33, 96, 61, 51, 210, 27, 60, 81, 229, 168, 114, 45, 165, 140, 248, 88, 145, 117, 61, 106, 236, 107, 61, 0, 0, 0, 128, 68, 92, 67, 220, 33, 218, 115, 209, 88, 145, 117, 61, 106, 236, 107, 61, 0, 0, 0, 128, 26, 241, 27, 113, 102, 153, 62, 249, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 59, 229, 97, 186, 205, 121, 214, 85, 207, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 59, 81, 229, 168, 114, 167, 159, 140, 248, 155, 213, 84, 189, 97, 32, 141, 61, 142, 194, 245, 188, 0, 0, 217, 174, 123, 194, 42, 140, 155, 213, 84, 189, 97, 32, 141, 61, 142, 194, 245, 188, 255, 127, 254, 255, 254, 255, 187, 235, 80, 199, 45, 189, 97, 32, 141, 61, 79, 199, 45, 189, 0, 0, 255, 191, 51, 211, 204, 148, 80, 199, 45, 189, 97, 32, 141, 61, 79, 199, 45, 189, 255, 127, 254, 255, 254, 255, 21, 236, 144, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 189, 0, 0, 37, 209, 230, 225, 8, 159, 144, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 189, 255, 127, 254, 255, 254, 255, 34, 235, 143, 194, 117, 61, 97, 32, 141, 61, 0, 0, 128, 176, 255, 127, 254, 255, 254, 255, 215, 237, 143, 194, 117, 61, 97, 32, 141, 61, 0, 0, 128, 176, 255, 255, 255, 127, 20, 145, 255, 255, 204, 98, 109, 61, 97, 32, 141, 61, 241, 109, 126, 60, 255, 127, 254, 255, 254, 255, 223, 237, 204, 98, 109, 61, 97, 32, 141, 61, 241, 109, 126, 60, 242, 228, 255, 127, 211, 170, 120, 251, 204, 98, 109, 61, 97, 32, 141, 61, 243, 109, 126, 188, 255, 127, 254, 255, 254, 255, 117, 237, 204, 98, 109, 61, 97, 32, 141, 61, 243, 109, 126, 188, 255, 255, 12, 155, 156, 130, 207, 249, 174, 71, 225, 60, 97, 32, 141, 61, 35, 25, 67, 189, 37, 81, 255, 127, 3, 116, 50, 252, 174, 71, 225, 60, 97, 32, 141, 61, 35, 25, 67, 189, 255, 127, 254, 255, 254, 255, 170, 237, 9, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 189, 255, 63, 255, 127, 34, 85, 71, 245, 9, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 189, 255, 127, 254, 255, 254, 255, 226, 237, 169, 71, 97, 189, 97, 32, 141, 61, 0, 0, 0, 177, 255, 127, 254, 255, 254, 255, 187, 235, 169, 71, 97, 189, 97, 32, 141, 61, 0, 0, 0, 177, 255, 255, 255, 127, 117, 214, 255, 127, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 255, 127, 254, 255, 254, 255, 187, 235, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 242, 228, 255, 127, 166, 240, 230, 139, 240, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 61, 242, 100, 255, 127, 176, 203, 251, 175, 240, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 61, 255, 127, 254, 255, 254, 255, 23, 238, 142, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 61, 37, 81, 255, 127, 94, 179, 131, 168, 142, 194, 245, 188, 97, 32, 141, 61, 155, 213, 84, 61, 255, 127, 254, 255, 254, 255, 133, 236, 242, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 189, 255, 127, 254, 255, 255, 255, 38, 236, 242, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 189, 255, 255, 242, 228, 113, 202, 204, 208, 0, 0, 0, 177, 97, 32, 141, 61, 143, 194, 117, 189, 255, 127, 254, 255, 254, 255, 191, 236, 0, 0, 0, 177, 97, 32, 141, 61, 143, 194, 117, 189, 255, 255, 255, 255, 247, 240, 130, 199, 35, 25, 67, 61, 97, 32, 141, 61, 172, 71, 225, 188, 217, 46, 255, 127, 232, 64, 115, 244, 35, 25, 67, 61, 97, 32, 141, 61, 172, 71, 225, 188, 255, 127, 254, 255, 254, 255, 174, 227, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 12, 27, 255, 127, 58, 50, 199, 247, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 255, 127, 254, 255, 254, 255, 95, 237, 5, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 189, 255, 127, 254, 255, 254, 255, 28, 236, 5, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 189, 255, 191, 255, 127, 89, 228, 232, 230, 167, 71, 225, 188, 97, 32, 141, 61, 31, 25, 67, 189, 255, 127, 254, 255, 254, 255, 32, 237, 167, 71, 225, 188, 97, 32, 141, 61, 31, 25, 67, 189, 217, 174, 255, 127, 140, 211, 130, 229, 143, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 189, 255, 127, 254, 255, 254, 255, 148, 237, 143, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 189, 255, 255, 37, 209, 112, 178, 54, 216, 244, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 189, 0, 0, 242, 228, 254, 242, 88, 173, 244, 109, 126, 188, 97, 32, 141, 61, 204, 98, 109, 189, 255, 127, 254, 255, 254, 255, 250, 236, 155, 213, 84, 61, 97, 32, 141, 61, 142, 194, 245, 60, 255, 127, 254, 255, 254, 255, 251, 237, 155, 213, 84, 61, 97, 32, 141, 61, 142, 194, 245, 60, 37, 209, 255, 127, 102, 192, 53, 244, 173, 71, 97, 61, 97, 32, 141, 61, 0, 0, 128, 49, 0, 0, 255, 127, 65, 218, 255, 255, 173, 71, 97, 61, 97, 32, 141, 61, 0, 0, 128, 49, 255, 127, 254, 255, 254, 255, 155, 237, 143, 154, 89, 61, 97, 32, 141, 61, 33, 58, 105, 60, 0, 0, 12, 155, 13, 245, 160, 243, 143, 154, 89, 61, 97, 32, 141, 61, 33, 58, 105, 60, 255, 127, 254, 255, 254, 255, 221, 237, 34, 25, 67, 61, 97, 32, 141, 61, 174, 71, 225, 60, 0, 0, 217, 174, 132, 242, 244, 148, 34, 25, 67, 61, 97, 32, 141, 61, 174, 71, 225, 60, 255, 127, 254, 255, 254, 255, 36, 238, 204, 98, 109, 189, 97, 32, 141, 61, 244, 109, 126, 60, 12, 27, 255, 127, 186, 130, 116, 134, 204, 98, 109, 189, 97, 32, 141, 61, 244, 109, 126, 60, 255, 127, 254, 255, 254, 255, 193, 235, 143, 194, 117, 189, 97, 32, 141, 61, 0, 0, 0, 49, 0, 0, 255, 127, 64, 146, 255, 127, 143, 194, 117, 189, 97, 32, 141, 61, 0, 0, 0, 49, 255, 127, 254, 255, 254, 255, 74, 236, 80, 199, 45, 61, 97, 32, 141, 61, 80, 199, 45, 189, 255, 127, 254, 255, 254, 255, 12, 238, 80, 199, 45, 61, 97, 32, 141, 61, 80, 199, 45, 189, 255, 255, 255, 191, 107, 159, 147, 224, 170, 71, 225, 60, 97, 32, 141, 61, 34, 25, 67, 61, 0, 0, 37, 209, 46, 208, 106, 153, 170, 71, 225, 60, 97, 32, 141, 61, 34, 25, 67, 61, 255, 127, 254, 255, 254, 255, 41, 239, 24, 58, 105, 60, 97, 32, 141, 61, 142, 154, 89, 61, 0, 0, 242, 228, 78, 189, 44, 152, 24, 58, 105, 60, 97, 32, 141, 61, 142, 154, 89, 61, 255, 127, 254, 255, 254, 255, 253, 238, 80, 199, 45, 61, 97, 32, 141, 61, 79, 199, 45, 61, 255, 127, 254, 255, 254, 255, 179, 238, 80, 199, 45, 61, 97, 32, 141, 61, 79, 199, 45, 61, 255, 191, 255, 127, 143, 209, 155, 235, 32, 25, 67, 189, 97, 32, 141, 61, 168, 71, 225, 60, 255, 127, 254, 255, 254, 255, 41, 241, 32, 25, 67, 189, 97, 32, 141, 61, 168, 71, 225, 60, 255, 255, 217, 174, 225, 67, 0, 139, 140, 154, 89, 189, 97, 32, 141, 61, 23, 58, 105, 60, 255, 127, 254, 255, 254, 255, 223, 235, 140, 154, 89, 189, 97, 32, 141, 61, 23, 58, 105, 60, 255, 255, 12, 155, 182, 53, 216, 135, 7, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 61, 0, 0, 255, 191, 224, 224, 55, 152, 7, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 61, 255, 127, 254, 255, 254, 255, 199, 238, 0, 0, 0, 0, 97, 32, 141, 61, 174, 71, 97, 189, 255, 127, 254, 255, 254, 255, 200, 236, 0, 0, 0, 0, 97, 32, 141, 61, 174, 71, 97, 189, 255, 127, 255, 127, 11, 169, 120, 235, 30, 58, 105, 60, 97, 32, 141, 61, 144, 154, 89, 189, 242, 100, 255, 127, 239, 146, 253, 243, 30, 58, 105, 60, 97, 32, 141, 61, 144, 154, 89, 189, 255, 127, 254, 255, 255, 255, 143, 237, 31, 25, 67, 189, 97, 32, 141, 61, 170, 71, 225, 188, 255, 127, 254, 255, 254, 255, 200, 237, 31, 25, 67, 189, 97, 32, 141, 61, 170, 71, 225, 188, 37, 209, 255, 127, 168, 246, 71, 234, 0, 0, 64, 177, 97, 32, 141, 61, 171, 71, 97, 61, 255, 127, 254, 255, 254, 255, 252, 228, 0, 0, 64, 177, 97, 32, 141, 61, 171, 71, 97, 61, 255, 255, 255, 255, 63, 166, 31, 147, 144, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 61, 255, 127, 254, 255, 254, 255, 54, 238, 144, 194, 245, 60, 97, 32, 141, 61, 155, 213, 84, 61, 217, 174, 255, 127, 87, 224, 116, 225, 244, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 61, 255, 127, 254, 255, 254, 255, 53, 239, 244, 109, 126, 60, 97, 32, 141, 61, 204, 98, 109, 61, 12, 155, 255, 127, 13, 241, 106, 211, 22, 58, 105, 188, 97, 32, 141, 61, 139, 154, 89, 189, 255, 127, 254, 255, 254, 255, 29, 237, 22, 58, 105, 188, 97, 32, 141, 61, 139, 154, 89, 189, 12, 155, 255, 127, 81, 192, 161, 230, 0, 0, 0, 49, 97, 32, 141, 61, 143, 194, 117, 61, 255, 127, 254, 255, 254, 255, 8, 243, 0, 0, 0, 49, 97, 32, 141, 61, 143, 194, 117, 61, 255, 127, 255, 127, 78, 243, 167, 185, 156, 213, 84, 61, 97, 32, 141, 61, 144, 194, 245, 188, 255, 127, 254, 255, 254, 255, 237, 239, 156, 213, 84, 61, 97, 32, 141, 61, 144, 194, 245, 188, 255, 255, 217, 174, 254, 142, 130, 235, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 255, 127, 254, 255, 254, 255, 7, 238, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 255, 255, 242, 228, 73, 145, 245, 138, 7, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 61, 255, 127, 254, 255, 254, 255, 47, 236, 7, 76, 31, 189, 97, 32, 141, 61, 6, 76, 31, 61, 255, 255, 255, 191, 26, 87, 56, 138, 204, 98, 109, 189, 97, 32, 141, 61, 240, 109, 126, 188, 0, 0, 12, 155, 24, 173, 195, 132, 204, 98, 109, 189, 97, 32, 141, 61, 240, 109, 126, 188, 255, 127, 254, 255, 254, 255, 200, 235, 79, 199, 45, 189, 97, 32, 141, 61, 80, 199, 45, 61, 255, 63, 255, 127, 65, 160, 65, 160, 79, 199, 45, 189, 97, 32, 141, 61, 80, 199, 45, 61, 255, 127, 254, 255, 254, 255, 56, 236, 172, 71, 225, 188, 97, 32, 141, 61, 33, 25, 67, 61, 255, 127, 254, 255, 254, 255, 138, 237, 172, 71, 225, 188, 97, 32, 141, 61, 33, 25, 67, 61, 255, 255, 37, 209, 77, 116, 180, 131, 155, 213, 84, 189, 97, 32, 141, 61, 144, 194, 245, 60, 217, 46, 255, 127, 175, 143, 109, 149, 155, 213, 84, 189, 97, 32, 141, 61, 144, 194, 245, 60, 255, 127, 254, 255, 254, 255, 210, 233, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 153, 209, 226, 120, 140, 199, 162, 163, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 157, 9, 175, 125, 151, 75, 14, 239, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 119, 72, 204, 38, 151, 75, 14, 239, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 177, 95, 253, 235, 231, 71, 155, 229, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 55, 24, 133, 105, 167, 76, 145, 225, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 81, 71, 249, 38, 167, 76, 145, 225, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 224, 70, 92, 40, 208, 24, 204, 179, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 241, 95, 12, 238, 97, 97, 124, 244, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 55, 97, 164, 238, 92, 94, 238, 243, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 250, 22, 95, 110, 226, 75, 102, 235, 243, 199, 184, 61, 156, 245, 252, 60, 51, 210, 27, 188, 127, 211, 235, 61, 90, 112, 240, 135, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 16, 214, 63, 63, 138, 161, 17, 145, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 155, 159, 54, 221, 169, 218, 88, 174, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 11, 148, 159, 242, 177, 220, 91, 173, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 149, 107, 33, 227, 249, 240, 140, 187, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 241, 97, 182, 229, 177, 222, 118, 218, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 71, 17, 63, 85, 151, 75, 14, 239, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 31, 41, 183, 111, 30, 94, 202, 229, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 188, 36, 49, 85, 190, 66, 91, 230, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 85, 105, 114, 37, 190, 66, 91, 230, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 255, 106, 11, 236, 55, 75, 247, 227, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 188, 25, 102, 196, 248, 231, 71, 155, 229, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 216, 51, 119, 77, 167, 76, 145, 225, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 144, 108, 130, 23, 167, 76, 145, 225, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 244, 87, 77, 46, 208, 24, 204, 179, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 236, 73, 216, 43, 113, 24, 157, 179, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 97, 242, 107, 85, 113, 24, 157, 179, 36, 212, 174, 61, 158, 53, 148, 60, 51, 210, 27, 60, 10, 208, 86, 61, 229, 76, 165, 153, 236, 30, 113, 61, 118, 95, 102, 61, 237, 209, 225, 187, 192, 104, 59, 229, 1, 226, 226, 213, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 187, 34, 107, 114, 241, 97, 97, 124, 244, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 39, 42, 111, 101, 30, 185, 2, 229, 254, 63, 64, 61, 242, 184, 188, 60, 51, 210, 27, 188, 241, 98, 120, 242, 92, 94, 238, 243, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 144, 47, 106, 91, 183, 186, 214, 229, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 42, 111, 62, 242, 246, 103, 161, 239, 52, 249, 55, 61, 198, 193, 162, 60, 112, 56, 209, 59, 25, 35, 226, 84, 226, 75, 102, 235, 9, 76, 31, 61, 97, 32, 141, 61, 8, 76, 31, 189, 202, 102, 23, 177, 34, 85, 71, 245, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 75, 203, 180, 195, 254, 255, 187, 235, 140, 154, 89, 189, 97, 32, 141, 61, 27, 58, 105, 188, 143, 189, 238, 177, 166, 240, 230, 139, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 254, 67, 59, 220, 58, 50, 199, 247, 144, 154, 89, 61, 97, 32, 141, 61, 25, 58, 105, 188, 154, 96, 84, 177, 58, 50, 199, 247, 167, 71, 225, 188, 97, 32, 141, 61, 31, 25, 67, 189, 50, 118, 129, 182, 140, 211, 130, 229, 143, 154, 89, 61, 97, 32, 141, 61, 33, 58, 105, 60, 120, 51, 3, 218, 13, 245, 160, 243, 80, 199, 45, 61, 97, 32, 141, 61, 80, 199, 45, 189, 5, 49, 85, 84, 107, 159, 147, 224, 24, 58, 105, 60, 97, 32, 141, 61, 142, 154, 89, 61, 166, 46, 224, 228, 78, 189, 44, 152, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 253, 205, 191, 205, 254, 255, 7, 238, 30, 58, 105, 188, 97, 32, 141, 61, 142, 154, 89, 61, 228, 51, 113, 229, 73, 145, 245, 138, 204, 98, 109, 189, 97, 32, 141, 61, 240, 109, 126, 188, 23, 208, 191, 209, 254, 255, 200, 235, 188, 129, 185, 61, 64, 234, 55, 61, 0, 0, 0, 128, 232, 210, 105, 81, 248, 161, 251, 144, 188, 129, 185, 61, 64, 234, 55, 61, 0, 0, 0, 128, 2, 191, 33, 189, 248, 161, 251, 144, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 140, 219, 121, 86, 32, 162, 196, 144, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 30, 210, 25, 85, 138, 161, 17, 145, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 255, 209, 243, 77, 239, 180, 85, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 128, 207, 217, 81, 168, 180, 128, 154, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 164, 214, 108, 185, 140, 199, 162, 163, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 60, 87, 213, 9, 177, 169, 218, 88, 174, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 234, 136, 148, 249, 177, 220, 91, 173, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 49, 85, 186, 219, 64, 226, 180, 201, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 246, 80, 63, 186, 187, 236, 242, 206, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 111, 61, 175, 211, 13, 203, 163, 208, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 20, 82, 57, 187, 177, 222, 118, 218, 210, 179, 131, 187, 0, 0, 19, 181, 141, 194, 117, 60, 193, 35, 95, 226, 205, 247, 240, 182, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 195, 18, 62, 84, 151, 75, 14, 239, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 129, 41, 181, 111, 30, 94, 202, 229, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 183, 46, 214, 79, 190, 66, 91, 230, 217, 226, 76, 61, 236, 240, 130, 60, 51, 210, 27, 60, 150, 117, 162, 228, 55, 75, 247, 227, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 222, 59, 44, 74, 167, 76, 145, 225, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 175, 207, 106, 97, 167, 76, 145, 225, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 187, 76, 65, 67, 123, 53, 214, 220, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 112, 161, 228, 13, 20, 36, 12, 209, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 117, 207, 37, 97, 218, 6, 151, 195, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 77, 135, 57, 3, 208, 24, 204, 179, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 21, 203, 88, 90, 208, 24, 204, 179, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 4, 216, 120, 105, 171, 45, 114, 169, 156, 225, 165, 61, 128, 233, 83, 60, 51, 210, 27, 188, 217, 189, 97, 75, 140, 61, 6, 161, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 207, 90, 199, 209, 42, 225, 171, 212, 37, 38, 59, 61, 82, 109, 175, 60, 51, 210, 27, 188, 137, 19, 147, 191, 30, 185, 2, 229, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 45, 88, 28, 227, 240, 104, 119, 244, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 75, 43, 43, 97, 37, 86, 27, 230, 19, 208, 68, 61, 100, 130, 195, 60, 0, 155, 192, 59, 196, 111, 221, 224, 250, 104, 219, 240, 254, 63, 64, 61, 240, 184, 188, 60, 51, 210, 27, 60, 46, 115, 250, 227, 246, 103, 161, 239, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 76, 32, 195, 81, 56, 76, 18, 235, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 40, 58, 97, 209, 35, 212, 240, 206, 112, 62, 188, 61, 250, 36, 252, 60, 0, 0, 0, 128, 200, 222, 100, 101, 120, 112, 192, 135, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 60, 21, 210, 171, 80, 32, 162, 196, 144, 169, 59, 182, 61, 96, 83, 52, 61, 51, 210, 27, 188, 102, 207, 138, 79, 138, 161, 17, 145, 158, 48, 179, 61, 246, 123, 80, 61, 0, 0, 0, 128, 16, 211, 29, 82, 12, 181, 140, 154, 158, 48, 179, 61, 246, 123, 80, 61, 0, 0, 0, 128, 110, 184, 78, 196, 12, 181, 140, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 92, 211, 245, 81, 239, 180, 85, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 60, 44, 214, 66, 178, 239, 180, 85, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 65, 210, 147, 82, 168, 180, 128, 154, 72, 90, 176, 61, 124, 50, 75, 61, 51, 210, 27, 188, 248, 200, 218, 172, 168, 180, 128, 154, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 60, 138, 186, 29, 190, 43, 199, 200, 163, 15, 222, 167, 61, 242, 54, 93, 61, 51, 210, 27, 188, 250, 199, 59, 192, 140, 199, 162, 163, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 254, 204, 128, 198, 177, 220, 91, 173, 4, 91, 157, 61, 114, 38, 105, 61, 51, 210, 27, 188, 182, 130, 179, 247, 177, 220, 91, 173, 64, 21, 146, 61, 45, 19, 118, 61, 0, 0, 0, 128, 3, 194, 97, 194, 37, 248, 80, 188, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 60, 161, 117, 119, 254, 249, 240, 140, 187, 141, 136, 145, 61, 191, 48, 110, 61, 51, 210, 27, 188, 100, 114, 118, 243, 69, 247, 216, 184, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 60, 106, 57, 225, 207, 64, 226, 180, 201, 232, 52, 133, 61, 236, 253, 107, 61, 51, 210, 27, 188, 196, 87, 107, 208, 187, 236, 242, 206, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 60, 192, 60, 156, 210, 13, 203, 163, 208, 68, 110, 114, 61, 80, 180, 98, 61, 51, 210, 27, 188, 170, 84, 42, 190, 177, 222, 118, 218, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 60, 188, 19, 4, 83, 151, 75, 14, 239, 250, 231, 65, 61, 180, 165, 173, 60, 51, 210, 27, 60, 118, 108, 91, 227, 180, 93, 169, 235, 201, 12, 60, 61, 246, 57, 167, 60, 51, 210, 27, 188, 202, 43, 230, 108, 30, 94, 202, 229, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 60, 196, 41, 59, 80, 190, 66, 91, 230, 131, 143, 82, 61, 226, 131, 141, 60, 217, 185, 180, 33, 14, 115, 108, 229, 35, 75, 123, 229, 131, 143, 82, 61, 226, 131, 141, 60, 217, 185, 180, 33, 162, 205, 140, 194, 35, 75, 123, 229, 139, 207, 71, 61, 120, 247, 114, 60, 51, 210, 27, 188, 21, 47, 82, 86, 167, 76, 145, 225, 204, 93, 84, 61, 60, 102, 16, 60, 0, 0, 0, 128, 209, 56, 219, 73, 119, 56, 13, 220, 204, 93, 84, 61, 60, 102, 16, 60, 0, 0, 0, 128, 153, 142, 73, 33, 119, 56, 13, 220, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 60, 112, 56, 157, 65, 123, 53, 214, 220, 253, 199, 88, 61, 164, 229, 42, 60, 51, 210, 27, 188, 111, 60, 202, 73, 206, 57, 149, 218, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 60, 12, 100, 79, 39, 33, 34, 7, 210, 20, 206, 109, 61, 64, 79, 246, 59, 51, 210, 27, 188, 142, 92, 234, 38, 20, 36, 12, 209, 205, 44, 130, 61, 104, 233, 142, 59, 0, 0, 0, 128, 78, 86, 99, 47, 123, 7, 176, 195, 205, 44, 130, 61, 104, 233, 142, 59, 0, 0, 0, 128, 133, 175, 56, 52, 123, 7, 176, 195, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 60, 112, 123, 216, 6, 218, 6, 151, 195, 128, 185, 130, 61, 216, 252, 205, 59, 51, 210, 27, 188, 112, 146, 103, 24, 71, 7, 100, 195, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 60, 98, 168, 183, 33, 208, 24, 204, 179, 38, 13, 143, 61, 120, 147, 223, 59, 51, 210, 27, 188, 110, 195, 101, 62, 113, 24, 157, 179, 234, 10, 155, 61, 28, 240, 20, 60, 51, 210, 27, 60, 117, 205, 3, 91, 171, 45, 114, 169, 247, 240, 167, 61, 124, 117, 60, 60, 0, 0, 0, 128, 61, 191, 180, 58, 138, 61, 53, 161, 195, 235, 113, 61, 131, 76, 104, 61, 0, 155, 192, 187, 81, 97, 237, 208, 42, 225, 171, 212, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 231, 110, 108, 225, 240, 104, 119, 244, 59, 24, 71, 61, 8, 50, 193, 60, 176, 7, 173, 48, 27, 150, 111, 251, 240, 104, 119, 244, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 187, 228, 43, 162, 96, 37, 86, 27, 230, 90, 147, 55, 61, 220, 1, 161, 60, 0, 155, 192, 59, 25, 31, 133, 83, 56, 76, 18, 235, 236, 30, 113, 61, 118, 95, 102, 61, 236, 209, 225, 59, 24, 58, 57, 209, 35, 212, 240, 206) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_23l5t") -[sub_resource type="ConvexPolygonShape" id=2] -margin = 0.002 -points = PoolVector3Array( -4.69014e-06, 0.0579483, -0.06, -4.69014e-06, 0.0689094, -0.06, 0.0155226, 0.0579483, -0.0579561, -4.69014e-06, 0.0424205, -0.0579561, -0.015011, 0.0424205, -0.0559828, -0.015532, 0.0579483, -0.0579561, 0.0155226, 0.0689094, -0.0579561, -0.015532, 0.0689094, -0.0579561, 0.0149867, 0.0424205, -0.0559828, 0.029993, 0.0579483, -0.0519655, -4.69014e-06, 0.0279518, -0.0519655, -0.0134627, 0.0279518, -0.0501919, -0.02899, 0.0424205, -0.0501919, -0.0300023, 0.0579483, -0.0519655, 0.029993, 0.0689094, -0.0519655, -0.0300023, 0.0689094, -0.0519655, 0.0134384, 0.0279518, -0.0501919, 0.0289657, 0.0424205, -0.0501919, 0.0259734, 0.0279518, -0.045, 0.0903753, 0.0376313, -0.00951448, 0.0902116, 0.0308725, -0.00951448, 0.0109672, 0.0155269, -0.0409828, -4.69014e-06, 0.0155269, -0.0424276, -0.0109914, 0.0155269, -0.0409828, -0.0212189, 0.0155269, -0.0367424, -0.0259828, 0.0279518, -0.045, -0.0367462, 0.0279518, -0.0367424, -0.0409891, 0.0424205, -0.0409828, -0.0424331, 0.0579483, -0.0424276, 0.0424238, 0.0689094, -0.0424276, -0.0424331, 0.0689094, -0.0424276, 0.0756966, 0.00908512, -0.00951448, 0.0884995, 0.0242081, -0.00951448, 0.0853584, 0.0180901, -0.00951448, 0.0809964, 0.01293, -0.00951448, 0.0889759, 0.0440192, -0.00951448, 0.0901371, 0.0446532, -0.00588489, 0.091611, 0.0379214, -0.00588489, 0.0914472, 0.0308051, -0.00588489, 0.00775153, 0.00598901, -0.0289781, -4.69014e-06, 0.00598901, -0.03, 0.0698459, 0.00681869, -0.00951448, -0.00777579, 0.00598901, -0.0289781, -0.015011, 0.00598901, -0.0259828, -0.0300023, 0.0155269, -0.03, -0.0450086, 0.0279518, -0.0259828, -0.0502042, 0.0424205, -0.0289781, -0.0519758, 0.0579483, -0.03, 0.0519515, 0.0689094, -0.0300117, 0.0819641, 0.0540022, -0.00951448, 0.0861027, 0.0496043, -0.00951448, -0.0519758, 0.0689094, -0.03, 0.0761432, 0.00784398, -0.00588489, 0.089631, 0.0237764, -0.00588489, 0.086326, 0.0173279, -0.00588489, 0.081711, 0.0118979, -0.00588489, 0.0905689, 0.0448961, 3.72529e-09, 0.0920874, 0.0380361, 3.72529e-09, 0.0871002, 0.0505419, -0.00588489, 0.0874872, 0.0508994, 3.72529e-09, 0.0919087, 0.0307781, 3.72529e-09, 0.0900627, 0.0236146, 3.72529e-09, 0.00401485, -8.3819e-07, -0.015, -4.69014e-06, -8.3819e-07, -0.0155403, 0.069965, 0.00545613, -0.00588489, -0.00402423, -8.3819e-07, -0.015, -0.00777579, -8.3819e-07, -0.0134495, -0.0212189, 0.00598901, -0.0212138, -0.0109914, -8.3819e-07, -0.0109828, -0.0367462, 0.0155269, -0.0212138, -0.0409891, 0.0155269, -0.0109828, -0.0502042, 0.0279518, -0.0134495, -0.0559953, 0.0424205, -0.015, -0.0579605, 0.0579483, -0.0155403, 0.0579511, 0.0689094, -0.0155403, 0.0827382, 0.0551759, -0.00588489, -0.0579605, 0.0689094, -0.0155403, 0.076307, 0.0073718, 3.72529e-09, 0.0700246, 0.00493674, 3.72529e-09, 0.0819938, 0.0114999, 3.72529e-09, 0.0866833, 0.0170379, 3.72529e-09, 0.0901371, 0.0446532, 0.00587314, 0.091611, 0.0379214, 0.00587314, 0.0914472, 0.0308051, 0.00587314, 0.083036, 0.0556211, 3.72529e-09, 0.0827382, 0.0551759, 0.00587314, 0.0871002, 0.0505419, 0.00587314, 0.089631, 0.0237764, 0.00587314, 0.086326, 0.0173279, 0.00587314, 0.00775153, -8.3819e-07, -0.0134495, 0.0109672, -8.3819e-07, -0.0109828, -0.0134627, -8.3819e-07, -0.00777604, -0.0259828, 0.00598901, -0.015, -0.02899, 0.00598901, -0.00777604, -0.0424331, 0.0155269, -1.17458e-05, -0.0519758, 0.0279518, 3.72529e-09, -0.0579605, 0.0424205, -1.17458e-05, -0.06, 0.0579483, 3.72529e-09, 0.0599906, 0.0689094, 3.72529e-09, -0.06, 0.0689094, 3.72529e-09, 0.0761432, 0.00784398, 0.00587314, 0.069965, 0.00545613, 0.00587314, 0.0109672, -8.3819e-07, 0.010971, 0.0134384, -8.3819e-07, 0.00776429, 0.0149867, -8.3819e-07, 0.00401723, 0.0155226, -8.3819e-07, 3.72529e-09, 0.0149867, -8.3819e-07, -0.00402897, 0.0134384, -8.3819e-07, -0.00777604, 0.081711, 0.0118979, 0.00587314, 0.0889759, 0.0440192, 0.00950274, 0.0903753, 0.0376313, 0.00950274, 0.0861027, 0.0496043, 0.00950274, 0.0902116, 0.0308725, 0.00950274, 0.0884995, 0.0242081, 0.00950274, 0.0579511, 0.0689094, 0.0155286, 0.0819641, 0.0540022, 0.00950274, 0.0519515, 0.0689094, 0.03, 0.0853584, 0.0180901, 0.00950274, 0.0809964, 0.01293, 0.00950274, -0.015011, -8.3819e-07, -0.00402897, -0.0300023, 0.00598901, 3.72529e-09, -0.02899, 0.00598901, 0.00776429, -0.0409891, 0.0155269, 0.010971, -0.0502042, 0.0279518, 0.0134377, -0.0559953, 0.0424205, 0.0149883, -0.0579605, 0.0579483, 0.0155286, -0.0579605, 0.0689094, 0.0155286, 0.0756966, 0.00908512, 0.00950274, 0.0698459, 0.00681869, 0.00950274, 0.00401485, -8.3819e-07, 0.015, 0.00775153, -8.3819e-07, 0.0134377, 0.0424238, 0.0689094, 0.0424158, 0.029993, 0.0579483, 0.0519538, 0.029993, 0.0689094, 0.0519538, 0.0289657, 0.0424205, 0.0501801, 0.0259734, 0.0279518, 0.045, -0.015532, -8.3819e-07, -1.17458e-05, -0.015011, -8.3819e-07, 0.00401723, -0.0134627, -8.3819e-07, 0.00776429, -0.0259828, 0.00598901, 0.015, -0.0367462, 0.0155269, 0.021202, -0.0450086, 0.0279518, 0.025971, -0.0502042, 0.0424205, 0.0289663, -0.0519758, 0.0579483, 0.03, -0.0519758, 0.0689094, 0.03, 0.0134384, 0.0279518, 0.0501801, 0.0109672, 0.0155269, 0.040971, 0.00775153, 0.00598901, 0.0289663, -4.69014e-06, 0.00598901, 0.03, -4.69014e-06, -8.3819e-07, 0.0155286, 0.0155226, 0.0579483, 0.0579444, 0.0149867, 0.0424205, 0.055971, 0.0155226, 0.0689094, 0.0579444, -0.0109914, -8.3819e-07, 0.010971, -0.0212189, 0.00598901, 0.021202, -0.0300023, 0.0155269, 0.0299883, -0.0367462, 0.0279518, 0.0367306, -0.0409891, 0.0424205, 0.040971, -0.0424331, 0.0579483, 0.0424158, -0.0424331, 0.0689094, 0.0424158, -4.69014e-06, 0.0279518, 0.0519538, -4.69014e-06, 0.0155269, 0.0424158, -0.0109914, 0.0155269, 0.040971, -0.00777579, 0.00598901, 0.0289663, -0.00402423, -8.3819e-07, 0.015, -4.69014e-06, 0.0579483, 0.06, -4.69014e-06, 0.0424205, 0.0579444, -4.69014e-06, 0.0689094, 0.06, -0.00777579, -8.3819e-07, 0.0134377, -0.015011, 0.00598901, 0.025971, -0.0212189, 0.0155269, 0.0367306, -0.0259828, 0.0279518, 0.045, -0.02899, 0.0424205, 0.0501801, -0.0300023, 0.0579483, 0.0519538, -0.0300023, 0.0689094, 0.0519538, -0.015011, 0.0424205, 0.055971, -0.0134627, 0.0279518, 0.0501801, -0.015532, 0.0579483, 0.0579444, -0.015532, 0.0689094, 0.0579444 ) +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_y01ub"] +points = PackedVector3Array(-4.69014e-06, 0.0579483, -0.06, -4.69014e-06, 0.0689094, -0.06, 0.0155226, 0.0579483, -0.0579561, -4.69014e-06, 0.0424205, -0.0579561, -0.015011, 0.0424205, -0.0559828, -0.015532, 0.0579483, -0.0579561, -0.015532, 0.0689094, -0.0579561, 0.0155226, 0.0689094, -0.0579561, 0.0149867, 0.0424205, -0.0559828, 0.029993, 0.0579483, -0.0519655, -4.69014e-06, 0.0279518, -0.0519655, -0.0134627, 0.0279518, -0.0501919, -0.02899, 0.0424205, -0.0501919, -0.0300023, 0.0579483, -0.0519655, -0.0300023, 0.0689094, -0.0519655, 0.029993, 0.0689094, -0.0519655, 0.0289657, 0.0424205, -0.0501919, 0.0259734, 0.0279518, -0.045, 0.0134384, 0.0279518, -0.0501919, 0.0903753, 0.0376313, -0.00951448, 0.0902116, 0.0308725, -0.00951448, 0.0109672, 0.0155269, -0.0409828, -4.69014e-06, 0.0155269, -0.0424276, -0.0109914, 0.0155269, -0.0409828, -0.0212189, 0.0155269, -0.0367424, -0.0259828, 0.0279518, -0.045, -0.0367462, 0.0279518, -0.0367424, -0.0409891, 0.0424205, -0.0409828, -0.0424331, 0.0579483, -0.0424276, -0.0424331, 0.0689094, -0.0424276, 0.0424238, 0.0689094, -0.0424276, 0.0884995, 0.0242081, -0.00951448, 0.0853584, 0.0180901, -0.00951448, 0.0809964, 0.01293, -0.00951448, 0.0756966, 0.00908512, -0.00951448, 0.0889759, 0.0440192, -0.00951448, 0.0901371, 0.0446532, -0.00588489, 0.091611, 0.0379214, -0.00588489, 0.0914472, 0.0308051, -0.00588489, 0.00775153, 0.00598901, -0.0289781, -4.69014e-06, 0.00598901, -0.03, 0.0698459, 0.00681869, -0.00951448, -0.00777579, 0.00598901, -0.0289781, -0.015011, 0.00598901, -0.0259828, -0.0300023, 0.0155269, -0.03, -0.0450086, 0.0279518, -0.0259828, -0.0502042, 0.0424205, -0.0289781, -0.0519758, 0.0579483, -0.03, -0.0519758, 0.0689094, -0.03, 0.0519515, 0.0689094, -0.0300117, 0.0819641, 0.0540022, -0.00951448, 0.0861027, 0.0496043, -0.00951448, 0.089631, 0.0237764, -0.00588489, 0.086326, 0.0173279, -0.00588489, 0.081711, 0.0118979, -0.00588489, 0.0761432, 0.00784398, -0.00588489, 0.0905689, 0.0448961, 3.72529e-09, 0.0920874, 0.0380361, 3.72529e-09, 0.0871002, 0.0505419, -0.00588489, 0.0874872, 0.0508994, 3.72529e-09, 0.0919087, 0.0307781, 3.72529e-09, 0.0900627, 0.0236146, 3.72529e-09, 0.00401485, -8.3819e-07, -0.015, -4.69014e-06, -8.3819e-07, -0.0155403, 0.069965, 0.00545613, -0.00588489, -0.00402423, -8.3819e-07, -0.015, -0.00777579, -8.3819e-07, -0.0134495, -0.0212189, 0.00598901, -0.0212138, -0.0109914, -8.3819e-07, -0.0109828, -0.0367462, 0.0155269, -0.0212138, -0.0502042, 0.0279518, -0.0134495, -0.0409891, 0.0155269, -0.0109828, -0.0559953, 0.0424205, -0.015, -0.0579605, 0.0579483, -0.0155403, -0.0579605, 0.0689094, -0.0155403, 0.0579511, 0.0689094, -0.0155403, 0.0827382, 0.0551759, -0.00588489, 0.0866833, 0.0170379, 3.72529e-09, 0.0819938, 0.0114999, 3.72529e-09, 0.076307, 0.0073718, 3.72529e-09, 0.0700246, 0.00493674, 3.72529e-09, 0.0901371, 0.0446532, 0.00587314, 0.091611, 0.0379214, 0.00587314, 0.0914472, 0.0308051, 0.00587314, 0.083036, 0.0556211, 3.72529e-09, 0.0827382, 0.0551759, 0.00587314, 0.0871002, 0.0505419, 0.00587314, 0.089631, 0.0237764, 0.00587314, 0.086326, 0.0173279, 0.00587314, 0.00775153, -8.3819e-07, -0.0134495, 0.0109672, -8.3819e-07, -0.0109828, -0.0134627, -8.3819e-07, -0.00777604, -0.0259828, 0.00598901, -0.015, -0.02899, 0.00598901, -0.00777604, -0.0519758, 0.0279518, 3.72529e-09, -0.0424331, 0.0155269, -1.17458e-05, -0.0579605, 0.0424205, -1.17458e-05, -0.06, 0.0579483, 3.72529e-09, -0.06, 0.0689094, 3.72529e-09, 0.0599906, 0.0689094, 3.72529e-09, 0.081711, 0.0118979, 0.00587314, 0.0761432, 0.00784398, 0.00587314, 0.069965, 0.00545613, 0.00587314, 0.0109672, -8.3819e-07, 0.010971, 0.0134384, -8.3819e-07, 0.00776429, 0.0149867, -8.3819e-07, 0.00401723, 0.0155226, -8.3819e-07, 3.72529e-09, 0.0149867, -8.3819e-07, -0.00402897, 0.0134384, -8.3819e-07, -0.00777604, 0.0903753, 0.0376313, 0.00950274, 0.0861027, 0.0496043, 0.00950274, 0.0889759, 0.0440192, 0.00950274, 0.0902116, 0.0308725, 0.00950274, 0.0884995, 0.0242081, 0.00950274, 0.0579511, 0.0689094, 0.0155286, 0.0819641, 0.0540022, 0.00950274, 0.0519515, 0.0689094, 0.03, 0.0853584, 0.0180901, 0.00950274, 0.0809964, 0.01293, 0.00950274, -0.015011, -8.3819e-07, -0.00402897, -0.0300023, 0.00598901, 3.72529e-09, -0.0409891, 0.0155269, 0.010971, -0.0502042, 0.0279518, 0.0134377, -0.0559953, 0.0424205, 0.0149883, -0.02899, 0.00598901, 0.00776429, -0.0579605, 0.0579483, 0.0155286, -0.0579605, 0.0689094, 0.0155286, 0.0756966, 0.00908512, 0.00950274, 0.0698459, 0.00681869, 0.00950274, 0.00401485, -8.3819e-07, 0.015, 0.00775153, -8.3819e-07, 0.0134377, 0.029993, 0.0579483, 0.0519538, 0.0424238, 0.0689094, 0.0424158, 0.029993, 0.0689094, 0.0519538, 0.0289657, 0.0424205, 0.0501801, 0.0259734, 0.0279518, 0.045, -0.015532, -8.3819e-07, -1.17458e-05, -0.015011, -8.3819e-07, 0.00401723, -0.0367462, 0.0155269, 0.021202, -0.0450086, 0.0279518, 0.025971, -0.0502042, 0.0424205, 0.0289663, -0.0519758, 0.0579483, 0.03, -0.0134627, -8.3819e-07, 0.00776429, -0.0259828, 0.00598901, 0.015, -0.0519758, 0.0689094, 0.03, 0.0134384, 0.0279518, 0.0501801, 0.0109672, 0.0155269, 0.040971, 0.00775153, 0.00598901, 0.0289663, -4.69014e-06, 0.00598901, 0.03, -4.69014e-06, -8.3819e-07, 0.0155286, 0.0155226, 0.0579483, 0.0579444, 0.0149867, 0.0424205, 0.055971, 0.0155226, 0.0689094, 0.0579444, -0.0300023, 0.0155269, 0.0299883, -0.0367462, 0.0279518, 0.0367306, -0.0409891, 0.0424205, 0.040971, -0.0424331, 0.0579483, 0.0424158, -0.0109914, -8.3819e-07, 0.010971, -0.0212189, 0.00598901, 0.021202, -0.0424331, 0.0689094, 0.0424158, -4.69014e-06, 0.0279518, 0.0519538, -4.69014e-06, 0.0155269, 0.0424158, -0.0109914, 0.0155269, 0.040971, -0.00777579, 0.00598901, 0.0289663, -0.00402423, -8.3819e-07, 0.015, -4.69014e-06, 0.0579483, 0.06, -4.69014e-06, 0.0424205, 0.0579444, -4.69014e-06, 0.0689094, 0.06, -0.015011, 0.00598901, 0.025971, -0.0212189, 0.0155269, 0.0367306, -0.0259828, 0.0279518, 0.045, -0.02899, 0.0424205, 0.0501801, -0.0300023, 0.0579483, 0.0519538, -0.00777579, -8.3819e-07, 0.0134377, -0.0300023, 0.0689094, 0.0519538, -0.015011, 0.0424205, 0.055971, -0.0134627, 0.0279518, 0.0501801, -0.015532, 0.0579483, 0.0579444, -0.015532, 0.0689094, 0.0579444) -[sub_resource type="Resource" id=3] -script = ExtResource( 6 ) -open_pose = ExtResource( 8 ) -closed_pose = ExtResource( 8 ) +[sub_resource type="Resource" id="Resource_nm328"] +script = ExtResource("5_rkolq") +open_pose = ExtResource("4_a44uc") +closed_pose = ExtResource("4_a44uc") -[sub_resource type="Resource" id=4] -script = ExtResource( 6 ) -open_pose = ExtResource( 7 ) -closed_pose = ExtResource( 7 ) +[sub_resource type="Resource" id="Resource_4mm4i"] +script = ExtResource("5_rkolq") +open_pose = ExtResource("7_m23hc") +closed_pose = ExtResource("7_m23hc") -[node name="Teacup" type="RigidBody" groups=["Teacup"]] -collision_layer = 4 -collision_mask = 196615 -script = ExtResource( 1 ) +[node name="Teacup" groups=["Teacup"] instance=ExtResource("1_q232w")] -[node name="Teacup" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) +[node name="Teacup" type="MeshInstance3D" parent="." index="0"] +gi_mode = 0 +mesh = SubResource("ArrayMesh_gro0q") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("5") -[node name="CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 2 ) +[node name="CollisionShape3D" parent="." index="1"] +shape = SubResource("ConvexPolygonShape3D_y01ub") -[node name="GrabPointHandLeft" parent="." instance=ExtResource( 3 )] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0.069, -0.015 ) -hand_pose = SubResource( 3 ) +[node name="GrabPointHandLeft" parent="." index="2" instance=ExtResource("3")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0.069, -0.015) +hand_pose = SubResource("Resource_nm328") -[node name="GrabPointHandRight" parent="." instance=ExtResource( 2 )] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0.069, 0.015 ) -hand_pose = SubResource( 4 ) +[node name="GrabPointHandRight" parent="." index="3" instance=ExtResource("2")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0.069, 0.015) +hand_pose = SubResource("Resource_4mm4i") -[node name="GrabPointSnapSaucer" parent="." instance=ExtResource( 4 )] +[node name="GrabPointSnapSaucer" parent="." index="4" instance=ExtResource("4")] require_group = "Saucer" -[node name="GrabPointSnapStand" parent="." instance=ExtResource( 4 )] -transform = Transform( -0.110203, 0.993909, 0, -0.993909, -0.110203, 0, 0, 0, 1, 0.0788087, 0.0305528, 0 ) +[node name="GrabPointSnapStand" parent="." index="5" instance=ExtResource("4")] +transform = Transform3D(-0.110203, 0.993909, 0, -0.993909, -0.110203, 0, 0, 0, 1, 0.0788087, 0.0305528, 0) require_group = "TeacupStand" diff --git a/scenes/pickable_demo/objects/teacup_stand.tscn b/scenes/pickable_demo/objects/teacup_stand.tscn index 800accdd..4fb00d79 100644 --- a/scenes/pickable_demo/objects/teacup_stand.tscn +++ b/scenes/pickable_demo/objects/teacup_stand.tscn @@ -1,68 +1,88 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=8 format=3 uid="uid://b3mykwawmnxpi"] -[ext_resource path="res://addons/godot-xr-tools/objects/snap_zone.tscn" type="PackedScene" id=1] -[ext_resource path="res://scenes/pickable_demo/materials/stand_metal.tres" type="Material" id=2] +[ext_resource type="PackedScene" uid="uid://ce7vysyvondf8" path="res://addons/godot-xr-tools/objects/snap_zone.tscn" id="1"] +[ext_resource type="Material" path="res://scenes/pickable_demo/materials/stand_metal.tres" id="2"] -[sub_resource type="ArrayMesh" id=1] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hqk2h"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_8vbk1"] +_surfaces = [{ +"aabb": AABB(-0.0566603, 0, -0.089532, 0.15666, 0.3, 0.179064), +"format": 4097, +"index_count": 798, +"index_data": PackedByteArray(42, 0, 14, 0, 44, 0, 42, 0, 28, 0, 14, 0, 14, 0, 46, 0, 44, 0, 14, 0, 16, 0, 46, 0, 2, 0, 12, 0, 1, 0, 2, 0, 13, 0, 12, 0, 16, 0, 48, 0, 46, 0, 16, 0, 18, 0, 48, 0, 15, 0, 2, 0, 3, 0, 15, 0, 13, 0, 2, 0, 18, 0, 50, 0, 48, 0, 18, 0, 19, 0, 50, 0, 17, 0, 3, 0, 4, 0, 17, 0, 15, 0, 3, 0, 19, 0, 52, 0, 50, 0, 19, 0, 20, 0, 52, 0, 21, 0, 4, 0, 5, 0, 21, 0, 17, 0, 4, 0, 20, 0, 54, 0, 52, 0, 20, 0, 24, 0, 54, 0, 22, 0, 5, 0, 6, 0, 22, 0, 21, 0, 5, 0, 22, 0, 7, 0, 23, 0, 22, 0, 6, 0, 7, 0, 24, 0, 56, 0, 54, 0, 24, 0, 26, 0, 56, 0, 26, 0, 58, 0, 56, 0, 26, 0, 38, 0, 58, 0, 23, 0, 8, 0, 25, 0, 23, 0, 7, 0, 8, 0, 38, 0, 60, 0, 58, 0, 38, 0, 29, 0, 60, 0, 9, 0, 25, 0, 8, 0, 9, 0, 36, 0, 25, 0, 29, 0, 62, 0, 60, 0, 29, 0, 32, 0, 62, 0, 10, 0, 36, 0, 9, 0, 10, 0, 30, 0, 36, 0, 62, 0, 34, 0, 39, 0, 62, 0, 32, 0, 34, 0, 31, 0, 10, 0, 11, 0, 31, 0, 30, 0, 10, 0, 0, 0, 31, 0, 11, 0, 0, 0, 33, 0, 31, 0, 10, 0, 0, 0, 11, 0, 0, 0, 2, 0, 1, 0, 2, 0, 4, 0, 3, 0, 4, 0, 6, 0, 5, 0, 6, 0, 8, 0, 7, 0, 8, 0, 10, 0, 9, 0, 10, 0, 2, 0, 0, 0, 2, 0, 6, 0, 4, 0, 6, 0, 10, 0, 8, 0, 2, 0, 10, 0, 6, 0, 12, 0, 68, 0, 66, 0, 12, 0, 13, 0, 68, 0, 13, 0, 70, 0, 68, 0, 13, 0, 15, 0, 70, 0, 15, 0, 72, 0, 70, 0, 15, 0, 17, 0, 72, 0, 17, 0, 74, 0, 72, 0, 17, 0, 21, 0, 74, 0, 27, 0, 74, 0, 21, 0, 27, 0, 76, 0, 74, 0, 76, 0, 19, 0, 78, 0, 76, 0, 27, 0, 19, 0, 19, 0, 79, 0, 78, 0, 19, 0, 18, 0, 79, 0, 18, 0, 82, 0, 79, 0, 18, 0, 16, 0, 82, 0, 16, 0, 84, 0, 82, 0, 16, 0, 14, 0, 84, 0, 14, 0, 86, 0, 84, 0, 14, 0, 28, 0, 86, 0, 28, 0, 63, 0, 86, 0, 28, 0, 35, 0, 63, 0, 35, 0, 66, 0, 63, 0, 35, 0, 12, 0, 66, 0, 27, 0, 110, 0, 19, 0, 27, 0, 88, 0, 110, 0, 23, 0, 92, 0, 22, 0, 23, 0, 94, 0, 92, 0, 25, 0, 94, 0, 23, 0, 25, 0, 96, 0, 94, 0, 25, 0, 98, 0, 96, 0, 25, 0, 36, 0, 98, 0, 100, 0, 36, 0, 37, 0, 100, 0, 98, 0, 36, 0, 100, 0, 38, 0, 102, 0, 100, 0, 37, 0, 38, 0, 26, 0, 106, 0, 104, 0, 26, 0, 24, 0, 106, 0, 24, 0, 107, 0, 106, 0, 24, 0, 20, 0, 107, 0, 107, 0, 19, 0, 110, 0, 107, 0, 20, 0, 19, 0, 88, 0, 21, 0, 89, 0, 88, 0, 27, 0, 21, 0, 21, 0, 92, 0, 89, 0, 21, 0, 22, 0, 92, 0, 112, 0, 38, 0, 37, 0, 112, 0, 134, 0, 38, 0, 118, 0, 33, 0, 120, 0, 118, 0, 31, 0, 33, 0, 121, 0, 33, 0, 12, 0, 121, 0, 120, 0, 33, 0, 12, 0, 124, 0, 121, 0, 12, 0, 35, 0, 124, 0, 126, 0, 35, 0, 28, 0, 126, 0, 124, 0, 35, 0, 28, 0, 127, 0, 126, 0, 28, 0, 34, 0, 127, 0, 34, 0, 130, 0, 127, 0, 34, 0, 32, 0, 130, 0, 130, 0, 29, 0, 132, 0, 130, 0, 32, 0, 29, 0, 38, 0, 132, 0, 29, 0, 38, 0, 134, 0, 132, 0, 112, 0, 36, 0, 114, 0, 112, 0, 37, 0, 36, 0, 43, 0, 46, 0, 45, 0, 43, 0, 44, 0, 46, 0, 47, 0, 50, 0, 49, 0, 47, 0, 48, 0, 50, 0, 49, 0, 52, 0, 51, 0, 49, 0, 50, 0, 52, 0, 53, 0, 56, 0, 55, 0, 53, 0, 54, 0, 56, 0, 57, 0, 60, 0, 59, 0, 57, 0, 58, 0, 60, 0, 59, 0, 62, 0, 61, 0, 59, 0, 60, 0, 62, 0, 40, 0, 42, 0, 41, 0, 40, 0, 39, 0, 42, 0, 41, 0, 44, 0, 43, 0, 41, 0, 42, 0, 44, 0, 45, 0, 48, 0, 47, 0, 45, 0, 46, 0, 48, 0, 51, 0, 54, 0, 53, 0, 51, 0, 52, 0, 54, 0, 55, 0, 58, 0, 57, 0, 55, 0, 56, 0, 58, 0, 39, 0, 61, 0, 62, 0, 39, 0, 40, 0, 61, 0, 49, 0, 45, 0, 47, 0, 45, 0, 41, 0, 43, 0, 41, 0, 61, 0, 40, 0, 61, 0, 57, 0, 59, 0, 57, 0, 53, 0, 55, 0, 53, 0, 49, 0, 51, 0, 49, 0, 41, 0, 45, 0, 41, 0, 57, 0, 61, 0, 57, 0, 49, 0, 53, 0, 41, 0, 49, 0, 57, 0, 64, 0, 66, 0, 65, 0, 64, 0, 63, 0, 66, 0, 65, 0, 68, 0, 67, 0, 65, 0, 66, 0, 68, 0, 67, 0, 70, 0, 69, 0, 67, 0, 68, 0, 70, 0, 69, 0, 72, 0, 71, 0, 69, 0, 70, 0, 72, 0, 71, 0, 74, 0, 73, 0, 71, 0, 72, 0, 74, 0, 80, 0, 82, 0, 81, 0, 80, 0, 79, 0, 82, 0, 63, 0, 85, 0, 86, 0, 63, 0, 64, 0, 85, 0, 73, 0, 76, 0, 75, 0, 73, 0, 74, 0, 76, 0, 77, 0, 79, 0, 80, 0, 77, 0, 78, 0, 79, 0, 81, 0, 84, 0, 83, 0, 81, 0, 82, 0, 84, 0, 83, 0, 86, 0, 85, 0, 83, 0, 84, 0, 86, 0, 75, 0, 78, 0, 77, 0, 75, 0, 76, 0, 78, 0, 73, 0, 69, 0, 71, 0, 69, 0, 65, 0, 67, 0, 65, 0, 85, 0, 64, 0, 85, 0, 81, 0, 83, 0, 81, 0, 77, 0, 80, 0, 77, 0, 73, 0, 75, 0, 73, 0, 65, 0, 69, 0, 65, 0, 81, 0, 85, 0, 81, 0, 73, 0, 77, 0, 65, 0, 73, 0, 81, 0, 90, 0, 92, 0, 91, 0, 90, 0, 89, 0, 92, 0, 91, 0, 94, 0, 93, 0, 91, 0, 92, 0, 94, 0, 93, 0, 96, 0, 95, 0, 93, 0, 94, 0, 96, 0, 101, 0, 104, 0, 103, 0, 101, 0, 102, 0, 104, 0, 103, 0, 106, 0, 105, 0, 103, 0, 104, 0, 106, 0, 108, 0, 110, 0, 109, 0, 108, 0, 107, 0, 110, 0, 99, 0, 102, 0, 101, 0, 99, 0, 100, 0, 102, 0, 87, 0, 89, 0, 90, 0, 87, 0, 88, 0, 89, 0, 97, 0, 100, 0, 99, 0, 97, 0, 98, 0, 100, 0, 105, 0, 107, 0, 108, 0, 105, 0, 106, 0, 107, 0, 88, 0, 109, 0, 110, 0, 88, 0, 87, 0, 109, 0, 95, 0, 98, 0, 97, 0, 95, 0, 96, 0, 98, 0, 103, 0, 99, 0, 101, 0, 99, 0, 95, 0, 97, 0, 95, 0, 91, 0, 93, 0, 91, 0, 87, 0, 90, 0, 87, 0, 108, 0, 109, 0, 108, 0, 103, 0, 105, 0, 103, 0, 95, 0, 99, 0, 95, 0, 87, 0, 91, 0, 87, 0, 103, 0, 108, 0, 95, 0, 103, 0, 87, 0, 113, 0, 116, 0, 115, 0, 113, 0, 114, 0, 116, 0, 117, 0, 120, 0, 119, 0, 117, 0, 118, 0, 120, 0, 128, 0, 130, 0, 129, 0, 128, 0, 127, 0, 130, 0, 111, 0, 114, 0, 113, 0, 111, 0, 112, 0, 114, 0, 115, 0, 118, 0, 117, 0, 115, 0, 116, 0, 118, 0, 122, 0, 124, 0, 123, 0, 122, 0, 121, 0, 124, 0, 125, 0, 127, 0, 128, 0, 125, 0, 126, 0, 127, 0, 129, 0, 132, 0, 131, 0, 129, 0, 130, 0, 132, 0, 131, 0, 134, 0, 133, 0, 131, 0, 132, 0, 134, 0, 119, 0, 121, 0, 122, 0, 119, 0, 120, 0, 121, 0, 123, 0, 126, 0, 125, 0, 123, 0, 124, 0, 126, 0, 112, 0, 133, 0, 134, 0, 112, 0, 111, 0, 133, 0, 133, 0, 129, 0, 131, 0, 129, 0, 125, 0, 128, 0, 125, 0, 122, 0, 123, 0, 122, 0, 117, 0, 119, 0, 117, 0, 113, 0, 115, 0, 113, 0, 133, 0, 111, 0, 133, 0, 125, 0, 129, 0, 125, 0, 117, 0, 122, 0, 117, 0, 133, 0, 113, 0, 125, 0, 133, 0, 117, 0, 12, 0, 0, 0, 1, 0, 12, 0, 33, 0, 0, 0, 39, 0, 28, 0, 42, 0, 39, 0, 34, 0, 28, 0, 38, 0, 104, 0, 102, 0, 38, 0, 26, 0, 104, 0, 30, 0, 118, 0, 116, 0, 30, 0, 31, 0, 118, 0, 36, 0, 116, 0, 114, 0, 36, 0, 30, 0, 116, 0), +"lods": [0.016668, PackedByteArray(52, 0, 28, 0, 14, 0, 14, 0, 19, 0, 52, 0, 19, 0, 20, 0, 52, 0, 20, 0, 38, 0, 52, 0, 38, 0, 29, 0, 52, 0, 52, 0, 29, 0, 34, 0, 52, 0, 34, 0, 39, 0, 39, 0, 28, 0, 52, 0, 39, 0, 34, 0, 28, 0, 9, 0, 17, 0, 12, 0, 21, 0, 17, 0, 9, 0, 12, 0, 33, 0, 0, 0, 12, 0, 0, 0, 9, 0, 25, 0, 21, 0, 9, 0, 9, 0, 36, 0, 25, 0, 9, 0, 30, 0, 36, 0, 0, 0, 30, 0, 9, 0, 0, 0, 33, 0, 30, 0, 12, 0, 68, 0, 66, 0, 35, 0, 12, 0, 66, 0, 35, 0, 66, 0, 63, 0, 64, 0, 63, 0, 66, 0, 64, 0, 66, 0, 65, 0, 65, 0, 66, 0, 68, 0, 65, 0, 68, 0, 67, 0, 12, 0, 17, 0, 68, 0, 17, 0, 70, 0, 68, 0, 67, 0, 68, 0, 70, 0, 67, 0, 70, 0, 69, 0, 17, 0, 72, 0, 70, 0, 69, 0, 70, 0, 72, 0, 69, 0, 72, 0, 71, 0, 17, 0, 74, 0, 72, 0, 71, 0, 72, 0, 74, 0, 71, 0, 74, 0, 73, 0, 17, 0, 21, 0, 74, 0, 27, 0, 74, 0, 21, 0, 27, 0, 76, 0, 74, 0, 73, 0, 74, 0, 76, 0, 73, 0, 76, 0, 75, 0, 76, 0, 27, 0, 19, 0, 76, 0, 19, 0, 78, 0, 75, 0, 76, 0, 78, 0, 75, 0, 78, 0, 77, 0, 19, 0, 79, 0, 78, 0, 77, 0, 78, 0, 79, 0, 77, 0, 79, 0, 80, 0, 19, 0, 14, 0, 79, 0, 14, 0, 82, 0, 79, 0, 80, 0, 79, 0, 82, 0, 80, 0, 82, 0, 81, 0, 14, 0, 84, 0, 82, 0, 81, 0, 82, 0, 84, 0, 81, 0, 84, 0, 83, 0, 14, 0, 86, 0, 84, 0, 83, 0, 84, 0, 86, 0, 83, 0, 86, 0, 85, 0, 14, 0, 28, 0, 86, 0, 28, 0, 63, 0, 86, 0, 28, 0, 35, 0, 63, 0, 63, 0, 85, 0, 86, 0, 63, 0, 64, 0, 85, 0, 27, 0, 110, 0, 19, 0, 27, 0, 88, 0, 110, 0, 88, 0, 109, 0, 110, 0, 88, 0, 87, 0, 109, 0, 108, 0, 110, 0, 109, 0, 108, 0, 107, 0, 110, 0, 107, 0, 19, 0, 110, 0, 107, 0, 20, 0, 19, 0, 105, 0, 107, 0, 108, 0, 105, 0, 106, 0, 107, 0, 20, 0, 107, 0, 106, 0, 103, 0, 106, 0, 105, 0, 103, 0, 104, 0, 106, 0, 20, 0, 106, 0, 104, 0, 38, 0, 20, 0, 104, 0, 101, 0, 104, 0, 103, 0, 101, 0, 102, 0, 104, 0, 38, 0, 104, 0, 102, 0, 99, 0, 102, 0, 101, 0, 99, 0, 100, 0, 102, 0, 100, 0, 38, 0, 102, 0, 100, 0, 37, 0, 38, 0, 100, 0, 36, 0, 37, 0, 97, 0, 100, 0, 99, 0, 97, 0, 98, 0, 100, 0, 100, 0, 98, 0, 36, 0, 25, 0, 36, 0, 98, 0, 95, 0, 98, 0, 97, 0, 95, 0, 96, 0, 98, 0, 25, 0, 98, 0, 96, 0, 93, 0, 96, 0, 95, 0, 93, 0, 94, 0, 96, 0, 25, 0, 96, 0, 94, 0, 91, 0, 94, 0, 93, 0, 91, 0, 92, 0, 94, 0, 25, 0, 94, 0, 92, 0, 21, 0, 25, 0, 92, 0, 90, 0, 92, 0, 91, 0, 90, 0, 89, 0, 92, 0, 21, 0, 92, 0, 89, 0, 88, 0, 21, 0, 89, 0, 88, 0, 27, 0, 21, 0, 87, 0, 88, 0, 89, 0, 87, 0, 89, 0, 90, 0, 112, 0, 38, 0, 37, 0, 112, 0, 111, 0, 133, 0, 112, 0, 133, 0, 134, 0, 112, 0, 134, 0, 38, 0, 131, 0, 134, 0, 133, 0, 131, 0, 132, 0, 134, 0, 38, 0, 134, 0, 132, 0, 38, 0, 132, 0, 29, 0, 129, 0, 132, 0, 131, 0, 129, 0, 130, 0, 132, 0, 130, 0, 29, 0, 132, 0, 34, 0, 29, 0, 130, 0, 128, 0, 130, 0, 129, 0, 128, 0, 127, 0, 130, 0, 34, 0, 130, 0, 127, 0, 28, 0, 34, 0, 127, 0, 125, 0, 127, 0, 128, 0, 125, 0, 126, 0, 127, 0, 28, 0, 127, 0, 126, 0, 126, 0, 35, 0, 28, 0, 123, 0, 126, 0, 125, 0, 123, 0, 124, 0, 126, 0, 126, 0, 124, 0, 35, 0, 12, 0, 35, 0, 124, 0, 122, 0, 124, 0, 123, 0, 122, 0, 121, 0, 124, 0, 12, 0, 124, 0, 121, 0, 121, 0, 33, 0, 12, 0, 119, 0, 121, 0, 122, 0, 119, 0, 120, 0, 121, 0, 121, 0, 120, 0, 33, 0, 117, 0, 120, 0, 119, 0, 117, 0, 118, 0, 120, 0, 118, 0, 33, 0, 120, 0, 118, 0, 30, 0, 33, 0, 115, 0, 118, 0, 117, 0, 115, 0, 116, 0, 118, 0, 30, 0, 118, 0, 116, 0, 36, 0, 30, 0, 116, 0, 113, 0, 116, 0, 115, 0, 113, 0, 114, 0, 116, 0, 36, 0, 116, 0, 114, 0, 112, 0, 36, 0, 114, 0, 112, 0, 37, 0, 36, 0, 111, 0, 112, 0, 114, 0, 111, 0, 114, 0, 113, 0, 73, 0, 69, 0, 71, 0, 73, 0, 65, 0, 69, 0, 69, 0, 65, 0, 67, 0, 77, 0, 73, 0, 75, 0, 81, 0, 73, 0, 77, 0, 65, 0, 73, 0, 81, 0, 81, 0, 77, 0, 80, 0, 65, 0, 81, 0, 85, 0, 85, 0, 81, 0, 83, 0, 65, 0, 85, 0, 64, 0, 103, 0, 99, 0, 101, 0, 103, 0, 95, 0, 99, 0, 99, 0, 95, 0, 97, 0, 108, 0, 103, 0, 105, 0, 87, 0, 103, 0, 108, 0, 95, 0, 103, 0, 87, 0, 87, 0, 108, 0, 109, 0, 95, 0, 87, 0, 91, 0, 91, 0, 87, 0, 90, 0, 95, 0, 91, 0, 93, 0, 133, 0, 129, 0, 131, 0, 133, 0, 125, 0, 129, 0, 129, 0, 125, 0, 128, 0, 113, 0, 133, 0, 111, 0, 117, 0, 133, 0, 113, 0, 125, 0, 133, 0, 117, 0, 117, 0, 113, 0, 115, 0, 125, 0, 117, 0, 122, 0, 122, 0, 117, 0, 119, 0, 125, 0, 122, 0, 123, 0)], +"primitive": 3, +"vertex_count": 135, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 188, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 187, 10, 215, 35, 60, 0, 0, 0, 0, 0, 0, 0, 128, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 59, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 60, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 60, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 60, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 59, 10, 215, 35, 188, 0, 0, 0, 0, 0, 0, 0, 128, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 187, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 188, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 187, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 187, 10, 215, 35, 60, 113, 61, 138, 62, 0, 0, 0, 128, 10, 215, 35, 60, 225, 122, 148, 62, 0, 0, 0, 128, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 59, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 59, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 60, 189, 227, 13, 188, 11, 237, 138, 62, 10, 215, 163, 59, 189, 227, 13, 188, 71, 203, 147, 62, 10, 215, 163, 59, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 189, 227, 13, 188, 11, 237, 138, 62, 8, 215, 163, 187, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 188, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 187, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 187, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 188, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 187, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 187, 249, 251, 191, 59, 154, 153, 153, 62, 0, 0, 0, 128, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 59, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 59, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 60, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 59, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 59, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 60, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 59, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 59, 249, 251, 191, 187, 154, 153, 153, 62, 0, 0, 0, 128, 10, 215, 35, 188, 80, 141, 151, 62, 0, 0, 0, 128, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 187, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 187, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 188, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 187, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 166, 155, 196, 61, 113, 61, 138, 62, 0, 0, 0, 128, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 59, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 60, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 60, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 166, 155, 196, 61, 225, 122, 148, 62, 0, 0, 0, 128, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 187, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 188, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 61, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 61, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 61, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 61, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 61, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 61, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 189, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 189, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 189, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 189, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 189, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 189, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 189) +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_sini6"] resource_name = "stand_Cylinder" -surfaces/0 = { -"aabb": AABB( -0.0566603, 0, -0.089532, 0.15666, 0.3, 0.179064 ), -"array_data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 129, 126, 130, 63, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 129, 126, 130, 63, 0, 60, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 0, 129, 127, 193, 0, 58, 20, 56, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 188, 0, 129, 127, 193, 245, 58, 86, 56, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 188, 127, 80, 129, 40, 85, 59, 0, 56, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 187, 0, 129, 127, 193, 169, 59, 10, 57, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 187, 127, 46, 129, 23, 170, 58, 0, 56, 10, 215, 35, 60, 0, 0, 0, 0, 0, 0, 0, 128, 0, 129, 127, 193, 235, 59, 0, 58, 10, 215, 35, 60, 0, 0, 0, 0, 0, 0, 0, 128, 127, 0, 127, 1, 0, 58, 0, 56, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 59, 0, 129, 127, 193, 169, 59, 245, 58, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 59, 80, 0, 127, 23, 85, 57, 0, 56, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 60, 0, 129, 126, 193, 245, 58, 169, 59, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 60, 46, 0, 127, 40, 170, 56, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 60, 0, 0, 126, 63, 0, 56, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 60, 0, 129, 127, 193, 0, 58, 235, 59, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 60, 210, 0, 80, 63, 170, 54, 0, 56, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 60, 0, 129, 127, 193, 10, 57, 169, 59, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 59, 176, 0, 46, 63, 85, 53, 0, 56, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 59, 0, 129, 127, 193, 86, 56, 245, 58, 10, 215, 35, 188, 0, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 63, 0, 52, 0, 56, 10, 215, 35, 188, 0, 0, 0, 0, 0, 0, 0, 128, 0, 129, 127, 193, 20, 56, 0, 58, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 187, 129, 46, 210, 63, 85, 49, 0, 56, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 187, 0, 129, 127, 193, 86, 56, 10, 57, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 188, 129, 80, 176, 63, 85, 45, 0, 56, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 188, 0, 129, 126, 193, 10, 57, 86, 56, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 84, 129, 42, 126, 85, 59, 153, 55, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 127, 80, 130, 86, 85, 59, 85, 41, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 92, 188, 223, 26, 170, 56, 153, 55, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 187, 50, 129, 180, 126, 170, 58, 78, 55, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 187, 127, 50, 130, 25, 170, 58, 29, 42, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 187, 50, 127, 0, 88, 85, 49, 78, 55, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 187, 127, 50, 130, 101, 170, 58, 214, 36, 10, 215, 35, 60, 113, 61, 138, 62, 0, 0, 0, 128, 0, 129, 129, 127, 0, 58, 51, 55, 10, 215, 35, 60, 113, 61, 138, 62, 0, 0, 0, 128, 127, 0, 126, 1, 0, 58, 102, 42, 10, 215, 35, 60, 225, 122, 148, 62, 0, 0, 0, 128, 0, 127, 0, 63, 0, 52, 51, 55, 10, 215, 35, 60, 225, 122, 148, 62, 0, 0, 0, 128, 127, 0, 126, 1, 0, 58, 68, 36, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 59, 0, 180, 180, 1, 85, 57, 78, 55, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 59, 76, 0, 126, 25, 85, 57, 29, 42, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 59, 0, 76, 0, 38, 85, 53, 78, 55, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 59, 76, 0, 126, 101, 85, 57, 214, 36, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 0, 42, 0, 21, 170, 54, 153, 55, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 46, 0, 126, 40, 170, 56, 102, 38, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 58, 34, 204, 110, 85, 45, 153, 55, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 7, 0, 126, 59, 0, 56, 214, 36, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 7, 0, 126, 59, 0, 56, 214, 36, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 38, 66, 171, 99, 85, 49, 78, 55, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 0, 214, 214, 1, 170, 56, 153, 55, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 46, 0, 126, 40, 170, 56, 85, 41, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 58, 222, 33, 100, 85, 59, 153, 55, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 7, 0, 126, 67, 0, 56, 29, 42, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 38, 190, 54, 84, 170, 58, 78, 55, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 38, 190, 54, 84, 170, 58, 78, 55, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 210, 0, 80, 63, 170, 54, 102, 42, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 210, 0, 80, 63, 170, 54, 102, 42, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 0, 130, 80, 63, 0, 58, 51, 55, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 60, 210, 0, 80, 63, 170, 54, 68, 36, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 60, 0, 126, 130, 40, 0, 52, 51, 55, 189, 227, 13, 188, 11, 237, 138, 62, 10, 215, 163, 59, 171, 0, 41, 63, 85, 53, 29, 42, 189, 227, 13, 188, 11, 237, 138, 62, 10, 215, 163, 59, 196, 168, 54, 42, 85, 57, 78, 55, 189, 227, 13, 188, 71, 203, 147, 62, 10, 215, 163, 59, 171, 0, 41, 63, 85, 53, 214, 36, 189, 227, 13, 188, 71, 203, 147, 62, 10, 215, 163, 59, 196, 88, 171, 27, 85, 53, 78, 55, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 0, 0, 0, 1, 0, 56, 137, 55, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 80, 0, 0, 126, 0, 0, 137, 55, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 80, 0, 0, 126, 0, 60, 137, 55, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 84, 127, 0, 105, 85, 45, 153, 55, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 127, 80, 176, 101, 85, 59, 102, 38, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 92, 68, 52, 16, 170, 54, 153, 55, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 129, 215, 215, 63, 85, 49, 214, 36, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 129, 215, 215, 63, 85, 49, 214, 36, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 218, 66, 85, 99, 85, 49, 78, 55, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 218, 66, 85, 99, 85, 49, 78, 55, 189, 227, 13, 188, 11, 237, 138, 62, 8, 215, 163, 187, 129, 41, 215, 63, 85, 49, 29, 42, 189, 227, 13, 188, 11, 237, 138, 62, 8, 215, 163, 187, 218, 190, 202, 84, 170, 58, 78, 55, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 188, 129, 80, 176, 63, 85, 45, 102, 42, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 188, 0, 130, 176, 63, 0, 58, 51, 55, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 130, 176, 176, 63, 85, 45, 68, 36, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 0, 126, 126, 40, 0, 52, 51, 55, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 0, 126, 126, 40, 0, 52, 51, 55, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 127, 119, 130, 59, 0, 0, 29, 42, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 127, 119, 130, 67, 0, 60, 29, 42, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 60, 168, 202, 42, 85, 57, 78, 55, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 126, 137, 130, 59, 0, 0, 214, 36, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 126, 137, 221, 110, 0, 60, 137, 52, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 60, 88, 85, 27, 85, 53, 78, 55, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 127, 127, 0, 126, 0, 0, 137, 55, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 127, 127, 0, 126, 0, 60, 137, 55, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 126, 46, 0, 1, 0, 56, 137, 55, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 129, 0, 0, 63, 0, 52, 85, 41, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 164, 188, 33, 26, 170, 56, 153, 55, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 198, 222, 223, 100, 85, 59, 153, 55, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 176, 0, 0, 126, 0, 0, 137, 55, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 176, 0, 0, 126, 0, 60, 137, 55, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 130, 46, 0, 1, 0, 56, 137, 55, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 130, 0, 0, 63, 0, 52, 102, 38, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 198, 34, 52, 110, 85, 45, 153, 55, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 164, 68, 204, 16, 170, 54, 153, 55, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 130, 130, 130, 63, 0, 0, 211, 30, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 130, 130, 239, 118, 0, 60, 102, 46, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 62, 126, 126, 63, 0, 52, 20, 56, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 187, 0, 126, 126, 63, 255, 51, 224, 56, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 187, 62, 126, 126, 63, 255, 51, 224, 56, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 187, 0, 126, 126, 63, 31, 53, 6, 57, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 187, 72, 100, 85, 43, 31, 53, 6, 57, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 188, 72, 100, 85, 43, 235, 53, 86, 56, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 188, 127, 80, 180, 102, 85, 59, 211, 30, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 187, 0, 126, 126, 63, 242, 53, 112, 57, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 187, 72, 81, 69, 34, 242, 53, 112, 57, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 187, 72, 81, 69, 34, 83, 55, 10, 57, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 187, 127, 46, 129, 103, 170, 58, 211, 30, 249, 251, 191, 59, 154, 153, 153, 62, 0, 0, 0, 128, 0, 126, 126, 63, 63, 54, 0, 58, 249, 251, 191, 59, 154, 153, 153, 62, 0, 0, 0, 128, 62, 64, 64, 32, 63, 54, 0, 58, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 62, 64, 64, 32, 215, 55, 0, 58, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 127, 0, 126, 1, 0, 58, 211, 30, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 127, 0, 126, 1, 0, 58, 211, 30, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 59, 0, 126, 126, 63, 242, 53, 143, 58, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 59, 45, 54, 69, 34, 242, 53, 143, 58, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 45, 54, 69, 34, 83, 55, 245, 58, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 80, 0, 127, 103, 85, 57, 211, 30, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 80, 0, 126, 23, 85, 57, 211, 30, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 59, 0, 126, 126, 63, 31, 53, 249, 58, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 59, 26, 54, 86, 42, 31, 53, 249, 58, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 60, 26, 54, 86, 42, 235, 53, 169, 59, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 60, 46, 0, 126, 40, 170, 56, 211, 30, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 59, 0, 64, 126, 63, 0, 52, 31, 59, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 59, 0, 126, 126, 63, 0, 52, 31, 59, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 0, 64, 126, 63, 0, 52, 235, 59, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 0, 0, 126, 63, 0, 56, 211, 30, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 0, 0, 126, 63, 0, 56, 211, 30, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 59, 230, 54, 85, 83, 192, 49, 249, 58, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 59, 0, 126, 126, 63, 192, 49, 249, 58, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 60, 210, 0, 80, 63, 170, 54, 211, 30, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 60, 230, 54, 85, 83, 40, 48, 169, 59, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 59, 211, 54, 69, 92, 26, 48, 143, 58, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 59, 0, 126, 126, 63, 26, 48, 143, 58, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 59, 176, 0, 46, 63, 85, 53, 211, 30, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 59, 211, 54, 69, 92, 101, 41, 245, 58, 249, 251, 191, 187, 154, 153, 153, 62, 0, 0, 0, 128, 194, 64, 64, 94, 0, 47, 0, 58, 249, 251, 191, 187, 154, 153, 153, 62, 0, 0, 0, 128, 0, 126, 126, 63, 0, 47, 0, 58, 10, 215, 35, 188, 80, 141, 151, 62, 0, 0, 0, 128, 130, 0, 0, 63, 0, 52, 211, 30, 10, 215, 35, 188, 80, 141, 151, 62, 0, 0, 0, 128, 194, 64, 64, 94, 30, 33, 0, 58, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 187, 184, 81, 69, 92, 26, 48, 112, 57, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 187, 0, 126, 126, 63, 26, 48, 112, 57, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 129, 210, 210, 63, 85, 49, 211, 30, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 129, 210, 210, 63, 85, 49, 211, 30, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 184, 81, 69, 92, 101, 41, 10, 57, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 187, 184, 100, 86, 84, 192, 49, 6, 57, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 187, 0, 126, 126, 63, 192, 49, 6, 57, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 130, 176, 176, 63, 85, 45, 211, 30, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 130, 176, 176, 63, 85, 45, 211, 30, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 184, 100, 86, 84, 40, 48, 86, 56, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 127, 127, 0, 127, 0, 0, 30, 37, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 127, 127, 0, 127, 0, 60, 30, 37, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 127, 62, 13, 113, 0, 0, 30, 37, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 127, 62, 229, 120, 0, 60, 30, 37, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 127, 62, 13, 113, 106, 36, 0, 0, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 127, 62, 229, 120, 220, 59, 0, 0, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 127, 0, 0, 1, 255, 51, 224, 56, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 100, 184, 195, 121, 49, 59, 0, 0, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 100, 184, 45, 121, 120, 59, 0, 0, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 127, 0, 0, 1, 31, 53, 6, 57, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 188, 80, 129, 46, 127, 85, 59, 30, 37, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 188, 100, 184, 195, 121, 85, 59, 30, 37, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 81, 184, 163, 121, 135, 58, 0, 0, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 81, 184, 76, 121, 206, 58, 0, 0, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 127, 0, 0, 1, 242, 53, 112, 57, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 187, 46, 129, 176, 127, 170, 58, 30, 37, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 187, 81, 184, 163, 121, 170, 58, 30, 37, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 64, 194, 143, 6, 220, 57, 0, 0, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 64, 194, 113, 120, 35, 58, 0, 0, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 127, 0, 0, 1, 63, 54, 0, 58, 166, 155, 196, 61, 113, 61, 138, 62, 0, 0, 0, 128, 0, 129, 129, 127, 0, 58, 30, 37, 166, 155, 196, 61, 113, 61, 138, 62, 0, 0, 0, 128, 64, 194, 143, 6, 0, 58, 30, 37, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 54, 211, 180, 5, 49, 57, 0, 0, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 54, 211, 93, 5, 120, 57, 0, 0, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 127, 0, 0, 1, 242, 53, 143, 58, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 59, 0, 176, 80, 1, 85, 57, 30, 37, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 59, 54, 211, 180, 5, 85, 57, 30, 37, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 54, 230, 211, 5, 135, 56, 0, 0, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 54, 230, 61, 5, 206, 56, 0, 0, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 127, 0, 0, 1, 31, 53, 249, 58, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 60, 0, 210, 210, 1, 170, 56, 30, 37, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 60, 54, 230, 211, 5, 170, 56, 30, 37, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 64, 0, 243, 13, 185, 55, 0, 0, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 64, 0, 27, 6, 35, 56, 0, 0, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 127, 0, 0, 1, 0, 52, 31, 59, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 60, 0, 0, 0, 1, 0, 56, 30, 37, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 60, 64, 0, 243, 13, 0, 56, 30, 37, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 54, 26, 246, 30, 99, 54, 0, 0, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 54, 26, 11, 22, 241, 54, 0, 0, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 127, 0, 0, 1, 192, 49, 249, 58, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 0, 46, 0, 23, 170, 54, 30, 37, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 0, 46, 0, 23, 170, 54, 30, 37, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 54, 26, 246, 30, 170, 54, 30, 37, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 54, 26, 11, 22, 170, 54, 30, 37, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 0, 80, 0, 40, 85, 53, 30, 37, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 0, 80, 0, 40, 85, 53, 30, 37, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 54, 45, 245, 46, 85, 53, 30, 37, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 54, 45, 10, 38, 85, 53, 30, 37, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 54, 45, 245, 46, 14, 53, 0, 0, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 54, 45, 10, 38, 156, 53, 0, 0, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 127, 0, 0, 1, 26, 48, 143, 58, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 64, 62, 243, 70, 114, 51, 0, 0, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 64, 62, 13, 56, 70, 52, 0, 0, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 127, 0, 0, 1, 0, 47, 0, 58, 166, 155, 196, 61, 225, 122, 148, 62, 0, 0, 0, 128, 0, 127, 0, 63, 0, 52, 30, 37, 166, 155, 196, 61, 225, 122, 148, 62, 0, 0, 0, 128, 64, 62, 243, 70, 0, 52, 30, 37, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 81, 72, 246, 88, 199, 48, 0, 0, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 81, 72, 11, 80, 226, 49, 0, 0, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 127, 0, 0, 1, 26, 48, 112, 57, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 187, 46, 127, 0, 86, 85, 49, 30, 37, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 187, 81, 72, 246, 88, 85, 49, 30, 37, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 100, 72, 245, 104, 58, 44, 0, 0, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 100, 72, 10, 96, 112, 46, 0, 0, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 127, 0, 0, 1, 192, 49, 6, 57, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 188, 80, 127, 0, 103, 85, 45, 30, 37, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 188, 100, 72, 10, 96, 85, 45, 30, 37, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 210, 0, 0, 1, 0, 52, 224, 56, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 25, 0, 237, 114, 106, 36, 0, 0, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 25, 0, 24, 117, 220, 59, 0, 0, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 25, 0, 237, 114, 0, 0, 30, 37, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 25, 0, 24, 117, 0, 60, 30, 37, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 80, 0, 0, 126, 0, 0, 30, 37, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 80, 0, 0, 126, 0, 60, 30, 37, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 61, 14, 226, 22, 103, 85, 59, 30, 37, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 61, 56, 219, 35, 99, 85, 59, 30, 37, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 210, 0, 0, 1, 31, 53, 6, 57, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 14, 226, 48, 95, 49, 59, 0, 0, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 14, 226, 22, 103, 120, 59, 0, 0, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 210, 0, 0, 1, 242, 53, 112, 57, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 251, 204, 69, 78, 135, 58, 0, 0, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 251, 204, 45, 85, 206, 58, 0, 0, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 61, 251, 204, 69, 78, 170, 58, 30, 37, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 61, 35, 185, 56, 82, 170, 58, 30, 37, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 210, 0, 0, 1, 63, 54, 0, 58, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 229, 204, 81, 57, 220, 57, 0, 0, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 229, 204, 65, 69, 35, 58, 0, 0, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 229, 204, 81, 57, 0, 58, 30, 37, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 229, 204, 65, 69, 0, 58, 30, 37, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 0, 130, 80, 63, 0, 58, 30, 37, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 0, 130, 80, 63, 0, 58, 30, 37, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 207, 212, 57, 39, 49, 57, 0, 0, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 207, 212, 55, 49, 120, 57, 0, 0, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 210, 0, 0, 1, 242, 53, 143, 58, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 207, 212, 55, 49, 85, 57, 30, 37, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 207, 212, 57, 39, 85, 57, 30, 37, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 201, 165, 56, 44, 85, 57, 30, 37, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 201, 165, 56, 44, 85, 57, 30, 37, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 184, 228, 35, 21, 135, 56, 0, 0, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 184, 228, 35, 33, 206, 56, 0, 0, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 210, 0, 0, 1, 31, 53, 249, 58, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 61, 184, 228, 35, 33, 170, 56, 30, 37, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 61, 167, 186, 35, 27, 170, 56, 30, 37, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 158, 0, 232, 2, 185, 55, 0, 0, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 158, 0, 5, 12, 35, 56, 0, 0, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 210, 0, 0, 1, 255, 51, 31, 59, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 158, 0, 5, 12, 0, 56, 30, 37, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 158, 0, 232, 2, 0, 56, 30, 37, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 130, 46, 0, 1, 0, 56, 30, 37, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 130, 46, 0, 1, 0, 56, 30, 37, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 184, 28, 189, 17, 99, 54, 0, 0, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 184, 28, 214, 17, 241, 54, 0, 0, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 210, 0, 0, 1, 192, 49, 249, 58, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 184, 28, 214, 17, 170, 54, 30, 37, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 184, 28, 189, 17, 170, 54, 30, 37, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 167, 70, 201, 17, 170, 54, 30, 37, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 167, 70, 201, 17, 170, 54, 30, 37, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 207, 44, 158, 27, 14, 53, 0, 0, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 207, 44, 177, 28, 156, 53, 0, 0, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 210, 0, 0, 1, 26, 48, 143, 58, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 207, 44, 177, 28, 85, 53, 30, 37, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 207, 44, 158, 27, 85, 53, 30, 37, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 201, 91, 167, 28, 85, 53, 30, 37, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 201, 91, 167, 28, 85, 53, 30, 37, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 210, 0, 0, 1, 0, 47, 0, 58, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 229, 52, 141, 94, 114, 51, 0, 0, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 229, 52, 142, 40, 70, 52, 0, 0, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 61, 229, 52, 141, 94, 0, 52, 30, 37, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 61, 0, 126, 130, 40, 0, 52, 30, 37, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 61, 251, 52, 159, 92, 85, 49, 30, 37, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 61, 35, 71, 167, 98, 85, 49, 30, 37, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 210, 0, 0, 1, 26, 48, 112, 57, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 251, 52, 174, 104, 199, 48, 0, 0, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 251, 52, 159, 92, 226, 49, 0, 0, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 210, 0, 0, 1, 192, 49, 6, 57, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 14, 30, 209, 115, 58, 44, 0, 0, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 14, 30, 193, 102, 112, 46, 0, 0, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 61, 14, 30, 209, 115, 85, 45, 30, 37, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 61, 56, 37, 201, 109, 85, 45, 30, 37, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 130, 228, 24, 124, 106, 36, 0, 0, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 130, 228, 251, 114, 220, 59, 0, 0, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 130, 80, 0, 1, 0, 52, 224, 56, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 130, 228, 24, 124, 0, 0, 30, 37, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 130, 228, 251, 114, 0, 60, 30, 37, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 176, 0, 0, 126, 0, 0, 30, 37, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 176, 0, 0, 126, 0, 60, 30, 37, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 158, 202, 221, 93, 49, 59, 0, 0, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 158, 202, 221, 105, 120, 59, 0, 0, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 130, 80, 0, 1, 31, 53, 6, 57, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 158, 202, 221, 105, 85, 59, 30, 37, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 158, 202, 221, 93, 85, 59, 30, 37, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 200, 219, 221, 99, 85, 59, 30, 37, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 200, 219, 221, 99, 85, 59, 30, 37, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 174, 179, 201, 77, 135, 58, 0, 0, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 174, 179, 199, 87, 206, 58, 0, 0, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 130, 80, 0, 1, 242, 53, 112, 57, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 189, 174, 179, 201, 77, 170, 58, 30, 37, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 189, 221, 185, 200, 82, 170, 58, 30, 37, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 130, 80, 0, 1, 63, 54, 0, 58, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 182, 157, 191, 57, 220, 57, 0, 0, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 182, 157, 175, 69, 35, 58, 0, 0, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 189, 182, 157, 175, 69, 0, 58, 30, 37, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 189, 0, 130, 176, 63, 0, 58, 30, 37, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 130, 80, 0, 1, 242, 53, 143, 58, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 182, 135, 211, 41, 49, 57, 0, 0, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 182, 135, 187, 48, 120, 57, 0, 0, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 182, 135, 211, 41, 85, 57, 30, 37, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 182, 135, 187, 48, 85, 57, 30, 37, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 55, 165, 200, 44, 85, 57, 30, 37, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 55, 165, 200, 44, 85, 57, 30, 37, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 189, 96, 144, 208, 31, 170, 56, 30, 37, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 189, 89, 186, 221, 27, 170, 56, 30, 37, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 130, 80, 0, 1, 31, 53, 249, 58, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 96, 144, 234, 23, 135, 56, 0, 0, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 96, 144, 208, 31, 206, 56, 0, 0, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 130, 80, 0, 1, 0, 52, 31, 59, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 127, 101, 19, 12, 185, 55, 0, 0, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 127, 101, 232, 9, 35, 56, 0, 0, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 189, 127, 101, 19, 12, 0, 56, 30, 37, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 189, 126, 46, 0, 1, 0, 56, 30, 37, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 130, 80, 0, 1, 192, 49, 249, 58, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 96, 112, 63, 24, 99, 54, 0, 0, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 96, 112, 47, 11, 241, 54, 0, 0, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 189, 96, 112, 47, 11, 170, 54, 30, 37, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 189, 89, 70, 55, 17, 170, 54, 30, 37, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 182, 121, 97, 34, 85, 53, 30, 37, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 182, 121, 82, 22, 85, 53, 30, 37, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 55, 91, 89, 28, 85, 53, 30, 37, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 55, 91, 89, 28, 85, 53, 30, 37, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 130, 80, 0, 1, 26, 48, 143, 58, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 182, 121, 97, 34, 14, 53, 0, 0, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 182, 121, 82, 22, 156, 53, 0, 0, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 130, 80, 0, 1, 0, 47, 0, 58, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 182, 99, 114, 86, 114, 51, 0, 0, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 182, 99, 115, 32, 70, 52, 0, 0, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 182, 99, 115, 32, 0, 52, 30, 37, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 182, 99, 114, 86, 0, 52, 30, 37, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 0, 127, 127, 40, 0, 52, 30, 37, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 0, 127, 127, 40, 0, 52, 30, 37, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 174, 77, 79, 98, 199, 48, 0, 0, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 174, 77, 98, 99, 226, 49, 0, 0, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 130, 80, 0, 1, 26, 48, 112, 57, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 189, 174, 77, 79, 98, 85, 49, 30, 37, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 189, 221, 71, 89, 98, 85, 49, 30, 37, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 158, 54, 42, 109, 58, 44, 0, 0, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 158, 54, 67, 109, 112, 46, 0, 0, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 130, 80, 0, 1, 192, 49, 6, 57, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 189, 158, 54, 42, 109, 85, 45, 30, 37, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 189, 200, 37, 55, 109, 85, 45, 30, 37 ), -"array_index_data": PoolByteArray( 104, 0, 31, 0, 108, 0, 104, 0, 65, 0, 31, 0, 31, 0, 113, 0, 108, 0, 31, 0, 35, 0, 113, 0, 6, 0, 26, 0, 4, 0, 6, 0, 29, 0, 26, 0, 35, 0, 118, 0, 112, 0, 35, 0, 39, 0, 118, 0, 33, 0, 6, 0, 8, 0, 33, 0, 29, 0, 6, 0, 39, 0, 122, 0, 117, 0, 39, 0, 41, 0, 122, 0, 37, 0, 8, 0, 10, 0, 37, 0, 33, 0, 8, 0, 41, 0, 127, 0, 122, 0, 41, 0, 44, 0, 127, 0, 47, 0, 10, 0, 12, 0, 47, 0, 37, 0, 10, 0, 43, 0, 130, 0, 126, 0, 43, 0, 55, 0, 130, 0, 49, 0, 12, 0, 13, 0, 49, 0, 47, 0, 12, 0, 49, 0, 15, 0, 53, 0, 49, 0, 13, 0, 15, 0, 55, 0, 134, 0, 130, 0, 55, 0, 59, 0, 134, 0, 59, 0, 138, 0, 134, 0, 59, 0, 93, 0, 138, 0, 52, 0, 17, 0, 57, 0, 52, 0, 15, 0, 17, 0, 93, 0, 143, 0, 138, 0, 93, 0, 68, 0, 143, 0, 19, 0, 57, 0, 17, 0, 19, 0, 87, 0, 57, 0, 67, 0, 148, 0, 142, 0, 67, 0, 75, 0, 148, 0, 21, 0, 87, 0, 19, 0, 21, 0, 71, 0, 87, 0, 147, 0, 81, 0, 96, 0, 147, 0, 75, 0, 81, 0, 73, 0, 21, 0, 23, 0, 73, 0, 71, 0, 21, 0, 0, 0, 73, 0, 23, 0, 0, 0, 78, 0, 73, 0, 22, 0, 2, 0, 24, 0, 2, 0, 5, 0, 3, 0, 5, 0, 9, 0, 7, 0, 9, 0, 14, 0, 11, 0, 14, 0, 18, 0, 16, 0, 18, 0, 22, 0, 20, 0, 22, 0, 5, 0, 2, 0, 5, 0, 14, 0, 9, 0, 14, 0, 22, 0, 18, 0, 5, 0, 22, 0, 14, 0, 25, 0, 165, 0, 160, 0, 25, 0, 28, 0, 165, 0, 28, 0, 170, 0, 165, 0, 28, 0, 32, 0, 170, 0, 32, 0, 175, 0, 170, 0, 32, 0, 36, 0, 175, 0, 36, 0, 180, 0, 175, 0, 36, 0, 46, 0, 180, 0, 61, 0, 180, 0, 46, 0, 61, 0, 185, 0, 180, 0, 185, 0, 40, 0, 191, 0, 185, 0, 61, 0, 40, 0, 40, 0, 195, 0, 190, 0, 40, 0, 38, 0, 195, 0, 38, 0, 204, 0, 194, 0, 38, 0, 34, 0, 204, 0, 34, 0, 209, 0, 204, 0, 34, 0, 30, 0, 209, 0, 30, 0, 214, 0, 209, 0, 30, 0, 64, 0, 214, 0, 64, 0, 150, 0, 214, 0, 64, 0, 84, 0, 150, 0, 85, 0, 160, 0, 151, 0, 85, 0, 25, 0, 160, 0, 62, 0, 31, 1, 42, 0, 62, 0, 221, 0, 31, 1, 54, 0, 232, 0, 50, 0, 54, 0, 239, 0, 232, 0, 58, 0, 238, 0, 54, 0, 58, 0, 245, 0, 238, 0, 58, 0, 251, 0, 246, 0, 58, 0, 88, 0, 251, 0, 1, 1, 88, 0, 92, 0, 1, 1, 251, 0, 88, 0, 2, 1, 95, 0, 8, 1, 2, 1, 92, 0, 95, 0, 60, 0, 21, 1, 16, 1, 60, 0, 56, 0, 21, 1, 56, 0, 23, 1, 21, 1, 56, 0, 45, 0, 23, 1, 23, 1, 42, 0, 31, 1, 23, 1, 45, 0, 42, 0, 222, 0, 48, 0, 224, 0, 222, 0, 63, 0, 48, 0, 48, 0, 232, 0, 224, 0, 48, 0, 51, 0, 232, 0, 37, 1, 94, 0, 90, 0, 37, 1, 101, 1, 94, 0, 55, 1, 80, 0, 62, 1, 55, 1, 74, 0, 80, 0, 64, 1, 80, 0, 27, 0, 64, 1, 61, 1, 80, 0, 27, 0, 72, 1, 64, 1, 27, 0, 86, 0, 72, 1, 77, 1, 86, 0, 66, 0, 77, 1, 72, 1, 86, 0, 66, 0, 81, 1, 77, 1, 66, 0, 83, 0, 81, 1, 83, 0, 90, 1, 80, 1, 83, 0, 77, 0, 90, 1, 91, 1, 69, 0, 96, 1, 91, 1, 76, 0, 69, 0, 94, 0, 96, 1, 70, 0, 94, 0, 101, 1, 96, 1, 38, 1, 89, 0, 44, 1, 38, 1, 91, 0, 89, 0, 106, 0, 111, 0, 110, 0, 106, 0, 107, 0, 111, 0, 115, 0, 121, 0, 120, 0, 115, 0, 116, 0, 121, 0, 120, 0, 125, 0, 123, 0, 120, 0, 121, 0, 125, 0, 128, 0, 135, 0, 132, 0, 128, 0, 131, 0, 135, 0, 136, 0, 144, 0, 140, 0, 136, 0, 139, 0, 144, 0, 140, 0, 149, 0, 145, 0, 140, 0, 144, 0, 149, 0, 100, 0, 103, 0, 102, 0, 100, 0, 98, 0, 103, 0, 102, 0, 107, 0, 106, 0, 102, 0, 103, 0, 107, 0, 110, 0, 116, 0, 115, 0, 110, 0, 111, 0, 116, 0, 123, 0, 131, 0, 128, 0, 123, 0, 125, 0, 131, 0, 132, 0, 139, 0, 136, 0, 132, 0, 135, 0, 139, 0, 98, 0, 145, 0, 149, 0, 98, 0, 100, 0, 145, 0, 119, 0, 109, 0, 114, 0, 109, 0, 101, 0, 105, 0, 101, 0, 146, 0, 99, 0, 146, 0, 137, 0, 141, 0, 137, 0, 129, 0, 133, 0, 129, 0, 119, 0, 124, 0, 119, 0, 101, 0, 109, 0, 101, 0, 137, 0, 146, 0, 137, 0, 119, 0, 129, 0, 101, 0, 119, 0, 137, 0, 155, 0, 161, 0, 158, 0, 155, 0, 153, 0, 161, 0, 157, 0, 166, 0, 163, 0, 157, 0, 161, 0, 166, 0, 162, 0, 171, 0, 168, 0, 162, 0, 166, 0, 171, 0, 167, 0, 176, 0, 173, 0, 167, 0, 171, 0, 176, 0, 172, 0, 181, 0, 178, 0, 172, 0, 176, 0, 181, 0, 198, 0, 205, 0, 202, 0, 198, 0, 196, 0, 205, 0, 152, 0, 211, 0, 215, 0, 152, 0, 154, 0, 211, 0, 177, 0, 186, 0, 183, 0, 177, 0, 181, 0, 186, 0, 187, 0, 197, 0, 199, 0, 187, 0, 192, 0, 197, 0, 201, 0, 210, 0, 207, 0, 201, 0, 205, 0, 210, 0, 206, 0, 215, 0, 212, 0, 206, 0, 210, 0, 215, 0, 182, 0, 193, 0, 188, 0, 182, 0, 186, 0, 193, 0, 179, 0, 169, 0, 174, 0, 169, 0, 159, 0, 164, 0, 159, 0, 213, 0, 156, 0, 213, 0, 203, 0, 208, 0, 203, 0, 189, 0, 200, 0, 189, 0, 179, 0, 184, 0, 179, 0, 159, 0, 169, 0, 159, 0, 203, 0, 213, 0, 203, 0, 179, 0, 189, 0, 159, 0, 179, 0, 203, 0, 226, 0, 231, 0, 230, 0, 226, 0, 223, 0, 231, 0, 229, 0, 237, 0, 235, 0, 229, 0, 231, 0, 237, 0, 234, 0, 243, 0, 241, 0, 234, 0, 236, 0, 243, 0, 3, 1, 13, 1, 11, 1, 3, 1, 7, 1, 13, 1, 10, 1, 20, 1, 19, 1, 10, 1, 14, 1, 20, 1, 25, 1, 30, 1, 29, 1, 25, 1, 22, 1, 30, 1, 252, 0, 6, 1, 4, 1, 252, 0, 0, 1, 6, 1, 218, 0, 223, 0, 227, 0, 218, 0, 220, 0, 223, 0, 247, 0, 255, 0, 253, 0, 247, 0, 250, 0, 255, 0, 18, 1, 22, 1, 26, 1, 18, 1, 20, 1, 22, 1, 219, 0, 28, 1, 30, 1, 219, 0, 217, 0, 28, 1, 240, 0, 250, 0, 248, 0, 240, 0, 244, 0, 250, 0, 12, 1, 254, 0, 5, 1, 254, 0, 242, 0, 249, 0, 242, 0, 228, 0, 233, 0, 228, 0, 216, 0, 225, 0, 216, 0, 24, 1, 27, 1, 24, 1, 12, 1, 17, 1, 12, 1, 242, 0, 254, 0, 242, 0, 216, 0, 228, 0, 216, 0, 12, 1, 24, 1, 242, 0, 12, 1, 216, 0, 39, 1, 49, 1, 47, 1, 39, 1, 43, 1, 49, 1, 52, 1, 60, 1, 58, 1, 52, 1, 54, 1, 60, 1, 83, 1, 88, 1, 87, 1, 83, 1, 78, 1, 88, 1, 33, 1, 42, 1, 40, 1, 33, 1, 36, 1, 42, 1, 46, 1, 54, 1, 53, 1, 46, 1, 49, 1, 54, 1, 66, 1, 71, 1, 70, 1, 66, 1, 63, 1, 71, 1, 74, 1, 79, 1, 84, 1, 74, 1, 76, 1, 79, 1, 86, 1, 95, 1, 93, 1, 86, 1, 89, 1, 95, 1, 92, 1, 100, 1, 98, 1, 92, 1, 95, 1, 100, 1, 57, 1, 63, 1, 67, 1, 57, 1, 59, 1, 63, 1, 69, 1, 76, 1, 75, 1, 69, 1, 71, 1, 76, 1, 35, 1, 97, 1, 100, 1, 35, 1, 32, 1, 97, 1, 99, 1, 85, 1, 94, 1, 85, 1, 73, 1, 82, 1, 73, 1, 65, 1, 68, 1, 65, 1, 51, 1, 56, 1, 51, 1, 41, 1, 48, 1, 41, 1, 99, 1, 34, 1, 99, 1, 73, 1, 85, 1, 73, 1, 51, 1, 65, 1, 51, 1, 99, 1, 41, 1, 73, 1, 99, 1, 51, 1, 26, 0, 1, 0, 4, 0, 26, 0, 79, 0, 1, 0, 97, 0, 65, 0, 104, 0, 97, 0, 82, 0, 65, 0, 95, 0, 15, 1, 9, 1, 95, 0, 60, 0, 15, 1, 72, 0, 55, 1, 50, 1, 72, 0, 74, 0, 55, 1, 89, 0, 50, 1, 45, 1, 89, 0, 72, 0, 50, 1 ), -"blend_shape_data": [ ], -"format": 2194711, +_surfaces = [{ +"aabb": AABB(-0.0566603, 0, -0.089532, 0.15666, 0.3, 0.179064), +"attribute_data": PackedByteArray(0, 0, 160, 51, 0, 0, 0, 63, 0, 0, 128, 63, 0, 0, 0, 63, 0, 0, 64, 63, 92, 143, 2, 63, 82, 184, 94, 63, 153, 202, 10, 63, 171, 170, 106, 63, 0, 0, 0, 63, 103, 53, 117, 63, 174, 71, 33, 63, 86, 85, 85, 63, 0, 0, 0, 63, 164, 112, 125, 63, 0, 0, 64, 63, 1, 0, 64, 63, 0, 0, 0, 63, 103, 53, 117, 63, 82, 184, 94, 63, 172, 170, 42, 63, 0, 0, 0, 63, 82, 184, 94, 63, 103, 53, 117, 63, 87, 85, 21, 63, 0, 0, 0, 63, 2, 0, 0, 63, 0, 0, 0, 63, 0, 0, 64, 63, 164, 112, 125, 63, 89, 85, 213, 62, 0, 0, 0, 63, 174, 71, 33, 63, 103, 53, 117, 63, 174, 170, 170, 62, 0, 0, 0, 63, 153, 202, 10, 63, 82, 184, 94, 63, 3, 0, 128, 62, 0, 0, 0, 63, 92, 143, 2, 63, 0, 0, 64, 63, 176, 170, 42, 62, 0, 0, 0, 63, 153, 202, 10, 63, 174, 71, 33, 63, 181, 170, 170, 61, 0, 0, 0, 63, 174, 71, 33, 63, 153, 202, 10, 63, 171, 170, 106, 63, 50, 51, 243, 62, 171, 170, 106, 63, 160, 170, 42, 61, 87, 85, 21, 63, 52, 51, 243, 62, 86, 85, 85, 63, 106, 212, 233, 62, 86, 85, 85, 63, 112, 167, 67, 61, 176, 170, 42, 62, 106, 212, 233, 62, 86, 85, 85, 63, 64, 211, 154, 60, 1, 0, 64, 63, 102, 102, 230, 62, 1, 0, 64, 63, 192, 204, 76, 61, 3, 0, 128, 62, 102, 102, 230, 62, 0, 0, 64, 63, 160, 136, 136, 60, 172, 170, 42, 63, 106, 212, 233, 62, 172, 170, 42, 63, 112, 167, 67, 61, 174, 170, 170, 62, 106, 212, 233, 62, 172, 170, 42, 63, 96, 211, 154, 60, 89, 85, 213, 62, 50, 51, 243, 62, 87, 85, 21, 63, 224, 204, 204, 60, 181, 170, 170, 61, 52, 51, 243, 62, 2, 0, 0, 63, 64, 211, 154, 60, 2, 0, 0, 63, 96, 211, 154, 60, 176, 170, 42, 62, 106, 212, 233, 62, 87, 85, 21, 63, 52, 51, 243, 62, 86, 85, 21, 63, 176, 170, 42, 61, 171, 170, 106, 63, 50, 51, 243, 62, 2, 0, 0, 63, 128, 167, 67, 61, 85, 85, 85, 63, 106, 212, 233, 62, 86, 85, 85, 63, 106, 212, 233, 62, 89, 85, 213, 62, 192, 204, 76, 61, 90, 85, 213, 62, 192, 204, 76, 61, 0, 0, 64, 63, 104, 102, 230, 62, 89, 85, 213, 62, 160, 136, 136, 60, 3, 0, 128, 62, 104, 102, 230, 62, 175, 170, 170, 62, 112, 167, 67, 61, 172, 170, 42, 63, 106, 212, 233, 62, 174, 170, 170, 62, 64, 211, 154, 60, 174, 170, 170, 62, 108, 212, 233, 62, 2, 0, 0, 63, 72, 56, 241, 62, 0, 0, 160, 51, 72, 56, 241, 62, 0, 0, 128, 63, 74, 56, 241, 62, 181, 170, 170, 61, 52, 51, 243, 62, 170, 170, 106, 63, 224, 204, 204, 60, 89, 85, 213, 62, 50, 51, 243, 62, 176, 170, 42, 62, 64, 211, 154, 60, 176, 170, 42, 62, 96, 211, 154, 60, 176, 170, 42, 62, 104, 212, 233, 62, 176, 170, 42, 62, 106, 212, 233, 62, 176, 170, 42, 62, 128, 167, 67, 61, 86, 85, 85, 63, 108, 212, 233, 62, 181, 170, 170, 61, 208, 204, 76, 61, 0, 0, 64, 63, 102, 102, 230, 62, 181, 170, 170, 61, 160, 136, 136, 60, 3, 0, 128, 62, 102, 102, 230, 62, 3, 0, 128, 62, 104, 102, 230, 62, 0, 0, 160, 51, 128, 167, 67, 61, 0, 0, 128, 63, 128, 167, 67, 61, 172, 170, 42, 63, 106, 212, 233, 62, 0, 0, 160, 51, 96, 211, 154, 60, 0, 0, 128, 63, 20, 38, 145, 62, 174, 170, 170, 62, 106, 212, 233, 62, 0, 0, 160, 51, 72, 56, 241, 62, 0, 0, 128, 63, 72, 56, 241, 62, 2, 0, 0, 63, 74, 56, 241, 62, 3, 0, 128, 62, 160, 170, 42, 61, 87, 85, 21, 63, 50, 51, 243, 62, 171, 170, 106, 63, 52, 51, 243, 62, 0, 0, 160, 51, 68, 56, 241, 62, 0, 0, 128, 63, 70, 56, 241, 62, 2, 0, 0, 63, 70, 56, 241, 62, 3, 0, 128, 62, 224, 204, 204, 60, 180, 170, 170, 61, 52, 51, 243, 62, 89, 85, 213, 62, 52, 51, 243, 62, 0, 0, 160, 51, 128, 116, 218, 59, 0, 0, 128, 63, 224, 204, 204, 61, 0, 0, 128, 62, 92, 143, 2, 63, 255, 255, 127, 62, 192, 0, 28, 63, 255, 255, 127, 62, 192, 0, 28, 63, 61, 255, 163, 62, 92, 211, 32, 63, 61, 255, 163, 62, 92, 211, 32, 63, 164, 112, 189, 62, 153, 202, 10, 63, 170, 170, 106, 63, 0, 116, 218, 59, 71, 89, 190, 62, 98, 0, 46, 63, 71, 89, 190, 62, 98, 0, 46, 63, 206, 106, 234, 62, 174, 71, 33, 63, 86, 85, 85, 63, 0, 116, 218, 59, 126, 254, 199, 62, 0, 0, 64, 63, 126, 254, 199, 62, 0, 0, 64, 63, 72, 225, 250, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 116, 218, 59, 1, 0, 64, 63, 0, 116, 218, 59, 72, 89, 190, 62, 160, 255, 81, 63, 72, 89, 190, 62, 160, 255, 81, 63, 206, 106, 234, 62, 82, 184, 94, 63, 172, 170, 42, 63, 0, 116, 218, 59, 172, 170, 42, 63, 128, 116, 218, 59, 62, 255, 163, 62, 163, 44, 95, 63, 62, 255, 163, 62, 163, 44, 95, 63, 164, 112, 189, 62, 103, 53, 117, 63, 87, 85, 21, 63, 0, 116, 218, 59, 1, 0, 128, 62, 63, 255, 99, 63, 1, 0, 128, 62, 63, 255, 99, 63, 0, 0, 128, 62, 164, 112, 125, 63, 2, 0, 0, 63, 0, 116, 218, 59, 2, 0, 0, 63, 128, 116, 218, 59, 130, 1, 56, 62, 163, 44, 95, 63, 130, 1, 56, 62, 163, 44, 95, 63, 90, 85, 213, 62, 0, 116, 218, 59, 184, 30, 5, 62, 103, 53, 117, 63, 116, 77, 3, 62, 160, 255, 81, 63, 116, 77, 3, 62, 160, 255, 81, 63, 174, 170, 170, 62, 0, 116, 218, 59, 144, 169, 44, 61, 82, 184, 94, 63, 9, 6, 224, 61, 0, 0, 64, 63, 9, 6, 224, 61, 0, 0, 64, 63, 3, 0, 128, 62, 0, 116, 218, 59, 16, 215, 35, 60, 0, 0, 64, 63, 115, 77, 3, 62, 97, 0, 46, 63, 115, 77, 3, 62, 97, 0, 46, 63, 176, 170, 42, 62, 0, 116, 218, 59, 176, 170, 42, 62, 128, 116, 218, 59, 144, 169, 44, 61, 174, 71, 33, 63, 131, 1, 56, 62, 92, 211, 32, 63, 131, 1, 56, 62, 92, 211, 32, 63, 181, 170, 170, 61, 0, 116, 218, 59, 182, 170, 170, 61, 0, 116, 218, 59, 184, 30, 5, 62, 153, 202, 10, 63, 0, 0, 160, 51, 0, 215, 163, 60, 0, 0, 128, 63, 0, 215, 163, 60, 0, 0, 160, 51, 0, 215, 163, 60, 0, 0, 128, 63, 0, 215, 163, 60, 65, 89, 141, 60, 0, 0, 0, 0, 49, 149, 123, 63, 0, 0, 0, 0, 255, 255, 127, 62, 194, 0, 28, 63, 220, 63, 102, 63, 0, 0, 0, 0, 122, 21, 111, 63, 0, 0, 0, 0, 64, 255, 163, 62, 92, 211, 32, 63, 171, 170, 106, 63, 0, 215, 163, 60, 171, 170, 106, 63, 0, 215, 163, 60, 134, 234, 80, 63, 0, 0, 0, 0, 33, 192, 89, 63, 0, 0, 0, 0, 80, 89, 190, 62, 101, 0, 46, 63, 86, 85, 85, 63, 0, 215, 163, 60, 86, 85, 85, 63, 0, 215, 163, 60, 55, 149, 59, 63, 0, 0, 0, 0, 203, 106, 68, 63, 0, 0, 0, 0, 130, 254, 199, 62, 0, 0, 64, 63, 1, 0, 64, 63, 0, 215, 163, 60, 1, 0, 64, 63, 0, 215, 163, 60, 224, 63, 38, 63, 0, 0, 0, 0, 124, 21, 47, 63, 0, 0, 0, 0, 80, 89, 190, 62, 155, 255, 81, 63, 172, 170, 42, 63, 0, 215, 163, 60, 172, 170, 42, 63, 0, 215, 163, 60, 142, 234, 16, 63, 0, 0, 0, 0, 38, 192, 25, 63, 0, 0, 0, 0, 64, 255, 163, 62, 163, 44, 95, 63, 87, 85, 21, 63, 0, 215, 163, 60, 87, 85, 21, 63, 0, 215, 163, 60, 102, 42, 247, 62, 0, 0, 0, 0, 203, 106, 4, 63, 0, 0, 0, 0, 0, 0, 128, 62, 63, 255, 99, 63, 2, 0, 0, 63, 0, 215, 163, 60, 2, 0, 0, 63, 0, 215, 163, 60, 187, 127, 204, 62, 0, 0, 0, 0, 248, 42, 222, 62, 0, 0, 0, 0, 126, 1, 56, 62, 163, 44, 95, 63, 89, 85, 213, 62, 0, 215, 163, 60, 90, 85, 213, 62, 0, 215, 163, 60, 89, 85, 213, 62, 0, 215, 163, 60, 90, 85, 213, 62, 0, 215, 163, 60, 174, 170, 170, 62, 0, 215, 163, 60, 175, 170, 170, 62, 0, 215, 163, 60, 174, 170, 170, 62, 0, 215, 163, 60, 175, 170, 170, 62, 0, 215, 163, 60, 10, 213, 161, 62, 0, 0, 0, 0, 68, 128, 179, 62, 0, 0, 0, 0, 93, 77, 3, 62, 156, 255, 81, 63, 230, 84, 110, 62, 0, 0, 0, 0, 147, 213, 136, 62, 0, 0, 0, 0, 248, 5, 224, 61, 0, 0, 64, 63, 3, 0, 128, 62, 0, 215, 163, 60, 3, 0, 128, 62, 0, 215, 163, 60, 132, 255, 24, 62, 0, 0, 0, 0, 248, 85, 60, 62, 0, 0, 0, 0, 94, 77, 3, 62, 100, 0, 46, 63, 176, 170, 42, 62, 0, 215, 163, 60, 176, 170, 42, 62, 0, 215, 163, 60, 110, 84, 135, 61, 0, 0, 0, 0, 47, 1, 206, 61, 0, 0, 0, 0, 126, 1, 56, 62, 92, 211, 32, 63, 181, 170, 170, 61, 0, 215, 163, 60, 181, 170, 170, 61, 0, 215, 163, 60, 0, 0, 128, 62, 192, 0, 28, 63, 65, 89, 141, 60, 0, 0, 0, 0, 55, 149, 123, 63, 0, 0, 0, 0, 0, 0, 160, 51, 0, 215, 163, 60, 0, 0, 128, 63, 0, 215, 163, 60, 0, 0, 160, 51, 0, 215, 163, 60, 0, 0, 128, 63, 0, 215, 163, 60, 171, 170, 106, 63, 0, 215, 163, 60, 171, 170, 106, 63, 0, 215, 163, 60, 65, 255, 163, 62, 93, 211, 32, 63, 220, 63, 102, 63, 0, 0, 0, 0, 116, 21, 111, 63, 0, 0, 0, 0, 82, 89, 190, 62, 100, 0, 46, 63, 132, 234, 80, 63, 0, 0, 0, 0, 33, 192, 89, 63, 0, 0, 0, 0, 86, 85, 85, 63, 0, 215, 163, 60, 86, 85, 85, 63, 0, 215, 163, 60, 130, 254, 199, 62, 0, 0, 64, 63, 58, 149, 59, 63, 0, 0, 0, 0, 203, 106, 68, 63, 0, 0, 0, 0, 1, 0, 64, 63, 0, 215, 163, 60, 1, 0, 64, 63, 32, 215, 163, 60, 1, 0, 64, 63, 0, 215, 163, 60, 1, 0, 64, 63, 32, 215, 163, 60, 220, 63, 38, 63, 0, 0, 0, 0, 128, 21, 47, 63, 0, 0, 0, 0, 82, 89, 190, 62, 156, 255, 81, 63, 172, 170, 42, 63, 0, 215, 163, 60, 172, 170, 42, 63, 32, 215, 163, 60, 172, 170, 42, 63, 0, 215, 163, 60, 172, 170, 42, 63, 32, 215, 163, 60, 142, 234, 16, 63, 0, 0, 0, 0, 38, 192, 25, 63, 0, 0, 0, 0, 64, 255, 163, 62, 164, 44, 95, 63, 87, 85, 21, 63, 0, 215, 163, 60, 87, 85, 21, 63, 0, 215, 163, 60, 102, 42, 247, 62, 0, 0, 0, 0, 203, 106, 4, 63, 0, 0, 0, 0, 253, 255, 127, 62, 64, 255, 99, 63, 2, 0, 0, 63, 0, 215, 163, 60, 2, 0, 0, 63, 32, 215, 163, 60, 2, 0, 0, 63, 0, 215, 163, 60, 2, 0, 0, 63, 32, 215, 163, 60, 201, 127, 204, 62, 0, 0, 0, 0, 248, 42, 222, 62, 0, 0, 0, 0, 126, 1, 56, 62, 164, 44, 95, 63, 89, 85, 213, 62, 0, 215, 163, 60, 90, 85, 213, 62, 0, 215, 163, 60, 89, 85, 213, 62, 0, 215, 163, 60, 90, 85, 213, 62, 0, 215, 163, 60, 6, 213, 161, 62, 0, 0, 0, 0, 70, 128, 179, 62, 0, 0, 0, 0, 94, 77, 3, 62, 156, 255, 81, 63, 174, 170, 170, 62, 0, 215, 163, 60, 174, 170, 170, 62, 32, 215, 163, 60, 174, 170, 170, 62, 0, 215, 163, 60, 174, 170, 170, 62, 32, 215, 163, 60, 248, 5, 224, 61, 0, 0, 64, 63, 222, 84, 110, 62, 0, 0, 0, 0, 147, 213, 136, 62, 0, 0, 0, 0, 3, 0, 128, 62, 0, 215, 163, 60, 3, 0, 128, 62, 0, 215, 163, 60, 176, 170, 42, 62, 0, 215, 163, 60, 176, 170, 42, 62, 0, 215, 163, 60, 94, 77, 3, 62, 100, 0, 46, 63, 145, 255, 24, 62, 0, 0, 0, 0, 248, 85, 60, 62, 0, 0, 0, 0, 126, 1, 56, 62, 94, 211, 32, 63, 110, 84, 135, 61, 0, 0, 0, 0, 21, 1, 206, 61, 0, 0, 0, 0, 181, 170, 170, 61, 0, 215, 163, 60, 181, 170, 170, 61, 0, 215, 163, 60, 14, 90, 141, 60, 0, 0, 0, 0, 55, 149, 123, 63, 0, 0, 0, 0, 0, 0, 128, 62, 193, 0, 28, 63, 0, 0, 160, 51, 0, 215, 163, 60, 0, 0, 128, 63, 32, 215, 163, 60, 0, 0, 160, 51, 0, 215, 163, 60, 0, 0, 128, 63, 32, 215, 163, 60, 220, 63, 102, 63, 0, 0, 0, 0, 116, 21, 111, 63, 0, 0, 0, 0, 65, 255, 163, 62, 94, 211, 32, 63, 171, 170, 106, 63, 0, 215, 163, 60, 171, 170, 106, 63, 32, 215, 163, 60, 171, 170, 106, 63, 0, 215, 163, 60, 171, 170, 106, 63, 32, 215, 163, 60, 130, 234, 80, 63, 0, 0, 0, 0, 29, 192, 89, 63, 0, 0, 0, 0, 82, 89, 190, 62, 100, 0, 46, 63, 86, 85, 85, 63, 0, 215, 163, 60, 86, 85, 85, 63, 0, 215, 163, 60, 129, 254, 199, 62, 0, 0, 64, 63, 55, 149, 59, 63, 0, 0, 0, 0, 201, 106, 68, 63, 0, 0, 0, 0, 1, 0, 64, 63, 0, 215, 163, 60, 1, 0, 64, 63, 0, 215, 163, 60, 79, 89, 190, 62, 155, 255, 81, 63, 224, 63, 38, 63, 0, 0, 0, 0, 126, 21, 47, 63, 0, 0, 0, 0, 172, 170, 42, 63, 0, 215, 163, 60, 172, 170, 42, 63, 32, 215, 163, 60, 172, 170, 42, 63, 0, 215, 163, 60, 172, 170, 42, 63, 32, 215, 163, 60, 87, 85, 21, 63, 0, 215, 163, 60, 87, 85, 21, 63, 0, 215, 163, 60, 63, 255, 163, 62, 163, 44, 95, 63, 142, 234, 16, 63, 0, 0, 0, 0, 38, 192, 25, 63, 0, 0, 0, 0, 0, 0, 128, 62, 63, 255, 99, 63, 114, 42, 247, 62, 0, 0, 0, 0, 203, 106, 4, 63, 0, 0, 0, 0, 2, 0, 0, 63, 0, 215, 163, 60, 2, 0, 0, 63, 0, 215, 163, 60, 127, 1, 56, 62, 162, 44, 95, 63, 187, 127, 204, 62, 0, 0, 0, 0, 235, 42, 222, 62, 0, 0, 0, 0, 90, 85, 213, 62, 0, 215, 163, 60, 90, 85, 213, 62, 0, 215, 163, 60, 174, 170, 170, 62, 0, 215, 163, 60, 175, 170, 170, 62, 0, 215, 163, 60, 174, 170, 170, 62, 0, 215, 163, 60, 175, 170, 170, 62, 0, 215, 163, 60, 94, 77, 3, 62, 155, 255, 81, 63, 9, 213, 161, 62, 0, 0, 0, 0, 60, 128, 179, 62, 0, 0, 0, 0, 248, 5, 224, 61, 0, 0, 64, 63, 222, 84, 110, 62, 0, 0, 0, 0, 148, 213, 136, 62, 0, 0, 0, 0, 3, 0, 128, 62, 0, 215, 163, 60, 3, 0, 128, 62, 32, 215, 163, 60, 3, 0, 128, 62, 0, 215, 163, 60, 3, 0, 128, 62, 32, 215, 163, 60, 145, 255, 24, 62, 0, 0, 0, 0, 240, 85, 60, 62, 0, 0, 0, 0, 94, 77, 3, 62, 100, 0, 46, 63, 176, 170, 42, 62, 0, 215, 163, 60, 176, 170, 42, 62, 0, 215, 163, 60, 60, 84, 135, 61, 0, 0, 0, 0, 245, 0, 206, 61, 0, 0, 0, 0, 126, 1, 56, 62, 93, 211, 32, 63, 181, 170, 170, 61, 0, 215, 163, 60, 181, 170, 170, 61, 0, 215, 163, 60), +"format": 4119, "index_count": 798, -"material": ExtResource( 2 ), -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 358 -} +"index_data": PackedByteArray(104, 0, 31, 0, 108, 0, 104, 0, 65, 0, 31, 0, 31, 0, 113, 0, 108, 0, 31, 0, 35, 0, 113, 0, 6, 0, 26, 0, 4, 0, 6, 0, 29, 0, 26, 0, 35, 0, 118, 0, 112, 0, 35, 0, 39, 0, 118, 0, 33, 0, 6, 0, 8, 0, 33, 0, 29, 0, 6, 0, 39, 0, 122, 0, 117, 0, 39, 0, 41, 0, 122, 0, 37, 0, 8, 0, 10, 0, 37, 0, 33, 0, 8, 0, 41, 0, 127, 0, 122, 0, 41, 0, 44, 0, 127, 0, 47, 0, 10, 0, 12, 0, 47, 0, 37, 0, 10, 0, 43, 0, 130, 0, 126, 0, 43, 0, 55, 0, 130, 0, 49, 0, 12, 0, 13, 0, 49, 0, 47, 0, 12, 0, 49, 0, 15, 0, 53, 0, 49, 0, 13, 0, 15, 0, 55, 0, 134, 0, 130, 0, 55, 0, 59, 0, 134, 0, 59, 0, 138, 0, 134, 0, 59, 0, 93, 0, 138, 0, 52, 0, 17, 0, 57, 0, 52, 0, 15, 0, 17, 0, 93, 0, 143, 0, 138, 0, 93, 0, 68, 0, 143, 0, 19, 0, 57, 0, 17, 0, 19, 0, 87, 0, 57, 0, 67, 0, 148, 0, 142, 0, 67, 0, 75, 0, 148, 0, 21, 0, 87, 0, 19, 0, 21, 0, 71, 0, 87, 0, 147, 0, 81, 0, 96, 0, 147, 0, 75, 0, 81, 0, 73, 0, 21, 0, 23, 0, 73, 0, 71, 0, 21, 0, 0, 0, 73, 0, 23, 0, 0, 0, 78, 0, 73, 0, 22, 0, 2, 0, 24, 0, 2, 0, 5, 0, 3, 0, 5, 0, 9, 0, 7, 0, 9, 0, 14, 0, 11, 0, 14, 0, 18, 0, 16, 0, 18, 0, 22, 0, 20, 0, 22, 0, 5, 0, 2, 0, 5, 0, 14, 0, 9, 0, 14, 0, 22, 0, 18, 0, 5, 0, 22, 0, 14, 0, 25, 0, 165, 0, 160, 0, 25, 0, 28, 0, 165, 0, 28, 0, 170, 0, 165, 0, 28, 0, 32, 0, 170, 0, 32, 0, 175, 0, 170, 0, 32, 0, 36, 0, 175, 0, 36, 0, 180, 0, 175, 0, 36, 0, 46, 0, 180, 0, 61, 0, 180, 0, 46, 0, 61, 0, 185, 0, 180, 0, 185, 0, 40, 0, 191, 0, 185, 0, 61, 0, 40, 0, 40, 0, 195, 0, 190, 0, 40, 0, 38, 0, 195, 0, 38, 0, 204, 0, 194, 0, 38, 0, 34, 0, 204, 0, 34, 0, 209, 0, 204, 0, 34, 0, 30, 0, 209, 0, 30, 0, 214, 0, 209, 0, 30, 0, 64, 0, 214, 0, 64, 0, 150, 0, 214, 0, 64, 0, 84, 0, 150, 0, 85, 0, 160, 0, 151, 0, 85, 0, 25, 0, 160, 0, 62, 0, 31, 1, 42, 0, 62, 0, 221, 0, 31, 1, 54, 0, 232, 0, 50, 0, 54, 0, 239, 0, 232, 0, 58, 0, 238, 0, 54, 0, 58, 0, 245, 0, 238, 0, 58, 0, 251, 0, 246, 0, 58, 0, 88, 0, 251, 0, 1, 1, 88, 0, 92, 0, 1, 1, 251, 0, 88, 0, 2, 1, 95, 0, 8, 1, 2, 1, 92, 0, 95, 0, 60, 0, 21, 1, 16, 1, 60, 0, 56, 0, 21, 1, 56, 0, 23, 1, 21, 1, 56, 0, 45, 0, 23, 1, 23, 1, 42, 0, 31, 1, 23, 1, 45, 0, 42, 0, 222, 0, 48, 0, 224, 0, 222, 0, 63, 0, 48, 0, 48, 0, 232, 0, 224, 0, 48, 0, 51, 0, 232, 0, 37, 1, 94, 0, 90, 0, 37, 1, 101, 1, 94, 0, 55, 1, 80, 0, 62, 1, 55, 1, 74, 0, 80, 0, 64, 1, 80, 0, 27, 0, 64, 1, 61, 1, 80, 0, 27, 0, 72, 1, 64, 1, 27, 0, 86, 0, 72, 1, 77, 1, 86, 0, 66, 0, 77, 1, 72, 1, 86, 0, 66, 0, 81, 1, 77, 1, 66, 0, 83, 0, 81, 1, 83, 0, 90, 1, 80, 1, 83, 0, 77, 0, 90, 1, 91, 1, 69, 0, 96, 1, 91, 1, 76, 0, 69, 0, 94, 0, 96, 1, 70, 0, 94, 0, 101, 1, 96, 1, 38, 1, 89, 0, 44, 1, 38, 1, 91, 0, 89, 0, 106, 0, 111, 0, 110, 0, 106, 0, 107, 0, 111, 0, 115, 0, 121, 0, 120, 0, 115, 0, 116, 0, 121, 0, 120, 0, 125, 0, 123, 0, 120, 0, 121, 0, 125, 0, 128, 0, 135, 0, 132, 0, 128, 0, 131, 0, 135, 0, 136, 0, 144, 0, 140, 0, 136, 0, 139, 0, 144, 0, 140, 0, 149, 0, 145, 0, 140, 0, 144, 0, 149, 0, 100, 0, 103, 0, 102, 0, 100, 0, 98, 0, 103, 0, 102, 0, 107, 0, 106, 0, 102, 0, 103, 0, 107, 0, 110, 0, 116, 0, 115, 0, 110, 0, 111, 0, 116, 0, 123, 0, 131, 0, 128, 0, 123, 0, 125, 0, 131, 0, 132, 0, 139, 0, 136, 0, 132, 0, 135, 0, 139, 0, 98, 0, 145, 0, 149, 0, 98, 0, 100, 0, 145, 0, 119, 0, 109, 0, 114, 0, 109, 0, 101, 0, 105, 0, 101, 0, 146, 0, 99, 0, 146, 0, 137, 0, 141, 0, 137, 0, 129, 0, 133, 0, 129, 0, 119, 0, 124, 0, 119, 0, 101, 0, 109, 0, 101, 0, 137, 0, 146, 0, 137, 0, 119, 0, 129, 0, 101, 0, 119, 0, 137, 0, 155, 0, 161, 0, 158, 0, 155, 0, 153, 0, 161, 0, 157, 0, 166, 0, 163, 0, 157, 0, 161, 0, 166, 0, 162, 0, 171, 0, 168, 0, 162, 0, 166, 0, 171, 0, 167, 0, 176, 0, 173, 0, 167, 0, 171, 0, 176, 0, 172, 0, 181, 0, 178, 0, 172, 0, 176, 0, 181, 0, 198, 0, 205, 0, 202, 0, 198, 0, 196, 0, 205, 0, 152, 0, 211, 0, 215, 0, 152, 0, 154, 0, 211, 0, 177, 0, 186, 0, 183, 0, 177, 0, 181, 0, 186, 0, 187, 0, 197, 0, 199, 0, 187, 0, 192, 0, 197, 0, 201, 0, 210, 0, 207, 0, 201, 0, 205, 0, 210, 0, 206, 0, 215, 0, 212, 0, 206, 0, 210, 0, 215, 0, 182, 0, 193, 0, 188, 0, 182, 0, 186, 0, 193, 0, 179, 0, 169, 0, 174, 0, 169, 0, 159, 0, 164, 0, 159, 0, 213, 0, 156, 0, 213, 0, 203, 0, 208, 0, 203, 0, 189, 0, 200, 0, 189, 0, 179, 0, 184, 0, 179, 0, 159, 0, 169, 0, 159, 0, 203, 0, 213, 0, 203, 0, 179, 0, 189, 0, 159, 0, 179, 0, 203, 0, 226, 0, 231, 0, 230, 0, 226, 0, 223, 0, 231, 0, 229, 0, 237, 0, 235, 0, 229, 0, 231, 0, 237, 0, 234, 0, 243, 0, 241, 0, 234, 0, 236, 0, 243, 0, 3, 1, 13, 1, 11, 1, 3, 1, 7, 1, 13, 1, 10, 1, 20, 1, 19, 1, 10, 1, 14, 1, 20, 1, 25, 1, 30, 1, 29, 1, 25, 1, 22, 1, 30, 1, 252, 0, 6, 1, 4, 1, 252, 0, 0, 1, 6, 1, 218, 0, 223, 0, 227, 0, 218, 0, 220, 0, 223, 0, 247, 0, 255, 0, 253, 0, 247, 0, 250, 0, 255, 0, 18, 1, 22, 1, 26, 1, 18, 1, 20, 1, 22, 1, 219, 0, 28, 1, 30, 1, 219, 0, 217, 0, 28, 1, 240, 0, 250, 0, 248, 0, 240, 0, 244, 0, 250, 0, 12, 1, 254, 0, 5, 1, 254, 0, 242, 0, 249, 0, 242, 0, 228, 0, 233, 0, 228, 0, 216, 0, 225, 0, 216, 0, 24, 1, 27, 1, 24, 1, 12, 1, 17, 1, 12, 1, 242, 0, 254, 0, 242, 0, 216, 0, 228, 0, 216, 0, 12, 1, 24, 1, 242, 0, 12, 1, 216, 0, 39, 1, 49, 1, 47, 1, 39, 1, 43, 1, 49, 1, 52, 1, 60, 1, 58, 1, 52, 1, 54, 1, 60, 1, 83, 1, 88, 1, 87, 1, 83, 1, 78, 1, 88, 1, 33, 1, 42, 1, 40, 1, 33, 1, 36, 1, 42, 1, 46, 1, 54, 1, 53, 1, 46, 1, 49, 1, 54, 1, 66, 1, 71, 1, 70, 1, 66, 1, 63, 1, 71, 1, 74, 1, 79, 1, 84, 1, 74, 1, 76, 1, 79, 1, 86, 1, 95, 1, 93, 1, 86, 1, 89, 1, 95, 1, 92, 1, 100, 1, 98, 1, 92, 1, 95, 1, 100, 1, 57, 1, 63, 1, 67, 1, 57, 1, 59, 1, 63, 1, 69, 1, 76, 1, 75, 1, 69, 1, 71, 1, 76, 1, 35, 1, 97, 1, 100, 1, 35, 1, 32, 1, 97, 1, 99, 1, 85, 1, 94, 1, 85, 1, 73, 1, 82, 1, 73, 1, 65, 1, 68, 1, 65, 1, 51, 1, 56, 1, 51, 1, 41, 1, 48, 1, 41, 1, 99, 1, 34, 1, 99, 1, 73, 1, 85, 1, 73, 1, 51, 1, 65, 1, 51, 1, 99, 1, 41, 1, 73, 1, 99, 1, 51, 1, 26, 0, 1, 0, 4, 0, 26, 0, 79, 0, 1, 0, 97, 0, 65, 0, 104, 0, 97, 0, 82, 0, 65, 0, 95, 0, 15, 1, 9, 1, 95, 0, 60, 0, 15, 1, 72, 0, 55, 1, 50, 1, 72, 0, 74, 0, 55, 1, 89, 0, 50, 1, 45, 1, 89, 0, 72, 0, 50, 1), +"lods": [0.016668, PackedByteArray(126, 0, 65, 0, 31, 0, 31, 0, 41, 0, 126, 0, 41, 0, 43, 0, 126, 0, 43, 0, 93, 0, 126, 0, 93, 0, 67, 0, 126, 0, 126, 0, 67, 0, 81, 0, 126, 0, 81, 0, 96, 0, 97, 0, 65, 0, 126, 0, 97, 0, 82, 0, 65, 0, 19, 0, 37, 0, 26, 0, 47, 0, 37, 0, 19, 0, 26, 0, 79, 0, 1, 0, 26, 0, 1, 0, 19, 0, 57, 0, 47, 0, 19, 0, 19, 0, 87, 0, 57, 0, 19, 0, 71, 0, 87, 0, 0, 0, 71, 0, 19, 0, 0, 0, 78, 0, 71, 0, 25, 0, 165, 0, 160, 0, 85, 0, 25, 0, 160, 0, 85, 0, 160, 0, 151, 0, 155, 0, 151, 0, 160, 0, 155, 0, 160, 0, 158, 0, 157, 0, 160, 0, 165, 0, 157, 0, 165, 0, 163, 0, 25, 0, 36, 0, 165, 0, 36, 0, 170, 0, 165, 0, 162, 0, 165, 0, 170, 0, 162, 0, 170, 0, 168, 0, 36, 0, 175, 0, 170, 0, 167, 0, 170, 0, 175, 0, 167, 0, 175, 0, 173, 0, 36, 0, 180, 0, 175, 0, 172, 0, 175, 0, 180, 0, 172, 0, 180, 0, 178, 0, 36, 0, 46, 0, 180, 0, 61, 0, 180, 0, 46, 0, 61, 0, 185, 0, 180, 0, 177, 0, 180, 0, 185, 0, 177, 0, 185, 0, 183, 0, 185, 0, 61, 0, 40, 0, 185, 0, 40, 0, 190, 0, 182, 0, 185, 0, 190, 0, 182, 0, 190, 0, 188, 0, 40, 0, 194, 0, 190, 0, 187, 0, 190, 0, 194, 0, 187, 0, 194, 0, 199, 0, 40, 0, 30, 0, 194, 0, 30, 0, 204, 0, 194, 0, 198, 0, 194, 0, 204, 0, 198, 0, 204, 0, 202, 0, 30, 0, 209, 0, 204, 0, 201, 0, 204, 0, 209, 0, 201, 0, 209, 0, 207, 0, 30, 0, 214, 0, 209, 0, 206, 0, 209, 0, 214, 0, 206, 0, 214, 0, 212, 0, 30, 0, 64, 0, 214, 0, 64, 0, 150, 0, 214, 0, 64, 0, 84, 0, 150, 0, 150, 0, 211, 0, 214, 0, 150, 0, 154, 0, 211, 0, 62, 0, 30, 1, 42, 0, 62, 0, 219, 0, 30, 1, 219, 0, 28, 1, 30, 1, 219, 0, 217, 0, 28, 1, 25, 1, 30, 1, 29, 1, 25, 1, 22, 1, 30, 1, 22, 1, 42, 0, 30, 1, 22, 1, 45, 0, 42, 0, 18, 1, 22, 1, 26, 1, 18, 1, 20, 1, 22, 1, 45, 0, 22, 1, 20, 1, 10, 1, 20, 1, 19, 1, 10, 1, 13, 1, 20, 1, 45, 0, 20, 1, 13, 1, 95, 0, 45, 0, 13, 1, 3, 1, 13, 1, 11, 1, 3, 1, 6, 1, 13, 1, 95, 0, 13, 1, 6, 1, 252, 0, 6, 1, 4, 1, 252, 0, 255, 0, 6, 1, 255, 0, 95, 0, 6, 1, 255, 0, 92, 0, 95, 0, 255, 0, 88, 0, 92, 0, 247, 0, 255, 0, 253, 0, 247, 0, 250, 0, 255, 0, 255, 0, 250, 0, 88, 0, 58, 0, 88, 0, 250, 0, 240, 0, 250, 0, 248, 0, 240, 0, 243, 0, 250, 0, 58, 0, 250, 0, 243, 0, 234, 0, 243, 0, 241, 0, 234, 0, 236, 0, 243, 0, 58, 0, 243, 0, 236, 0, 229, 0, 236, 0, 235, 0, 229, 0, 231, 0, 236, 0, 58, 0, 236, 0, 231, 0, 48, 0, 58, 0, 231, 0, 226, 0, 231, 0, 230, 0, 226, 0, 223, 0, 231, 0, 48, 0, 231, 0, 223, 0, 220, 0, 48, 0, 223, 0, 220, 0, 63, 0, 48, 0, 218, 0, 220, 0, 223, 0, 218, 0, 223, 0, 227, 0, 35, 1, 94, 0, 90, 0, 35, 1, 32, 1, 97, 1, 35, 1, 97, 1, 100, 1, 35, 1, 100, 1, 94, 0, 92, 1, 100, 1, 98, 1, 92, 1, 95, 1, 100, 1, 94, 0, 100, 1, 95, 1, 94, 0, 95, 1, 69, 0, 86, 1, 95, 1, 93, 1, 86, 1, 88, 1, 95, 1, 88, 1, 69, 0, 95, 1, 83, 0, 69, 0, 88, 1, 83, 1, 88, 1, 87, 1, 83, 1, 78, 1, 88, 1, 83, 0, 88, 1, 78, 1, 66, 0, 83, 0, 78, 1, 74, 1, 78, 1, 84, 1, 74, 1, 76, 1, 78, 1, 66, 0, 78, 1, 76, 1, 76, 1, 86, 0, 66, 0, 69, 1, 76, 1, 75, 1, 69, 1, 71, 1, 76, 1, 76, 1, 71, 1, 86, 0, 27, 0, 86, 0, 71, 1, 66, 1, 71, 1, 70, 1, 66, 1, 63, 1, 71, 1, 27, 0, 71, 1, 63, 1, 63, 1, 80, 0, 27, 0, 57, 1, 63, 1, 67, 1, 57, 1, 59, 1, 63, 1, 63, 1, 59, 1, 80, 0, 52, 1, 59, 1, 58, 1, 52, 1, 54, 1, 59, 1, 54, 1, 80, 0, 59, 1, 54, 1, 72, 0, 80, 0, 46, 1, 54, 1, 53, 1, 46, 1, 49, 1, 54, 1, 72, 0, 54, 1, 49, 1, 89, 0, 72, 0, 49, 1, 39, 1, 49, 1, 47, 1, 39, 1, 42, 1, 49, 1, 89, 0, 49, 1, 42, 1, 36, 1, 89, 0, 42, 1, 36, 1, 91, 0, 89, 0, 33, 1, 36, 1, 42, 1, 33, 1, 42, 1, 40, 1, 179, 0, 169, 0, 174, 0, 179, 0, 159, 0, 169, 0, 169, 0, 159, 0, 164, 0, 189, 0, 179, 0, 184, 0, 203, 0, 179, 0, 189, 0, 159, 0, 179, 0, 203, 0, 203, 0, 189, 0, 200, 0, 159, 0, 203, 0, 213, 0, 213, 0, 203, 0, 208, 0, 159, 0, 213, 0, 156, 0, 12, 1, 254, 0, 5, 1, 12, 1, 242, 0, 254, 0, 254, 0, 242, 0, 249, 0, 24, 1, 12, 1, 17, 1, 216, 0, 12, 1, 24, 1, 242, 0, 12, 1, 216, 0, 216, 0, 24, 1, 27, 1, 242, 0, 216, 0, 228, 0, 228, 0, 216, 0, 225, 0, 242, 0, 228, 0, 233, 0, 99, 1, 85, 1, 94, 1, 99, 1, 73, 1, 85, 1, 85, 1, 73, 1, 82, 1, 41, 1, 99, 1, 34, 1, 51, 1, 99, 1, 41, 1, 73, 1, 99, 1, 51, 1, 51, 1, 41, 1, 48, 1, 73, 1, 51, 1, 65, 1, 65, 1, 51, 1, 56, 1, 73, 1, 65, 1, 68, 1)], +"material": SubResource("StandardMaterial3D_hqk2h"), +"primitive": 3, +"vertex_count": 358, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 0, 0, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 0, 0, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 188, 255, 127, 0, 0, 255, 255, 255, 63, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 188, 255, 127, 0, 0, 255, 255, 255, 63, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 188, 255, 255, 37, 209, 0, 0, 146, 168, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 187, 255, 127, 0, 0, 255, 255, 255, 63, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 187, 255, 255, 217, 174, 0, 0, 108, 151, 10, 215, 35, 60, 0, 0, 0, 0, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 63, 10, 215, 35, 60, 0, 0, 0, 0, 0, 0, 0, 128, 255, 255, 255, 127, 255, 255, 255, 127, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 59, 255, 127, 0, 0, 255, 255, 255, 63, 189, 227, 13, 60, 0, 0, 0, 0, 10, 215, 163, 59, 37, 209, 255, 127, 255, 255, 108, 151, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 60, 255, 127, 0, 0, 254, 255, 255, 63, 10, 215, 163, 59, 0, 0, 0, 0, 189, 227, 13, 60, 217, 174, 255, 127, 255, 255, 146, 168, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 60, 255, 127, 255, 127, 254, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 35, 60, 255, 127, 0, 0, 255, 255, 255, 63, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 60, 37, 81, 255, 127, 37, 209, 255, 191, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 60, 255, 127, 0, 0, 255, 255, 255, 63, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 59, 217, 46, 255, 127, 217, 174, 255, 191, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 59, 255, 127, 0, 0, 255, 255, 255, 63, 10, 215, 35, 188, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 191, 10, 215, 35, 188, 0, 0, 0, 0, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 63, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 187, 0, 0, 217, 174, 37, 81, 255, 191, 189, 227, 13, 188, 0, 0, 0, 0, 10, 215, 163, 187, 255, 127, 0, 0, 255, 255, 255, 63, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 188, 0, 0, 37, 209, 217, 46, 255, 191, 10, 215, 163, 187, 0, 0, 0, 0, 189, 227, 13, 188, 255, 127, 0, 0, 254, 255, 255, 63, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 206, 212, 0, 0, 47, 171, 254, 255, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 255, 255, 37, 209, 0, 0, 108, 215, 10, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 188, 60, 221, 28, 59, 181, 94, 64, 154, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 187, 83, 179, 0, 0, 83, 51, 254, 255, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 187, 255, 255, 83, 179, 0, 0, 169, 153, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 187, 83, 179, 255, 255, 255, 127, 169, 217, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 187, 255, 255, 83, 179, 0, 0, 85, 230, 10, 215, 35, 60, 113, 61, 138, 62, 0, 0, 0, 128, 255, 127, 0, 0, 0, 0, 255, 255, 10, 215, 35, 60, 113, 61, 138, 62, 0, 0, 0, 128, 255, 255, 255, 127, 255, 255, 255, 127, 10, 215, 35, 60, 225, 122, 148, 62, 0, 0, 0, 128, 255, 127, 255, 255, 255, 127, 255, 191, 10, 215, 35, 60, 225, 122, 148, 62, 0, 0, 0, 128, 255, 255, 255, 127, 254, 255, 255, 127, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 59, 255, 127, 83, 51, 83, 51, 255, 127, 189, 227, 13, 60, 11, 237, 138, 62, 10, 215, 163, 59, 171, 204, 255, 127, 254, 255, 169, 153, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 59, 255, 127, 171, 204, 255, 127, 85, 166, 189, 227, 13, 60, 71, 203, 147, 62, 10, 215, 163, 59, 171, 204, 255, 127, 254, 255, 85, 230, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 255, 127, 47, 171, 255, 127, 151, 149, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 217, 174, 255, 127, 254, 255, 146, 168, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 60, 28, 187, 193, 162, 124, 75, 89, 239, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 248, 135, 255, 127, 254, 255, 2, 188, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 248, 135, 255, 127, 254, 255, 2, 188, 0, 0, 0, 0, 71, 203, 147, 62, 10, 215, 35, 60, 194, 166, 218, 194, 25, 42, 196, 228, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 255, 127, 207, 84, 207, 84, 255, 127, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 217, 174, 255, 127, 254, 255, 146, 168, 9, 215, 163, 59, 205, 204, 140, 62, 189, 227, 13, 60, 28, 187, 61, 93, 73, 161, 189, 229, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 248, 135, 255, 127, 254, 255, 251, 195, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 194, 166, 36, 61, 116, 182, 11, 213, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 60, 194, 166, 36, 61, 116, 182, 11, 213, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 37, 81, 255, 127, 37, 209, 255, 191, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 37, 81, 255, 127, 37, 209, 255, 191, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 60, 255, 127, 0, 0, 37, 209, 255, 191, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 60, 37, 81, 255, 127, 37, 209, 255, 191, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 60, 255, 127, 254, 255, 0, 0, 146, 168, 189, 227, 13, 188, 11, 237, 138, 62, 10, 215, 163, 59, 53, 42, 255, 127, 53, 170, 255, 191, 189, 227, 13, 188, 11, 237, 138, 62, 10, 215, 163, 59, 219, 66, 195, 38, 116, 182, 242, 170, 189, 227, 13, 188, 71, 203, 147, 62, 10, 215, 163, 59, 53, 42, 255, 127, 53, 170, 255, 191, 189, 227, 13, 188, 71, 203, 147, 62, 10, 215, 163, 59, 219, 66, 59, 217, 25, 42, 58, 155, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 255, 127, 255, 127, 255, 127, 255, 127, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 37, 209, 255, 127, 255, 127, 254, 255, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 60, 37, 209, 255, 127, 255, 127, 254, 255, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 206, 212, 255, 255, 255, 127, 102, 234, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 255, 255, 37, 209, 226, 46, 72, 230, 9, 215, 163, 59, 133, 235, 145, 62, 189, 227, 13, 188, 60, 221, 226, 196, 130, 180, 164, 144, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 0, 0, 201, 85, 201, 85, 255, 191, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 0, 0, 201, 85, 201, 85, 255, 191, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 60, 89, 218, 194, 229, 213, 196, 228, 189, 227, 13, 188, 71, 203, 147, 62, 8, 215, 163, 187, 60, 89, 218, 194, 229, 213, 196, 228, 189, 227, 13, 188, 11, 237, 138, 62, 8, 215, 163, 187, 0, 0, 53, 170, 201, 85, 255, 191, 189, 227, 13, 188, 11, 237, 138, 62, 8, 215, 163, 187, 60, 89, 36, 61, 138, 73, 11, 213, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 188, 0, 0, 37, 209, 217, 46, 255, 191, 11, 215, 163, 187, 113, 61, 138, 62, 188, 227, 13, 188, 255, 127, 0, 0, 217, 46, 255, 191, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 0, 0, 217, 46, 217, 46, 255, 191, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 255, 127, 254, 255, 255, 255, 146, 168, 11, 215, 163, 187, 225, 122, 148, 62, 188, 227, 13, 188, 255, 127, 254, 255, 254, 255, 146, 168, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 255, 255, 5, 248, 0, 0, 2, 188, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 255, 255, 5, 248, 0, 0, 252, 195, 134, 111, 2, 176, 11, 237, 138, 62, 10, 215, 35, 188, 35, 189, 195, 38, 138, 73, 242, 170, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 255, 255, 249, 7, 0, 0, 2, 188, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 255, 255, 249, 7, 90, 92, 72, 239, 134, 111, 2, 176, 71, 203, 147, 62, 10, 215, 35, 188, 35, 189, 59, 217, 229, 213, 58, 155, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 255, 255, 255, 255, 255, 127, 254, 255, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 255, 255, 255, 255, 255, 127, 254, 255, 166, 47, 189, 59, 41, 92, 143, 62, 10, 215, 35, 188, 254, 255, 217, 174, 255, 127, 255, 127, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 0, 0, 255, 127, 255, 127, 255, 191, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 194, 34, 28, 59, 73, 161, 64, 154, 10, 215, 35, 188, 205, 204, 140, 62, 3, 152, 71, 48, 226, 68, 61, 93, 181, 94, 189, 229, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 217, 46, 255, 127, 255, 127, 254, 255, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 217, 46, 255, 127, 255, 127, 254, 255, 167, 47, 61, 188, 41, 92, 143, 62, 71, 56, 113, 47, 0, 0, 217, 174, 255, 127, 255, 127, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 0, 0, 255, 127, 255, 127, 255, 191, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 226, 68, 193, 162, 130, 180, 89, 239, 11, 215, 35, 188, 133, 235, 145, 62, 172, 101, 67, 47, 194, 34, 226, 196, 124, 75, 164, 144, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 0, 0, 0, 0, 0, 0, 255, 191, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 0, 0, 0, 0, 109, 110, 54, 247, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 188, 227, 190, 254, 255, 254, 255, 255, 191, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 187, 255, 127, 254, 255, 254, 255, 255, 191, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 187, 227, 190, 254, 255, 254, 255, 255, 191, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 187, 255, 127, 254, 255, 254, 255, 255, 191, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 187, 207, 200, 88, 229, 58, 214, 122, 171, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 188, 207, 200, 88, 229, 58, 214, 122, 171, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 188, 255, 255, 37, 209, 85, 51, 177, 231, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 187, 255, 127, 254, 255, 254, 255, 255, 191, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 187, 207, 200, 213, 209, 167, 197, 229, 162, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 187, 207, 200, 213, 209, 167, 197, 229, 162, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 187, 255, 255, 217, 174, 0, 0, 146, 232, 249, 251, 191, 59, 154, 153, 153, 62, 0, 0, 0, 128, 255, 127, 254, 255, 254, 255, 255, 191, 249, 251, 191, 59, 154, 153, 153, 62, 0, 0, 0, 128, 227, 190, 27, 193, 27, 193, 141, 160, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 227, 190, 27, 193, 27, 193, 141, 160, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 255, 255, 255, 127, 254, 255, 255, 127, 10, 215, 35, 60, 80, 141, 151, 62, 0, 0, 0, 128, 255, 255, 255, 127, 254, 255, 255, 127, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 59, 255, 127, 254, 255, 254, 255, 255, 191, 101, 67, 166, 59, 154, 153, 153, 62, 250, 251, 63, 59, 41, 174, 46, 183, 204, 197, 211, 162, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 41, 174, 46, 183, 204, 197, 211, 162, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 37, 209, 255, 127, 255, 255, 146, 232, 189, 227, 13, 60, 80, 141, 151, 62, 10, 215, 163, 59, 37, 209, 255, 127, 254, 255, 108, 151, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 59, 255, 127, 254, 255, 254, 255, 255, 191, 250, 251, 63, 59, 154, 153, 153, 62, 101, 67, 166, 59, 166, 154, 46, 183, 245, 214, 29, 171, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 60, 166, 154, 46, 183, 245, 214, 29, 171, 10, 215, 163, 59, 80, 141, 151, 62, 189, 227, 13, 60, 217, 174, 255, 127, 254, 255, 146, 168, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 59, 255, 127, 27, 193, 254, 255, 255, 191, 0, 0, 0, 0, 154, 153, 153, 62, 249, 251, 191, 59, 255, 127, 254, 255, 254, 255, 255, 191, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 255, 127, 27, 193, 254, 255, 255, 191, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 255, 127, 255, 127, 254, 255, 255, 191, 0, 0, 0, 0, 80, 141, 151, 62, 10, 215, 35, 60, 255, 127, 255, 127, 254, 255, 255, 191, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 59, 88, 101, 46, 183, 58, 214, 132, 212, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 59, 255, 127, 254, 255, 254, 255, 255, 191, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 60, 37, 81, 255, 127, 37, 209, 255, 191, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 60, 88, 101, 46, 183, 58, 214, 132, 212, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 59, 213, 81, 46, 183, 167, 197, 24, 221, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 59, 255, 127, 254, 255, 254, 255, 255, 191, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 59, 217, 46, 255, 127, 217, 174, 255, 191, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 59, 213, 81, 46, 183, 167, 197, 24, 221, 249, 251, 191, 187, 154, 153, 153, 62, 0, 0, 0, 128, 27, 65, 27, 193, 27, 193, 113, 223, 249, 251, 191, 187, 154, 153, 153, 62, 0, 0, 0, 128, 255, 127, 254, 255, 254, 255, 255, 191, 10, 215, 35, 188, 80, 141, 151, 62, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 191, 10, 215, 35, 188, 80, 141, 151, 62, 0, 0, 0, 128, 27, 65, 27, 193, 27, 193, 113, 223, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 187, 47, 55, 213, 209, 204, 197, 43, 221, 101, 67, 166, 187, 154, 153, 153, 62, 250, 251, 63, 187, 255, 127, 254, 255, 254, 255, 255, 191, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 0, 0, 37, 81, 37, 81, 255, 191, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 0, 0, 37, 81, 37, 81, 255, 191, 189, 227, 13, 188, 80, 141, 151, 62, 10, 215, 163, 187, 47, 55, 213, 209, 204, 197, 43, 221, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 187, 47, 55, 88, 229, 245, 214, 225, 212, 250, 251, 63, 187, 154, 153, 153, 62, 101, 67, 166, 187, 255, 127, 254, 255, 254, 255, 255, 191, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 0, 0, 217, 46, 217, 46, 255, 191, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 0, 0, 217, 46, 217, 46, 255, 191, 10, 215, 163, 187, 80, 141, 151, 62, 189, 227, 13, 188, 47, 55, 88, 229, 245, 214, 225, 212, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 255, 255, 255, 255, 255, 127, 255, 255, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 255, 255, 255, 255, 255, 127, 255, 255, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 255, 255, 227, 190, 119, 141, 74, 242, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 188, 255, 255, 227, 190, 150, 100, 67, 249, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 255, 255, 227, 190, 119, 141, 74, 242, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 255, 255, 227, 190, 150, 100, 67, 249, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 187, 255, 255, 255, 127, 255, 127, 255, 127, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 88, 229, 47, 55, 195, 65, 120, 250, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 88, 229, 47, 55, 98, 173, 21, 250, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 187, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 188, 37, 209, 0, 0, 217, 174, 255, 255, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 188, 88, 229, 47, 55, 195, 65, 120, 250, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 213, 209, 47, 55, 143, 33, 21, 250, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 213, 209, 47, 55, 208, 204, 120, 250, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 187, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 187, 217, 174, 0, 0, 217, 46, 255, 255, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 187, 213, 209, 47, 55, 143, 33, 21, 250, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 27, 193, 27, 65, 241, 13, 187, 134, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 27, 193, 27, 65, 13, 242, 67, 249, 205, 204, 204, 61, 57, 92, 140, 62, 0, 0, 0, 175, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 113, 61, 138, 62, 0, 0, 0, 128, 255, 127, 0, 0, 0, 0, 255, 255, 166, 155, 196, 61, 113, 61, 138, 62, 0, 0, 0, 128, 27, 193, 27, 65, 241, 13, 187, 134, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 46, 183, 213, 81, 46, 51, 134, 133, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 46, 183, 213, 81, 111, 222, 233, 133, 205, 204, 204, 61, 27, 195, 140, 62, 204, 251, 63, 59, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 59, 255, 127, 217, 46, 37, 209, 255, 127, 166, 155, 196, 61, 11, 237, 138, 62, 10, 215, 163, 59, 46, 183, 213, 81, 46, 51, 134, 133, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 46, 183, 88, 101, 156, 82, 233, 133, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 46, 183, 88, 101, 59, 190, 134, 133, 205, 204, 204, 61, 49, 220, 141, 62, 99, 67, 166, 59, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 60, 255, 127, 37, 81, 37, 81, 255, 127, 166, 155, 196, 61, 205, 204, 140, 62, 189, 227, 13, 60, 46, 183, 88, 101, 156, 82, 233, 133, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 27, 193, 255, 127, 135, 114, 180, 141, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 27, 193, 255, 127, 104, 155, 187, 134, 205, 204, 204, 61, 41, 92, 143, 62, 250, 251, 191, 59, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 60, 255, 127, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 41, 92, 143, 62, 10, 215, 35, 60, 27, 193, 255, 127, 135, 114, 180, 141, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 46, 183, 166, 154, 242, 116, 29, 159, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 46, 183, 166, 154, 210, 139, 176, 150, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 59, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 255, 127, 217, 174, 255, 127, 108, 151, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 255, 127, 217, 174, 255, 127, 108, 151, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 46, 183, 166, 154, 242, 116, 29, 159, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 60, 46, 183, 166, 154, 210, 139, 176, 150, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 255, 127, 37, 209, 255, 127, 146, 168, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 255, 127, 37, 209, 255, 127, 146, 168, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 46, 183, 41, 174, 43, 116, 55, 175, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 59, 46, 183, 41, 174, 12, 139, 104, 166, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 46, 183, 41, 174, 44, 116, 55, 175, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 46, 183, 41, 174, 12, 139, 104, 166, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 59, 255, 255, 255, 127, 255, 127, 255, 127, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 27, 193, 227, 190, 135, 114, 247, 198, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 27, 193, 227, 190, 119, 141, 6, 185, 205, 204, 204, 61, 25, 92, 146, 62, 0, 0, 0, 47, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 225, 122, 148, 62, 0, 0, 0, 128, 255, 127, 255, 255, 255, 127, 255, 191, 166, 155, 196, 61, 225, 122, 148, 62, 0, 0, 0, 128, 27, 193, 227, 190, 135, 114, 247, 198, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 213, 209, 207, 200, 242, 116, 150, 217, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 213, 209, 207, 200, 210, 139, 198, 208, 205, 204, 204, 61, 55, 245, 145, 62, 204, 251, 63, 187, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 187, 217, 174, 255, 255, 255, 127, 108, 215, 166, 155, 196, 61, 71, 203, 147, 62, 10, 215, 163, 187, 213, 209, 207, 200, 242, 116, 150, 217, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 88, 229, 207, 200, 44, 116, 77, 233, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 88, 229, 207, 200, 12, 139, 225, 224, 205, 204, 204, 61, 33, 220, 144, 62, 99, 67, 166, 187, 255, 255, 255, 127, 255, 127, 255, 127, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 188, 37, 209, 255, 255, 255, 127, 146, 232, 166, 155, 196, 61, 133, 235, 145, 62, 189, 227, 13, 188, 88, 229, 207, 200, 12, 139, 225, 224, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 37, 81, 255, 127, 255, 127, 255, 127, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 141, 153, 255, 127, 152, 108, 224, 243, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 61, 141, 153, 255, 127, 61, 152, 75, 246, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 141, 153, 255, 127, 152, 108, 224, 243, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 141, 153, 255, 127, 61, 152, 75, 246, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 37, 209, 255, 127, 255, 127, 254, 255, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 61, 37, 209, 255, 127, 255, 127, 254, 255, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 61, 108, 142, 245, 96, 80, 150, 208, 231, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 61, 9, 185, 248, 89, 199, 163, 198, 227, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 37, 81, 255, 127, 255, 127, 255, 127, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 108, 142, 245, 96, 120, 176, 248, 223, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 61, 108, 142, 245, 96, 80, 150, 208, 231, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 37, 81, 255, 127, 255, 127, 255, 127, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 213, 122, 36, 75, 199, 197, 29, 207, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 61, 213, 122, 36, 75, 96, 173, 147, 214, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 61, 213, 122, 36, 75, 199, 197, 29, 207, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 61, 199, 163, 112, 56, 9, 185, 2, 211, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 37, 81, 255, 127, 255, 127, 255, 127, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 141, 100, 250, 74, 9, 210, 231, 185, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 61, 141, 100, 250, 74, 212, 193, 181, 197, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 141, 100, 250, 74, 9, 210, 231, 185, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 141, 100, 250, 74, 212, 193, 180, 197, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 255, 127, 0, 0, 37, 209, 255, 191, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 61, 255, 127, 0, 0, 37, 209, 255, 191, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 153, 78, 255, 82, 98, 186, 21, 168, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 153, 78, 255, 82, 186, 183, 191, 177, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 61, 37, 81, 255, 127, 255, 127, 255, 127, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 153, 78, 255, 82, 186, 183, 191, 177, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 153, 78, 255, 82, 98, 186, 21, 168, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 143, 71, 199, 35, 9, 185, 251, 172, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 61, 143, 71, 199, 35, 9, 185, 251, 172, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 70, 55, 80, 99, 16, 164, 103, 149, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 70, 55, 80, 99, 138, 163, 223, 161, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 61, 37, 81, 255, 127, 255, 127, 255, 127, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 61, 70, 55, 80, 99, 138, 163, 223, 161, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 61, 6, 38, 10, 57, 199, 163, 55, 156, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 131, 28, 255, 127, 92, 103, 189, 130, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 131, 28, 255, 127, 124, 133, 81, 140, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 61, 37, 81, 255, 127, 255, 127, 255, 127, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 131, 28, 255, 127, 124, 133, 81, 140, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 131, 28, 255, 127, 92, 103, 189, 130, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 0, 0, 217, 174, 255, 127, 255, 127, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 61, 0, 0, 217, 174, 255, 127, 255, 127, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 70, 55, 174, 156, 62, 60, 196, 145, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 70, 55, 174, 156, 48, 85, 8, 146, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 61, 37, 81, 255, 127, 255, 127, 255, 127, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 70, 55, 174, 156, 48, 85, 8, 146, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 70, 55, 174, 156, 62, 60, 196, 145, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 6, 38, 244, 198, 143, 71, 227, 145, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 61, 6, 38, 244, 198, 143, 71, 227, 145, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 153, 78, 255, 172, 127, 28, 221, 155, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 153, 78, 255, 172, 211, 47, 48, 157, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 61, 37, 81, 255, 127, 255, 127, 255, 127, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 153, 78, 255, 172, 211, 47, 48, 157, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 153, 78, 255, 172, 127, 28, 221, 155, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 143, 71, 55, 220, 6, 38, 132, 156, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 61, 143, 71, 55, 220, 6, 38, 132, 156, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 37, 81, 255, 127, 255, 127, 255, 127, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 141, 100, 4, 181, 107, 11, 20, 223, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 61, 141, 100, 4, 181, 48, 12, 4, 169, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 61, 141, 100, 4, 181, 107, 11, 20, 223, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 61, 255, 127, 254, 255, 0, 0, 146, 168, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 61, 213, 122, 218, 180, 59, 30, 27, 221, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 61, 199, 163, 142, 199, 6, 38, 121, 227, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 37, 81, 255, 127, 255, 127, 255, 127, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 213, 122, 218, 180, 41, 45, 78, 233, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 61, 213, 122, 218, 180, 59, 30, 27, 221, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 37, 81, 255, 127, 255, 127, 255, 127, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 108, 142, 9, 159, 162, 79, 214, 244, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 61, 108, 142, 9, 159, 242, 63, 194, 231, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 61, 108, 142, 9, 159, 162, 79, 214, 244, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 61, 9, 185, 6, 166, 143, 71, 27, 238, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 0, 0, 124, 99, 162, 152, 64, 253, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 0, 0, 124, 99, 130, 122, 173, 243, 60, 149, 97, 189, 41, 92, 143, 62, 204, 92, 171, 189, 0, 0, 37, 209, 255, 127, 255, 127, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 0, 0, 124, 99, 162, 152, 64, 253, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 0, 0, 124, 99, 130, 122, 173, 243, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 217, 46, 255, 127, 255, 127, 255, 255, 151, 20, 104, 189, 41, 92, 143, 62, 11, 7, 160, 189, 217, 46, 255, 127, 255, 127, 254, 255, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 175, 28, 184, 72, 116, 92, 30, 222, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 175, 28, 184, 72, 238, 91, 151, 234, 111, 204, 94, 189, 49, 220, 141, 62, 145, 42, 172, 189, 0, 0, 37, 209, 255, 127, 255, 127, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 175, 28, 184, 72, 238, 91, 151, 234, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 175, 28, 184, 72, 116, 92, 30, 222, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 245, 70, 248, 89, 55, 92, 198, 227, 250, 83, 99, 189, 205, 204, 140, 62, 64, 102, 161, 189, 245, 70, 248, 89, 55, 92, 198, 227, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 0, 45, 102, 49, 68, 72, 62, 206, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 0, 45, 102, 49, 156, 69, 233, 215, 2, 49, 87, 189, 27, 195, 140, 62, 188, 92, 174, 189, 0, 0, 37, 209, 255, 127, 255, 127, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 189, 0, 45, 102, 49, 68, 72, 62, 206, 32, 88, 86, 189, 11, 237, 138, 62, 196, 37, 165, 189, 55, 92, 112, 56, 245, 70, 2, 211, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 0, 0, 37, 209, 255, 127, 255, 127, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 4, 53, 113, 27, 42, 62, 73, 186, 207, 204, 76, 189, 57, 92, 140, 62, 172, 92, 177, 189, 4, 53, 113, 27, 245, 45, 23, 198, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 189, 4, 53, 113, 27, 245, 45, 23, 198, 168, 155, 68, 189, 113, 61, 138, 62, 124, 68, 170, 189, 255, 127, 0, 0, 217, 46, 255, 191, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 0, 0, 37, 209, 255, 127, 255, 127, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 218, 52, 42, 5, 158, 82, 106, 169, 156, 104, 66, 189, 27, 195, 140, 62, 156, 92, 180, 189, 218, 52, 42, 5, 55, 58, 225, 176, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 218, 52, 42, 5, 158, 82, 106, 169, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 218, 52, 42, 5, 55, 58, 225, 176, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 111, 184, 199, 35, 245, 70, 251, 172, 48, 223, 50, 189, 11, 237, 138, 62, 52, 99, 175, 189, 111, 184, 199, 35, 245, 70, 251, 172, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 189, 245, 224, 108, 14, 134, 79, 5, 160, 86, 227, 37, 189, 205, 204, 140, 62, 184, 34, 179, 189, 248, 217, 10, 57, 55, 92, 55, 156, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 0, 0, 37, 209, 255, 127, 255, 127, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 245, 224, 108, 14, 174, 105, 45, 152, 47, 205, 58, 189, 49, 220, 141, 62, 199, 142, 182, 189, 245, 224, 108, 14, 134, 79, 5, 160, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 0, 0, 37, 209, 255, 127, 255, 127, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 255, 255, 112, 230, 102, 147, 30, 140, 98, 4, 56, 189, 41, 92, 143, 62, 140, 92, 183, 189, 255, 255, 112, 230, 193, 103, 178, 137, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 189, 255, 255, 112, 230, 102, 147, 30, 140, 185, 34, 33, 189, 41, 92, 143, 62, 237, 129, 180, 189, 254, 255, 217, 174, 255, 127, 255, 127, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 0, 0, 37, 209, 255, 127, 255, 127, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 245, 224, 146, 241, 12, 192, 60, 152, 47, 205, 58, 189, 33, 220, 144, 62, 199, 142, 182, 189, 245, 224, 146, 241, 92, 176, 39, 139, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 189, 245, 224, 146, 241, 92, 176, 39, 139, 86, 227, 37, 189, 133, 235, 145, 62, 184, 34, 179, 189, 248, 217, 244, 198, 111, 184, 227, 145, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 218, 52, 212, 250, 195, 225, 227, 162, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 218, 52, 212, 250, 213, 210, 175, 150, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 111, 184, 55, 220, 248, 217, 132, 156, 48, 223, 50, 189, 71, 203, 147, 62, 52, 99, 175, 189, 111, 184, 55, 220, 248, 217, 132, 156, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 0, 0, 37, 209, 255, 127, 255, 127, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 218, 52, 212, 250, 195, 225, 227, 162, 156, 104, 66, 189, 55, 245, 145, 62, 156, 92, 180, 189, 218, 52, 212, 250, 213, 210, 175, 150, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 0, 0, 37, 209, 255, 127, 255, 127, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 4, 53, 141, 228, 206, 243, 250, 214, 207, 204, 76, 189, 25, 92, 146, 62, 172, 92, 177, 189, 4, 53, 141, 228, 147, 244, 234, 160, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 4, 53, 141, 228, 147, 244, 234, 160, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 4, 53, 141, 228, 206, 243, 250, 214, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 255, 127, 255, 255, 255, 255, 146, 168, 168, 155, 68, 189, 225, 122, 148, 62, 124, 68, 170, 189, 255, 127, 255, 255, 255, 255, 146, 168, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 0, 45, 152, 206, 43, 208, 205, 226, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 0, 45, 152, 206, 128, 227, 33, 228, 2, 49, 87, 189, 55, 245, 145, 62, 188, 92, 174, 189, 0, 0, 37, 209, 255, 127, 255, 127, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 189, 0, 45, 152, 206, 43, 208, 205, 226, 32, 88, 86, 189, 71, 203, 147, 62, 196, 37, 165, 189, 55, 92, 142, 199, 248, 217, 121, 227, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 175, 28, 70, 183, 206, 170, 246, 237, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 175, 28, 70, 183, 192, 195, 57, 238, 111, 204, 94, 189, 33, 220, 144, 62, 145, 42, 172, 189, 0, 0, 37, 209, 255, 127, 255, 127, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 189, 175, 28, 70, 183, 206, 170, 246, 237, 250, 83, 99, 189, 133, 235, 145, 62, 64, 102, 161, 189, 245, 70, 6, 166, 111, 184, 27, 238) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_8vbk1") -[sub_resource type="CylinderShape" id=2] +[sub_resource type="CylinderShape3D" id="CylinderShape3D_uiu4s"] height = 0.3 radius = 0.01 -[sub_resource type="CylinderShape" id=3] +[sub_resource type="CylinderShape3D" id="CylinderShape3D_8lktl"] height = 0.1 radius = 0.01 -[node name="TeacupStand" type="StaticBody"] +[node name="TeacupStand" type="StaticBody3D"] -[node name="Stand" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) +[node name="Stand" type="MeshInstance3D" parent="."] +gi_mode = 0 +mesh = SubResource("ArrayMesh_sini6") +skeleton = NodePath("") +surface_material_override/0 = ExtResource("2") -[node name="CollisionShape1" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0 ) -shape = SubResource( 2 ) +[node name="CollisionShape1" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0) +shape = SubResource("CylinderShape3D_uiu4s") -[node name="CollisionShape2" type="CollisionShape" parent="."] -transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0.05, 0.28, 0 ) -shape = SubResource( 3 ) +[node name="CollisionShape2" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0.05, 0.28, 0) +shape = SubResource("CylinderShape3D_8lktl") -[node name="CollisionShape3" type="CollisionShape" parent="."] -transform = Transform( 2.18557e-08, 0.5, -0.866025, 1, -4.37114e-08, 0, -3.78552e-08, -0.866025, -0.5, -0.025, 0.28, 0.043 ) -shape = SubResource( 3 ) +[node name="CollisionShape3" type="CollisionShape3D" parent="."] +transform = Transform3D(2.18557e-08, 0.5, -0.866025, 1, -4.37114e-08, 0, -3.78552e-08, -0.866025, -0.5, -0.025, 0.28, 0.043) +shape = SubResource("CylinderShape3D_8lktl") -[node name="CollisionShape4" type="CollisionShape" parent="."] -transform = Transform( 2.18557e-08, 0.5, 0.866026, 1, -4.37114e-08, 0, 3.78552e-08, 0.866026, -0.5, -0.025, 0.28, -0.043 ) -shape = SubResource( 3 ) +[node name="CollisionShape4" type="CollisionShape3D" parent="."] +transform = Transform3D(2.18557e-08, 0.5, 0.866026, 1, -4.37114e-08, 0, 3.78552e-08, 0.866026, -0.5, -0.025, 0.28, -0.043) +shape = SubResource("CylinderShape3D_8lktl") -[node name="SnapZone1" parent="." groups=["TeacupStand"] instance=ExtResource( 1 )] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.0796152, 0.28, 0 ) +[node name="SnapZone1" parent="." groups=["TeacupStand"] instance=ExtResource("1")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.0796152, 0.28, 0) collision_layer = 4 collision_mask = 65540 grab_distance = 0.1 snap_require = "Teacup" -[node name="SnapZone2" parent="." groups=["TeacupStand"] instance=ExtResource( 1 )] -transform = Transform( 0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, -0.04, 0.28, 0.069 ) +[node name="SnapZone2" parent="." groups=["TeacupStand"] instance=ExtResource("1")] +transform = Transform3D(0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, -0.04, 0.28, 0.069) collision_layer = 4 collision_mask = 65540 grab_distance = 0.1 snap_require = "Teacup" -[node name="SnapZone3" parent="." groups=["TeacupStand"] instance=ExtResource( 1 )] -transform = Transform( -0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, -0.04, 0.28, -0.069 ) +[node name="SnapZone3" parent="." groups=["TeacupStand"] instance=ExtResource("1")] +transform = Transform3D(-0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, -0.04, 0.28, -0.069) collision_layer = 4 collision_mask = 65540 grab_distance = 0.1 diff --git a/scenes/pickable_demo/pickable_demo.png.import b/scenes/pickable_demo/pickable_demo.png.import index 48cbd7ef..b695f2bb 100644 --- a/scenes/pickable_demo/pickable_demo.png.import +++ b/scenes/pickable_demo/pickable_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.s3tc.stex" -path.etc="res://.import/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.etc.stex" +type="CompressedTexture2D" +uid="uid://ny4n43p3e3du" +path.s3tc="res://.godot/imported/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.s3tc.ctex" +path.etc2="res://.godot/imported/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/pickable_demo/pickable_demo.png" -dest_files=[ "res://.import/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.s3tc.stex", "res://.import/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.etc.stex" ] +dest_files=["res://.godot/imported/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.s3tc.ctex", "res://.godot/imported/pickable_demo.png-bfbfde10982f312eeab6ff56e66de475.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/pickable_demo/pickable_demo.tscn b/scenes/pickable_demo/pickable_demo.tscn index b395eaa6..3a1d6cad 100644 --- a/scenes/pickable_demo/pickable_demo.tscn +++ b/scenes/pickable_demo/pickable_demo.tscn @@ -1,175 +1,173 @@ -[gd_scene load_steps=26 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" type="PackedScene" id=4] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=5] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=10] -[ext_resource path="res://scenes/pickable_demo/objects/snap_toy_red.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/pickable_demo/objects/snap_toy_yellow.tscn" type="PackedScene" id=12] -[ext_resource path="res://scenes/pickable_demo/objects/grab_ball.tscn" type="PackedScene" id=13] -[ext_resource path="res://scenes/pickable_demo/objects/grab_cube.tscn" type="PackedScene" id=14] -[ext_resource path="res://assets/meshes/table/table.tscn" type="PackedScene" id=15] -[ext_resource path="res://scenes/pickable_demo/objects/snap_tray.tscn" type="PackedScene" id=16] -[ext_resource path="res://scenes/pickable_demo/objects/hammer.tscn" type="PackedScene" id=17] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pointer.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/pickable_demo/objects/teacup.tscn" type="PackedScene" id=19] -[ext_resource path="res://scenes/pickable_demo/objects/saucer.tscn" type="PackedScene" id=20] -[ext_resource path="res://scenes/pickable_demo/objects/teacup_stand.tscn" type="PackedScene" id=21] -[ext_resource path="res://scenes/pickable_demo/objects/instructions.tscn" type="PackedScene" id=22] -[ext_resource path="res://scenes/pickable_demo/objects/belt_snap_zone.tscn" type="PackedScene" id=23] -[ext_resource path="res://scenes/pickable_demo/objects/knife.tscn" type="PackedScene" id=24] -[ext_resource path="res://addons/godot-xr-tools/objects/return_to_snap_zone.gd" type="Script" id=25] - -[node name="PickableDemo" instance=ExtResource( 1 )] - -[node name="LeftPhysicsHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 3 )] - -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 7 )] -enabled = true -order = 10 +[gd_scene load_steps=27 format=3 uid="uid://cp1qvegshx1lf"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://bdwmserhqai5h" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" id="2_8wi6c"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_kjksy"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://btf05hjpw6k05" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" id="5_laayj"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="6"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="7_kskan"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://1mb16xioom74" path="res://scenes/pickable_demo/objects/belt_snap_zone.tscn" id="10_5odnk"] +[ext_resource type="PackedScene" uid="uid://cf024hg5alcif" path="res://scenes/pickable_demo/objects/snap_toy_red.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://cboxrvj4xdi6f" path="res://scenes/pickable_demo/objects/snap_toy_yellow.tscn" id="12"] +[ext_resource type="PackedScene" path="res://scenes/pickable_demo/objects/instructions.tscn" id="12_282ma"] +[ext_resource type="PackedScene" uid="uid://clta811tt773x" path="res://scenes/pickable_demo/objects/grab_ball.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://djkjuy7wct10q" path="res://scenes/pickable_demo/objects/grab_cube.tscn" id="14"] +[ext_resource type="PackedScene" uid="uid://gi3cc6cxi81j" path="res://scenes/pickable_demo/objects/saucer.tscn" id="14_ani61"] +[ext_resource type="PackedScene" uid="uid://cbcbffvk7xth4" path="res://assets/meshes/table/table.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://b3mykwawmnxpi" path="res://scenes/pickable_demo/objects/teacup_stand.tscn" id="15_bq355"] +[ext_resource type="PackedScene" uid="uid://c6rmke57xw5lg" path="res://scenes/pickable_demo/objects/snap_tray.tscn" id="16"] +[ext_resource type="PackedScene" uid="uid://chww0na0ryl1m" path="res://scenes/pickable_demo/objects/teacup.tscn" id="16_v5unt"] +[ext_resource type="PackedScene" uid="uid://de0guxhrn5ouk" path="res://scenes/pickable_demo/objects/hammer.tscn" id="17"] +[ext_resource type="PackedScene" uid="uid://bxk2dud5pq1uf" path="res://scenes/pickable_demo/objects/knife.tscn" id="19_6grml"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/return_to_snap_zone.gd" id="19_iqmkd"] + +[node name="PickableDemo" instance=ExtResource("1")] +script = ExtResource("2_kjksy") + +[node name="LeftPhysicsHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_8wi6c")] + +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("7")] max_speed = 3.0 strafe = true -[node name="FunctionPickup" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 8 )] +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("8")] grab_distance = 0.1 -grab_collision_mask = 4 ranged_angle = 10.0 -[node name="RightPhysicsHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 4 )] +[node name="RightPhysicsHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5_laayj")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 7 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("7")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 10 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("10")] -[node name="FunctionPickup" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 8 )] +[node name="FunctionPickup" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("8")] grab_distance = 0.1 -grab_collision_mask = 4 ranged_angle = 10.0 -[node name="FunctionPointer" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 18 )] +[node name="FunctionPointer" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("7_kskan")] show_laser = 2 laser_length = 1 -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 9 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("9")] -[node name="BeltSnapZone01" parent="ARVROrigin/PlayerBody" index="0" instance=ExtResource( 23 )] -transform = Transform( 0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, -0.176713, 1, -0.176713 ) +[node name="BeltSnapZone01" parent="XROrigin3D/PlayerBody" index="0" instance=ExtResource("10_5odnk")] +transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, -0.177, 1, -0.177) -[node name="BeltSnapZone02" parent="ARVROrigin/PlayerBody" index="1" instance=ExtResource( 23 )] -transform = Transform( 0.92388, 0, 0.382683, 0, 1, 0, -0.382683, 0, 0.92388, -0.0956363, 1, -0.230887 ) +[node name="BeltSnapZone02" parent="XROrigin3D/PlayerBody" index="1" instance=ExtResource("10_5odnk")] +transform = Transform3D(0.92388, 0, 0.382683, 0, 1, 0, -0.382683, 0, 0.92388, -0.096, 1, -0.231) -[node name="BeltSnapZone03" parent="ARVROrigin/PlayerBody" index="2" instance=ExtResource( 23 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.45058e-09, 1, -0.24991 ) +[node name="BeltSnapZone03" parent="XROrigin3D/PlayerBody" index="2" instance=ExtResource("10_5odnk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -0.25) -[node name="BeltSnapZone04" parent="ARVROrigin/PlayerBody" index="3" instance=ExtResource( 23 )] -transform = Transform( 0.92388, 0, -0.382683, 0, 1, 0, 0.382683, 0, 0.92388, 0.0956363, 1, -0.230887 ) +[node name="BeltSnapZone04" parent="XROrigin3D/PlayerBody" index="3" instance=ExtResource("10_5odnk")] +transform = Transform3D(0.92388, 0, -0.382683, 0, 1, 0, 0.382683, 0, 0.92388, 0.096, 1, -0.231) -[node name="BeltSnapZone05" parent="ARVROrigin/PlayerBody" index="4" instance=ExtResource( 23 )] -transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0.176713, 1, -0.176713 ) +[node name="BeltSnapZone05" parent="XROrigin3D/PlayerBody" index="4" instance=ExtResource("10_5odnk")] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0.177, 1, -0.177) -[node name="BasicMap" parent="." index="1" instance=ExtResource( 2 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("2")] -[node name="Teleport" parent="." index="2" instance=ExtResource( 5 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4 ) +[node name="Teleport" parent="." index="2" instance=ExtResource("5")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4) scene_base = NodePath("..") -title = ExtResource( 6 ) +title = ExtResource("6") -[node name="Instructions" parent="." index="3" instance=ExtResource( 22 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -5 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("12_282ma")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -5) -[node name="Table2" parent="." index="4" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -3 ) +[node name="Table2" parent="." index="4" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -3) -[node name="Table1" parent="." index="5" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -3 ) +[node name="Table1" parent="." index="5" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -3) -[node name="Saucer" parent="Table1" index="10" instance=ExtResource( 20 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.583645, 0.828995, 0.266177 ) +[node name="Saucer" parent="Table1" index="10" instance=ExtResource("14_ani61")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.584, 0.829, 0.266) -[node name="TeacupStand" parent="Table1" index="11" instance=ExtResource( 21 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0.8, 0 ) +[node name="TeacupStand" parent="Table1" index="11" instance=ExtResource("15_bq355")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0.8, 0) [node name="SnapZone1" parent="Table1/TeacupStand" index="5"] initial_object = NodePath("../Teacup") -[node name="Teacup" parent="Table1/TeacupStand" index="8" instance=ExtResource( 19 )] -transform = Transform( -4.37114e-08, 0, -1, 1, -4.37114e-08, -4.37114e-08, -4.37114e-08, -1, 1.91069e-15, 0.08, 0.204674, 0.0395086 ) +[node name="Teacup" parent="Table1/TeacupStand" index="8" instance=ExtResource("16_v5unt")] +transform = Transform3D(4.81713e-09, 4.34452e-08, 1, 0.993909, -0.110203, 0, 0.110203, 0.993909, -4.37114e-08, 0.0796152, 0.205038, -0.0390518) +collision_layer = 65536 +collision_mask = 0 +freeze = true [node name="XRToolsReturnToSnapZone" type="Node" parent="Table1/TeacupStand/Teacup" index="6"] -script = ExtResource( 25 ) +script = ExtResource("19_iqmkd") snap_zone_path = NodePath("../../SnapZone1") -[node name="Teacup" parent="Table1" index="12" instance=ExtResource( 19 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.234713, 0.824552, 0.266177 ) +[node name="Teacup" parent="Table1" index="12" instance=ExtResource("16_v5unt")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.235, 0.825, 0.266) -[node name="Knife1" parent="Table1" index="13" instance=ExtResource( 24 )] -transform = Transform( 1.91069e-15, -1, -4.37114e-08, -4.37114e-08, -4.37114e-08, 1, -1, 0, -4.37114e-08, -0.693906, 0.834034, 2.38419e-07 ) +[node name="Knife1" parent="Table1" index="13" instance=ExtResource("19_6grml")] +transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.694, 0.834, 0) -[node name="Knife2" parent="Table1" index="14" instance=ExtResource( 24 )] -transform = Transform( 1.91069e-15, -1, -4.37114e-08, -4.37114e-08, -4.37114e-08, 1, -1, 0, -4.37114e-08, -0.593906, 0.834034, 2.38419e-07 ) +[node name="Knife2" parent="Table1" index="14" instance=ExtResource("19_6grml")] +transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.594, 0.834, 0) -[node name="Knife3" parent="Table1" index="15" instance=ExtResource( 24 )] -transform = Transform( 1.91069e-15, -1, -4.37114e-08, -4.37114e-08, -4.37114e-08, 1, -1, 0, -4.37114e-08, -0.493906, 0.834034, 2.38419e-07 ) +[node name="Knife3" parent="Table1" index="15" instance=ExtResource("19_6grml")] +transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.494, 0.834, 0) -[node name="RemoteGrabBalls" type="Spatial" parent="." index="6"] +[node name="RemoteGrabBalls" type="Node3D" parent="." index="6"] -[node name="Ball1" parent="RemoteGrabBalls" index="0" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6, 0.2, -2.6 ) +[node name="Ball1" parent="RemoteGrabBalls" index="0" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6, 0.2, -2.6) -[node name="Ball2" parent="RemoteGrabBalls" index="1" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6, 0.2, -3.2 ) +[node name="Ball2" parent="RemoteGrabBalls" index="1" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6, 0.2, -3.2) -[node name="Ball3" parent="RemoteGrabBalls" index="2" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.2, -2.9 ) +[node name="Ball3" parent="RemoteGrabBalls" index="2" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.2, -2.9) -[node name="Hammers" type="Spatial" parent="." index="7"] +[node name="Hammers" type="Node3D" parent="." index="7"] -[node name="Hammer" parent="Hammers" index="0" instance=ExtResource( 17 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0.15, -3.6 ) +[node name="Hammer" parent="Hammers" index="0" instance=ExtResource("17")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0.15, -3.6) -[node name="Hammer4" parent="Hammers" index="1" instance=ExtResource( 17 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0.15, -3.2 ) +[node name="Hammer4" parent="Hammers" index="1" instance=ExtResource("17")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0.15, -3.2) -[node name="Hammer2" parent="Hammers" index="2" instance=ExtResource( 17 )] -transform = Transform( 0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, -2.6, 0.15, -3.5 ) +[node name="Hammer2" parent="Hammers" index="2" instance=ExtResource("17")] +transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, -2.6, 0.15, -3.5) -[node name="Hammer3" parent="Hammers" index="3" instance=ExtResource( 17 )] -transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, -2.2, 0.15, -3.3 ) +[node name="Hammer3" parent="Hammers" index="3" instance=ExtResource("17")] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, -2.2, 0.15, -3.3) -[node name="GrabCubes" type="Spatial" parent="." index="8"] +[node name="GrabCubes" type="Node3D" parent="." index="8"] -[node name="Cube1" parent="GrabCubes" index="0" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1, 0.875, -2.8 ) +[node name="Cube1" parent="GrabCubes" index="0" instance=ExtResource("14")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1, 0.875, -2.8) -[node name="Cube2" parent="GrabCubes" index="1" instance=ExtResource( 14 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 0.875, -2.8 ) +[node name="Cube2" parent="GrabCubes" index="1" instance=ExtResource("14")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 0.875, -2.8) -[node name="Cube3" parent="GrabCubes" index="2" instance=ExtResource( 14 )] -transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, -1, 0.975, -2.8 ) +[node name="Cube3" parent="GrabCubes" index="2" instance=ExtResource("14")] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, -1, 0.975, -2.8) -[node name="SnapToys" type="Spatial" parent="." index="9"] +[node name="SnapToys" type="Node3D" parent="." index="9"] -[node name="SnapTray1" parent="SnapToys" index="0" instance=ExtResource( 16 )] -transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 1.5, 1, -2.9 ) -tray_active = true +[node name="SnapTray1" parent="SnapToys" index="0" instance=ExtResource("16")] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 1.5, 1, -2.9) -[node name="SnapTray2" parent="SnapToys" index="1" instance=ExtResource( 16 )] -transform = Transform( 0.996195, 0, -0.0871558, 0, 1, 0, 0.0871558, 0, 0.996195, 1.1, 1, -3 ) +[node name="SnapTray2" parent="SnapToys" index="1" instance=ExtResource("16")] +transform = Transform3D(0.996195, 0, -0.0871558, 0, 1, 0, 0.0871558, 0, 0.996195, 1.1, 1, -3) +tray_active = false -[node name="SnapToyRed" parent="SnapToys" index="2" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0.9, -3 ) +[node name="SnapToyRed" parent="SnapToys" index="2" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0.9, -3) -[node name="SnapToyYellow" parent="SnapToys" index="3" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.8, 0.9, -3 ) +[node name="SnapToyYellow" parent="SnapToys" index="3" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.8, 0.9, -3) [editable path="Table1/TeacupStand"] diff --git a/scenes/pickable_demo/poses/pose_hammer_left.tres b/scenes/pickable_demo/poses/pose_hammer_left.tres index f8c8a0ca..9ae7dc8d 100644 --- a/scenes/pickable_demo/poses/pose_hammer_left.tres +++ b/scenes/pickable_demo/poses/pose_hammer_left.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://dd4sqdg8upblx"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/left/Grip 2.anim" type="Animation" id=3] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1"] +[ext_resource type="Animation" uid="uid://di384xtde8ydf" path="res://addons/godot-xr-tools/hands/animations/left/Grip 2.res" id="1_mrmvg"] +[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="2_a8ewd"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 2 ) -closed_pose = ExtResource( 3 ) +script = ExtResource("1") +open_pose = ExtResource("2_a8ewd") +closed_pose = ExtResource("1_mrmvg") diff --git a/scenes/pickable_demo/poses/pose_hammer_right.tres b/scenes/pickable_demo/poses/pose_hammer_right.tres index 2d521d3d..c7cb769d 100644 --- a/scenes/pickable_demo/poses/pose_hammer_right.tres +++ b/scenes/pickable_demo/poses/pose_hammer_right.tres @@ -1,10 +1,10 @@ -[gd_resource type="Resource" load_steps=4 format=2] +[gd_resource type="Resource" load_steps=4 format=3 uid="uid://c7lps5l5dj652"] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" type="Script" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 2.anim" type="Animation" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.anim" type="Animation" id=3] +[ext_resource type="Animation" uid="uid://r8hleealhrqt" path="res://addons/godot-xr-tools/hands/animations/right/Grip 2.res" id="1_2ro2s"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="1_kfmxf"] +[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="2_s40ub"] [resource] -script = ExtResource( 1 ) -open_pose = ExtResource( 3 ) -closed_pose = ExtResource( 2 ) +script = ExtResource("1_kfmxf") +open_pose = ExtResource("2_s40ub") +closed_pose = ExtResource("1_2ro2s") diff --git a/scenes/pointer_demo/objects/color_change_cube.gd b/scenes/pointer_demo/objects/color_change_cube.gd index f524443b..67ea046c 100644 --- a/scenes/pointer_demo/objects/color_change_cube.gd +++ b/scenes/pointer_demo/objects/color_change_cube.gd @@ -1,22 +1,22 @@ -extends RigidBody +extends RigidBody3D signal pointer_pressed(at) -var _material := SpatialMaterial.new() +var _material := StandardMaterial3D.new() # Called when the node enters the scene tree for the first time. func _ready(): # Connect pointer_pressed signals - connect("pointer_pressed", self, "_on_pointer_pressed") + connect("pointer_pressed",Callable(self,"_on_pointer_pressed")) # Generate a random material color _set_random_color() # Change the mesh to use our generated material - $MeshInstance.material_override = _material + $MeshInstance3D.material_override = _material # Called when a user clicks on the cube using the pointer diff --git a/scenes/pointer_demo/objects/color_change_cube.tscn b/scenes/pointer_demo/objects/color_change_cube.tscn index 2f591691..21d1d94b 100644 --- a/scenes/pointer_demo/objects/color_change_cube.tscn +++ b/scenes/pointer_demo/objects/color_change_cube.tscn @@ -1,20 +1,21 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://bk34216s7eynw"] -[ext_resource path="res://scenes/pointer_demo/objects/color_change_cube.gd" type="Script" id=1] +[ext_resource type="Script" path="res://scenes/pointer_demo/objects/color_change_cube.gd" id="1"] -[sub_resource type="CubeMesh" id=1] -size = Vector3( 0.5, 0.5, 0.5 ) +[sub_resource type="BoxMesh" id="1"] +size = Vector3(0.5, 0.5, 0.5) -[sub_resource type="BoxShape" id=2] -extents = Vector3( 0.25, 0.25, 0.25 ) +[sub_resource type="BoxShape3D" id="2"] +size = Vector3(0.5, 0.5, 0.5) -[node name="ColorChangeCube" type="RigidBody"] +[node name="ColorChangeCube" type="RigidBody3D"] collision_layer = 1048577 -mode = 1 -script = ExtResource( 1 ) +collision_mask = 0 +freeze = true +script = ExtResource("1") -[node name="MeshInstance" type="MeshInstance" parent="."] -mesh = SubResource( 1 ) +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("1") -[node name="CollisionShape" type="CollisionShape" parent="."] -shape = SubResource( 2 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("2") diff --git a/scenes/pointer_demo/objects/display.tscn b/scenes/pointer_demo/objects/display.tscn index 5d160278..99bf5ec5 100644 --- a/scenes/pointer_demo/objects/display.tscn +++ b/scenes/pointer_demo/objects/display.tscn @@ -1,42 +1,42 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=7 format=3 uid="uid://nnse6wsxsjeo"] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=1] -[ext_resource path="res://scenes/pointer_demo/objects/keyboard_test_screen.tscn" type="PackedScene" id=2] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://cge2ou48mud7b" path="res://scenes/pointer_demo/objects/keyboard_test_screen.tscn" id="2"] -[sub_resource type="QuadMesh" id=1] +[sub_resource type="QuadMesh" id="1"] resource_local_to_scene = true -size = Vector2( 2.8, 1.3 ) +size = Vector2(2.8, 1.9) -[sub_resource type="ViewportTexture" id=2] +[sub_resource type="ViewportTexture" id="ViewportTexture_i4k7p"] -[sub_resource type="SpatialMaterial" id=3] -resource_local_to_scene = true -flags_transparent = true -flags_unshaded = true -params_cull_mode = 2 -albedo_texture = SubResource( 2 ) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cl1sj"] +transparency = 1 +cull_mode = 2 +shading_mode = 0 +albedo_texture = SubResource("ViewportTexture_i4k7p") +texture_filter = 1 -[sub_resource type="BoxShape" id=4] +[sub_resource type="BoxShape3D" id="4"] resource_local_to_scene = true -extents = Vector3( 1.4, 0.65, 0.01 ) +size = Vector3(2.8, 1.9, 0.02) -[node name="Display" instance=ExtResource( 1 )] -screen_size = Vector2( 2.8, 1.3 ) -viewport_size = Vector2( 280, 130 ) -scene = ExtResource( 2 ) +[node name="Display" instance=ExtResource("1")] +screen_size = Vector2(2.8, 1.9) +viewport_size = Vector2(280, 190) +scene = ExtResource("2") update_mode = 2 throttle_fps = 15.0 [node name="Viewport" parent="." index="0"] -size = Vector2( 280, 130 ) +size = Vector2i(280, 190) [node name="Screen" parent="." index="1"] -mesh = SubResource( 1 ) -material/0 = SubResource( 3 ) +mesh = SubResource("1") +surface_material_override/0 = SubResource("StandardMaterial3D_cl1sj") -[node name="StaticBody" parent="." index="2"] -screen_size = Vector2( 2.8, 1.3 ) -viewport_size = Vector2( 280, 130 ) +[node name="StaticBody3D" parent="." index="2"] +screen_size = Vector2(2.8, 1.9) +viewport_size = Vector2(280, 190) -[node name="CollisionShape" parent="StaticBody" index="0"] -shape = SubResource( 4 ) +[node name="CollisionShape3D" parent="StaticBody3D" index="0"] +shape = SubResource("4") diff --git a/scenes/pointer_demo/objects/keyboard_test_screen.tscn b/scenes/pointer_demo/objects/keyboard_test_screen.tscn index ec4b1848..b83e3c92 100644 --- a/scenes/pointer_demo/objects/keyboard_test_screen.tscn +++ b/scenes/pointer_demo/objects/keyboard_test_screen.tscn @@ -1,92 +1,121 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://cge2ou48mud7b"] -[ext_resource path="res://scenes/pointer_demo/objects/keyboard_test_screen.gd" type="Script" id=1] +[ext_resource type="Script" path="res://scenes/pointer_demo/objects/keyboard_test_screen.gd" id="1"] [node name="KeyboardTestScreen" type="Node2D"] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Container" type="VBoxContainer" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 257.0 -margin_bottom = 50.0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 260.0 +offset_bottom = 157.0 [node name="Header" type="HBoxContainer" parent="Container"] -margin_right = 250.0 -margin_bottom = 48.0 +layout_mode = 2 +offset_right = 250.0 +offset_bottom = 54.0 [node name="Label" type="Label" parent="Container/Header"] -margin_right = 250.0 -margin_bottom = 48.0 -rect_min_size = Vector2( 250, 0 ) +layout_mode = 2 +offset_right = 250.0 +offset_bottom = 54.0 +size_flags_horizontal = 3 +size_flags_vertical = 1 +theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 13 text = "Press trigger on controller to switch active pointer to that controller, or interact with the UI." -align = 1 -autowrap = true +horizontal_alignment = 1 +autowrap_mode = 2 [node name="Line1" type="HBoxContainer" parent="Container"] -margin_top = 52.0 -margin_right = 250.0 -margin_bottom = 73.0 +layout_mode = 2 +offset_top = 58.0 +offset_right = 250.0 +offset_bottom = 83.0 [node name="Label" type="Label" parent="Container/Line1"] -margin_top = 3.0 -margin_right = 43.0 -margin_bottom = 17.0 +layout_mode = 2 +offset_top = 2.0 +offset_right = 38.0 +offset_bottom = 22.0 +theme_override_font_sizes/font_size = 12 text = "Line 1:" -align = 2 +vertical_alignment = 1 [node name="TextEdit" type="TextEdit" parent="Container/Line1"] -margin_left = 47.0 -margin_right = 247.0 -margin_bottom = 21.0 -rect_min_size = Vector2( 200, 21 ) +custom_minimum_size = Vector2i(0, 25) +layout_mode = 2 +offset_left = 42.0 +offset_right = 250.0 +offset_bottom = 25.0 +size_flags_horizontal = 3 +theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 12 [node name="Line2" type="HBoxContainer" parent="Container"] -margin_top = 77.0 -margin_right = 250.0 -margin_bottom = 98.0 +layout_mode = 2 +offset_top = 87.0 +offset_right = 250.0 +offset_bottom = 112.0 [node name="Label" type="Label" parent="Container/Line2"] -margin_top = 3.0 -margin_right = 43.0 -margin_bottom = 17.0 +layout_mode = 2 +offset_top = 2.0 +offset_right = 38.0 +offset_bottom = 22.0 +theme_override_font_sizes/font_size = 12 text = "Line 2:" -align = 2 +vertical_alignment = 1 [node name="TextEdit" type="TextEdit" parent="Container/Line2"] -margin_left = 47.0 -margin_right = 247.0 -margin_bottom = 21.0 -rect_min_size = Vector2( 200, 21 ) +custom_minimum_size = Vector2i(0, 25) +layout_mode = 2 +offset_left = 42.0 +offset_right = 250.0 +offset_bottom = 25.0 +size_flags_horizontal = 3 +theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 12 [node name="Line3" type="HBoxContainer" parent="Container"] -margin_top = 102.0 -margin_right = 250.0 -margin_bottom = 123.0 +layout_mode = 2 +offset_top = 116.0 +offset_right = 250.0 +offset_bottom = 141.0 [node name="Label" type="Label" parent="Container/Line3"] -margin_top = 3.0 -margin_right = 43.0 -margin_bottom = 17.0 +layout_mode = 2 +offset_top = 2.0 +offset_right = 38.0 +offset_bottom = 22.0 +theme_override_font_sizes/font_size = 12 text = "Line 3:" -align = 2 +vertical_alignment = 1 [node name="TextEdit" type="TextEdit" parent="Container/Line3"] -margin_left = 47.0 -margin_right = 247.0 -margin_bottom = 21.0 -rect_min_size = Vector2( 200, 21 ) +custom_minimum_size = Vector2i(0, 25) +layout_mode = 2 +offset_left = 42.0 +offset_right = 250.0 +offset_bottom = 25.0 +size_flags_horizontal = 3 +theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 12 [node name="Footer" type="HBoxContainer" parent="Container"] -margin_top = 127.0 -margin_right = 250.0 -margin_bottom = 147.0 +layout_mode = 2 +offset_top = 145.0 +offset_right = 250.0 +offset_bottom = 170.0 alignment = 2 [node name="ClearButton" type="Button" parent="Container/Footer"] -margin_left = 206.0 -margin_right = 250.0 -margin_bottom = 20.0 +layout_mode = 2 +offset_left = 211.0 +offset_right = 250.0 +offset_bottom = 25.0 +theme_override_font_sizes/font_size = 12 text = "Clear" [connection signal="pressed" from="Container/Footer/ClearButton" to="." method="_on_ClearButton_pressed"] diff --git a/scenes/pointer_demo/pointer_demo.png.import b/scenes/pointer_demo/pointer_demo.png.import index f23470ee..5a41328e 100644 --- a/scenes/pointer_demo/pointer_demo.png.import +++ b/scenes/pointer_demo/pointer_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.s3tc.stex" -path.etc="res://.import/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.etc.stex" +type="CompressedTexture2D" +uid="uid://bh5j2q7vpmr0b" +path.s3tc="res://.godot/imported/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.s3tc.ctex" +path.etc2="res://.godot/imported/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/pointer_demo/pointer_demo.png" -dest_files=[ "res://.import/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.s3tc.stex", "res://.import/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.etc.stex" ] +dest_files=["res://.godot/imported/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.s3tc.ctex", "res://.godot/imported/pointer_demo.png-7c94b1c1841ccccd10b6c24cae4ad418.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/pointer_demo/pointer_demo.tscn b/scenes/pointer_demo/pointer_demo.tscn index 95d01396..186dfb47 100644 --- a/scenes/pointer_demo/pointer_demo.tscn +++ b/scenes/pointer_demo/pointer_demo.tscn @@ -1,70 +1,64 @@ -[gd_scene load_steps=14 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=3] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pointer.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/objects/virtual_keyboard.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/pointer_demo/objects/display.tscn" type="PackedScene" id=12] -[ext_resource path="res://scenes/pointer_demo/objects/color_change_cube.tscn" type="PackedScene" id=15] - -[node name="PointerDemo" instance=ExtResource( 1 )] -environment = null - -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 10 )] - -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 7 )] -enabled = true -order = 10 +[gd_scene load_steps=14 format=3 uid="uid://deq6satll2p5x"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="3_j5kt2"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="4"] +[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_rnrhb"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://dgdb1texynduw" path="res://addons/godot-xr-tools/objects/virtual_keyboard.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://nnse6wsxsjeo" path="res://scenes/pointer_demo/objects/display.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://bk34216s7eynw" path="res://scenes/pointer_demo/objects/color_change_cube.tscn" id="15"] + +[node name="PointerDemo" instance=ExtResource("1")] + +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3_j5kt2")] + +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("7")] max_speed = 3.0 strafe = true -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 6 )] +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_rnrhb")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 7 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("7")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 9 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("9")] -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 8 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("8")] -[node name="FunctionPointer" parent="ARVROrigin" index="4" instance=ExtResource( 5 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, -0.5 ) +[node name="FunctionPointer" parent="XROrigin3D" index="4" instance=ExtResource("5")] laser_length = 1 show_target = true -[node name="BasicMap" parent="." index="1" instance=ExtResource( 3 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("3")] -[node name="Teleport" parent="." index="2" instance=ExtResource( 2 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4 ) +[node name="Teleport" parent="." index="2" instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4) scene_base = NodePath("..") -title = ExtResource( 4 ) +title = ExtResource("4") -[node name="Display" parent="." index="3" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.3, -3 ) -screen_size = Vector2( 2.8, 1.65 ) -viewport_size = Vector2( 280, 165 ) +[node name="Display" parent="." index="3" instance=ExtResource("12")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -3) -[node name="VirtualKeyboard" parent="." index="4" instance=ExtResource( 11 )] -transform = Transform( 1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 1, -2 ) +[node name="VirtualKeyboard" parent="." index="4" instance=ExtResource("11")] +transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 1, -2) -[node name="ColorChangeCube1" parent="." index="5" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2.5, -3 ) +[node name="ColorChangeCube1" parent="." index="5" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2.5, -3) -[node name="ColorChangeCube2" parent="." index="6" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.7, -3 ) +[node name="ColorChangeCube2" parent="." index="6" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.7, -3) -[node name="ColorChangeCube3" parent="." index="7" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2.5, -3 ) +[node name="ColorChangeCube3" parent="." index="7" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2.5, -3) -[node name="ColorChangeCube4" parent="." index="8" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1.7, -3 ) +[node name="ColorChangeCube4" parent="." index="8" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1.7, -3) + +[connection signal="button_pressed" from="XROrigin3D/LeftHand" to="." method="_on_LeftHand_button_pressed"] +[connection signal="button_pressed" from="XROrigin3D/RightHand" to="." method="_on_RightHand_button_pressed"] diff --git a/scenes/poke_demo/objects/canvas.gd b/scenes/poke_demo/objects/canvas.gd index 3da0dfe3..aa84847b 100644 --- a/scenes/poke_demo/objects/canvas.gd +++ b/scenes/poke_demo/objects/canvas.gd @@ -9,8 +9,8 @@ func _clear(): $ViewportContainer/Viewport/Brushes.get_child(i).visible = false # Make sure our viewport only updates once - $ViewportContainer/Viewport.render_target_clear_mode = Viewport.CLEAR_MODE_ONLY_NEXT_FRAME - $ViewportContainer/Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $ViewportContainer/Viewport.render_target_clear_mode = SubViewport.CLEAR_MODE_ONCE + $ViewportContainer/Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE # Called when the node enters the scene tree for the first time. func _ready(): @@ -25,13 +25,13 @@ func _on_ViewportContainer_gui_input(event): if event.pressed: _update_active_brush() $ViewportContainer/Viewport/Brushes.position = event.position - $ViewportContainer/Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $ViewportContainer/Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE elif event is InputEventMouseMotion: # We're currently only getting these from our poke if we're touching, # but once viewport supports pressure we should implement this... _update_active_brush() $ViewportContainer/Viewport/Brushes.position = event.position - $ViewportContainer/Viewport.render_target_update_mode = Viewport.UPDATE_ONCE + $ViewportContainer/Viewport.render_target_update_mode = SubViewport.UPDATE_ONCE func _set_draw_color(p_color : Color) -> void: diff --git a/scenes/poke_demo/objects/canvas.tscn b/scenes/poke_demo/objects/canvas.tscn index fbd3eda9..715b1bc6 100644 --- a/scenes/poke_demo/objects/canvas.tscn +++ b/scenes/poke_demo/objects/canvas.tscn @@ -1,67 +1,63 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://bv46odvo22fuv"] -[ext_resource path="res://scenes/poke_demo/objects/canvas.gd" type="Script" id=1] +[ext_resource type="Script" path="res://scenes/poke_demo/objects/canvas.gd" id="1"] -[sub_resource type="StyleBoxFlat" id=1] -bg_color = Color( 1, 1, 1, 1 ) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_156sa"] +bg_color = Color(1, 1, 1, 1) -[sub_resource type="StyleBoxFlat" id=2] -bg_color = Color( 0, 0, 0, 1 ) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sk70f"] +bg_color = Color(0, 0, 0, 1) [node name="Canvas" type="Node2D"] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Background" type="ColorRect" parent="."] -margin_right = 1000.0 -margin_bottom = 500.0 -color = Color( 0.203922, 0.337255, 0.137255, 0.686275 ) +offset_right = 1000.0 +offset_bottom = 500.0 +color = Color(0.203922, 0.337255, 0.137255, 0.686275) -[node name="ViewportContainer" type="ViewportContainer" parent="."] -margin_right = 40.0 -margin_bottom = 40.0 +[node name="ViewportContainer" type="SubViewportContainer" parent="."] -[node name="Viewport" type="Viewport" parent="ViewportContainer"] -size = Vector2( 940, 495 ) +[node name="Viewport" type="SubViewport" parent="ViewportContainer"] transparent_bg = true handle_input_locally = false +size = Vector2i(940, 495) render_target_clear_mode = 2 -render_target_update_mode = 3 +render_target_update_mode = 4 [node name="Brushes" type="Node2D" parent="ViewportContainer/Viewport"] -position = Vector2( 50, 50 ) +position = Vector2(50, 50) [node name="Brush1" type="ColorRect" parent="ViewportContainer/Viewport/Brushes"] visible = false -margin_left = -5.0 -margin_top = -5.0 -margin_right = 5.0 -margin_bottom = 5.0 +offset_left = -5.0 +offset_top = -5.0 +offset_right = 5.0 +offset_bottom = 5.0 [node name="Tools" type="VBoxContainer" parent="."] -margin_left = 950.0 -margin_top = 5.0 -margin_right = 995.0 -margin_bottom = 105.0 -rect_min_size = Vector2( 45, 0 ) -custom_constants/separation = 10 +offset_left = 950.0 +offset_top = 5.0 +offset_right = 999.0 +offset_bottom = 135.0 [node name="WhiteButton" type="Button" parent="Tools"] -margin_right = 45.0 -margin_bottom = 45.0 -rect_min_size = Vector2( 45, 45 ) -custom_styles/normal = SubResource( 1 ) +custom_minimum_size = Vector2(45, 45) +offset_right = 49.0 +offset_bottom = 45.0 +theme_override_styles/normal = SubResource("StyleBoxFlat_156sa") [node name="BlackButton" type="Button" parent="Tools"] -margin_top = 55.0 -margin_right = 45.0 -margin_bottom = 100.0 -rect_min_size = Vector2( 45, 45 ) -custom_styles/normal = SubResource( 2 ) +custom_minimum_size = Vector2(45, 45) +offset_top = 49.0 +offset_right = 49.0 +offset_bottom = 94.0 +theme_override_styles/normal = SubResource("StyleBoxFlat_sk70f") [node name="ClearButton" type="Button" parent="Tools"] -margin_top = 110.0 -margin_right = 45.0 -margin_bottom = 130.0 +offset_top = 98.0 +offset_right = 49.0 +offset_bottom = 129.0 text = "Clear" [connection signal="gui_input" from="ViewportContainer" to="." method="_on_ViewportContainer_gui_input"] diff --git a/scenes/poke_demo/objects/instructions_2d.tscn b/scenes/poke_demo/objects/instructions_2d.tscn index 4d5337a1..dbcf3112 100644 --- a/scenes/poke_demo/objects/instructions_2d.tscn +++ b/scenes/poke_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://32dx3mgqbxkj"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Poke Demo This scene demonstrates poking interactions. Poke nodes are attached to the index fingers of both hands and can be used to control user interfaces and to physically interact with objects. diff --git a/scenes/poke_demo/poke_demo.png.import b/scenes/poke_demo/poke_demo.png.import index 35e8bd9b..7cbbee65 100644 --- a/scenes/poke_demo/poke_demo.png.import +++ b/scenes/poke_demo/poke_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.s3tc.stex" -path.etc="res://.import/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.etc.stex" +type="CompressedTexture2D" +uid="uid://bbe7o7pdq38m2" +path.s3tc="res://.godot/imported/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.s3tc.ctex" +path.etc2="res://.godot/imported/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/poke_demo/poke_demo.png" -dest_files=[ "res://.import/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.s3tc.stex", "res://.import/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.etc.stex" ] +dest_files=["res://.godot/imported/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.s3tc.ctex", "res://.godot/imported/poke_demo.png-4c24cc2c312bc410943cc9c6d63635e9.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/poke_demo/poke_demo.tscn b/scenes/poke_demo/poke_demo.tscn index fd7f27cd..3ab44cf1 100644 --- a/scenes/poke_demo/poke_demo.tscn +++ b/scenes/poke_demo/poke_demo.tscn @@ -1,170 +1,212 @@ -[gd_scene load_steps=33 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=3] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=4] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=5] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=6] -[ext_resource path="res://addons/godot-xr-tools/player/poke/poke.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" type="PackedScene" id=8] -[ext_resource path="res://scenes/poke_demo/objects/canvas.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=11] -[ext_resource path="res://assets/meshes/table/table.tscn" type="PackedScene" id=12] -[ext_resource path="res://scenes/pickable_demo/objects/grab_cube.tscn" type="PackedScene" id=13] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=14] -[ext_resource path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" type="PackedScene" id=15] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" type="Resource" id=16] -[ext_resource path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" type="Resource" id=17] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/poke_demo/objects/instructions.tscn" type="PackedScene" id=19] - -[sub_resource type="AnimationNodeAnimation" id=14] -animation = "Grip" - -[sub_resource type="AnimationNodeAnimation" id=15] -animation = "Grip" - -[sub_resource type="AnimationNodeBlend2" id=16] +[gd_scene load_steps=34 format=3 uid="uid://b4fy6i3e7s08u"] + +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="2"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_sgf8o"] +[ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="4_whmmd"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="5"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="6"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://bv46odvo22fuv" path="res://scenes/poke_demo/objects/canvas.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="11"] +[ext_resource type="PackedScene" path="res://scenes/poke_demo/objects/instructions.tscn" id="11_570m5"] +[ext_resource type="PackedScene" uid="uid://cbcbffvk7xth4" path="res://assets/meshes/table/table.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://djkjuy7wct10q" path="res://scenes/pickable_demo/objects/grab_cube.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="14"] +[ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="14_qyy11"] +[ext_resource type="Resource" uid="uid://ciw0f7mg4ai0k" path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" id="15_08yhv"] +[ext_resource type="Resource" uid="uid://bhvrpfo4ecbub" path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" id="16_n1x7k"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_e1c5o"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a7i6i"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4s658"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L", "Armature_Left/Skeleton:Middle.Distal", "Armature_Left/Skeleton:Middle.Middle", "Armature_Left/Skeleton:Middle.Proximal", "Armature_Left/Skeleton:Pinky.Distal", "Armature_Left/Skeleton:Pinky.Middle", "Armature_Left/Skeleton:Pinky.Proximal", "Armature_Left/Skeleton:Ring.Distal", "Armature_Left/Skeleton:Ring.Middle", "Armature_Left/Skeleton:Ring.Proximal", "Armature_Left/Skeleton:Thumb.Distal", "Armature_Left/Skeleton:Thumb.Proximal" ] +filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id=17] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_771er"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=18] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_mw2sj"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L", "Armature_Left/Skeleton:Index.Distal", "Armature_Left/Skeleton:Index.Middle", "Armature_Left/Skeleton:Index.Proximal" ] - -[sub_resource type="AnimationNodeBlendTree" id=19] -graph_offset = Vector2( -242.851, 19.7107 ) -nodes/ClosedHand1/node = SubResource( 14 ) -nodes/ClosedHand1/position = Vector2( -400, 200 ) -nodes/ClosedHand2/node = SubResource( 15 ) -nodes/ClosedHand2/position = Vector2( -200, 300 ) -nodes/Grip/node = SubResource( 16 ) -nodes/Grip/position = Vector2( 200, 0 ) -nodes/OpenHand/node = SubResource( 17 ) -nodes/OpenHand/position = Vector2( -400, 0 ) -nodes/Trigger/node = SubResource( 18 ) -nodes/Trigger/position = Vector2( -160, 0 ) -nodes/output/position = Vector2( 400, 0 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[sub_resource type="AnimationNodeAnimation" id=20] -animation = "Grip" - -[sub_resource type="AnimationNodeAnimation" id=21] -animation = "Grip" - -[sub_resource type="AnimationNodeBlend2" id=22] +filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_1niag"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_e1c5o") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_a7i6i") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_4s658") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_771er") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_mw2sj") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vq8jm"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_hmmlh"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ob3nl"] filter_enabled = true -filters = [ "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R", "Armature_Left/Skeleton:Middle.Distal", "Armature_Left/Skeleton:Middle.Middle", "Armature_Left/Skeleton:Middle.Proximal", "Armature_Left/Skeleton:Pinky.Distal", "Armature_Left/Skeleton:Pinky.Middle", "Armature_Left/Skeleton:Pinky.Proximal", "Armature_Left/Skeleton:Ring.Distal", "Armature_Left/Skeleton:Ring.Middle", "Armature_Left/Skeleton:Ring.Proximal", "Armature_Left/Skeleton:Thumb.Distal", "Armature_Left/Skeleton:Thumb.Proximal" ] +filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id=23] -animation = "Grip 5" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c6dak"] +animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id=24] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_mplw3"] filter_enabled = true -filters = [ "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R", "Armature_Left/Skeleton:Index.Distal", "Armature_Left/Skeleton:Index.Middle", "Armature_Left/Skeleton:Index.Proximal" ] - -[sub_resource type="AnimationNodeBlendTree" id=25] -graph_offset = Vector2( -239.618, 12.3058 ) -nodes/ClosedHand1/node = SubResource( 20 ) -nodes/ClosedHand1/position = Vector2( -400, 200 ) -nodes/ClosedHand2/node = SubResource( 21 ) -nodes/ClosedHand2/position = Vector2( -200, 300 ) -nodes/Grip/node = SubResource( 22 ) -nodes/Grip/position = Vector2( 200, 0 ) -nodes/OpenHand/node = SubResource( 23 ) -nodes/OpenHand/position = Vector2( -400, 0 ) -nodes/Trigger/node = SubResource( 24 ) -nodes/Trigger/position = Vector2( -160, 0 ) -nodes/output/position = Vector2( 400, 0 ) -node_connections = [ "output", 0, "Grip", "Grip", 0, "Trigger", "Grip", 1, "ClosedHand2", "Trigger", 0, "OpenHand", "Trigger", 1, "ClosedHand1" ] - -[sub_resource type="BoxShape" id=13] -extents = Vector3( 0.5, 0.25, 0.05 ) - -[node name="PokeDemo" instance=ExtResource( 1 )] - -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 2 )] - -[node name="BoneAttachment" type="BoneAttachment" parent="ARVROrigin/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton" index="1"] -transform = Transform( 0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.0399019, 0.0402828, -0.150096 ) +filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] + +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_4py0i"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_vq8jm") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_hmmlh") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ob3nl") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_c6dak") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_mplw3") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_s7l3t"] +size = Vector3(1, 0.5, 0.01) + +[node name="PokeDemo" instance=ExtResource("1")] +script = ExtResource("2_sgf8o") + +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3")] + +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096) bone_name = "Index_Tip_L" - -[node name="Poke" parent="ARVROrigin/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton/BoneAttachment" index="0" instance=ExtResource( 7 )] -transform = Transform( 1, -1.49012e-07, 9.31323e-09, 1.49012e-07, 1, -7.45058e-09, 5.58794e-09, 1.86265e-08, 1, 0, 0, 0 ) - -[node name="AnimationTree" parent="ARVROrigin/LeftHand/LeftHand" index="1"] -tree_root = SubResource( 19 ) - -[node name="FunctionPoseDetector" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 18 )] - -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 3 )] - -[node name="BoneAttachment" type="BoneAttachment" parent="ARVROrigin/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton" index="1"] -transform = Transform( 0.540829, -0.840813, 0.0231736, 0.0826267, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113023, -0.0399019, 0.0402828, -0.150096 ) +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("7")] +transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_1niag") + +[node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("4_whmmd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, -1, 0.5) + +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("2")] + +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824) +bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) +bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) +bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) +bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) +bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) +bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) +bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) +bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) +bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) +bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) +bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) +bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) +bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) +bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) +bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) +bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351) +bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) +bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096) bone_name = "Index_Tip_R" +bone_idx = 9 -[node name="Poke" parent="ARVROrigin/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton/BoneAttachment" index="0" instance=ExtResource( 7 )] -transform = Transform( 1, -1.63913e-07, 2.98023e-08, 8.9407e-08, 1, 0, -2.98023e-08, -2.98023e-08, 1, 0, 0, 0 ) +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("7")] +transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -[node name="AnimationTree" parent="ARVROrigin/RightHand/RightHand" index="1"] -tree_root = SubResource( 25 ) +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_4py0i") -[node name="FunctionPoseDetector" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 18 )] +[node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("4_whmmd")] -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 11 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("11")] max_speed = 5.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 14 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("14")] -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 10 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("10")] -[node name="BasicMap" parent="." index="1" instance=ExtResource( 4 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("4")] -[node name="Teleport" parent="." index="2" instance=ExtResource( 5 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4 ) +[node name="Teleport" parent="." index="2" instance=ExtResource("5")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4) scene_base = NodePath("..") -title = ExtResource( 6 ) +title = ExtResource("6") -[node name="Instructions" parent="." index="3" instance=ExtResource( 19 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("11_570m5")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4) -[node name="PokeCanvas" type="Spatial" parent="." index="4"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, -1.581 ) +[node name="PokeCanvas" type="Node3D" parent="." index="4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, -1.581) -[node name="Viewport2Din3D" parent="PokeCanvas" index="0" instance=ExtResource( 8 )] -screen_size = Vector2( 1, 0.5 ) -viewport_size = Vector2( 1000, 500 ) -scene = ExtResource( 9 ) +[node name="Viewport2Din3D" parent="PokeCanvas" index="0" instance=ExtResource("8")] +screen_size = Vector2(1, 0.5) +viewport_size = Vector2(1000, 500) +scene = ExtResource("9") -[node name="HandPoseArea" parent="PokeCanvas" index="1" instance=ExtResource( 15 )] -left_pose = ExtResource( 16 ) -right_pose = ExtResource( 17 ) +[node name="HandPoseArea" parent="PokeCanvas" index="1" instance=ExtResource("14_qyy11")] +left_pose = ExtResource("15_08yhv") +right_pose = ExtResource("16_n1x7k") -[node name="CollisionShape" type="CollisionShape" parent="PokeCanvas/HandPoseArea" index="0"] -shape = SubResource( 13 ) +[node name="CollisionShape3D" type="CollisionShape3D" parent="PokeCanvas/HandPoseArea" index="0"] +shape = SubResource("BoxShape3D_s7l3t") -[node name="Table" parent="." index="5" instance=ExtResource( 12 )] -transform = Transform( 0.515726, 0, -0.856754, 0, 1, 0, 0.856754, 0, 0.515726, 2.37791, 0, -0.681984 ) +[node name="Table" parent="." index="5" instance=ExtResource("12")] +transform = Transform3D(0.515726, 0, -0.856754, 0, 1, 0, 0.856754, 0, 0.515726, 2.37791, 0, -0.681984) -[node name="GrabCube01" parent="Table" index="10" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.890771, 0 ) +[node name="GrabCube01" parent="Table" index="10" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.890771, 0) -[node name="GrabCube02" parent="Table" index="11" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.149316, 0.890771, 0.0898814 ) +[node name="GrabCube02" parent="Table" index="11" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.149316, 0.890771, 0.0898814) -[node name="GrabCube03" parent="Table" index="12" instance=ExtResource( 13 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.138419, 0.890771, 0.13692 ) +[node name="GrabCube03" parent="Table" index="12" instance=ExtResource("13")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.138419, 0.890771, 0.13692) -[editable path="ARVROrigin/LeftHand/LeftHand"] -[editable path="ARVROrigin/LeftHand/LeftHand/Hand_Nails_low_L"] -[editable path="ARVROrigin/RightHand/RightHand"] -[editable path="ARVROrigin/RightHand/RightHand/Hand_Nails_low_R"] +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_low_R"] diff --git a/scenes/sphere_world_demo/environments/constellations.tres b/scenes/sphere_world_demo/environments/constellations.tres index 5daf332f..aefdeafe 100644 --- a/scenes/sphere_world_demo/environments/constellations.tres +++ b/scenes/sphere_world_demo/environments/constellations.tres @@ -1,12 +1,15 @@ -[gd_resource type="Environment" load_steps=3 format=2] +[gd_resource type="Environment" load_steps=4 format=3 uid="uid://dd1kfsedti62a"] -[ext_resource path="res://assets/nasa/starmap_and_constellation_figures_4k.jpg" type="Texture" id=1] +[ext_resource type="Texture2D" uid="uid://2tmlveuwlpbw" path="res://assets/nasa/starmap_and_constellation_figures_4k.jpg" id="1"] -[sub_resource type="PanoramaSky" id=1] -panorama = ExtResource( 1 ) +[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_f3n3e"] +panorama = ExtResource("1") + +[sub_resource type="Sky" id="Sky_ef5og"] +sky_material = SubResource("PanoramaSkyMaterial_f3n3e") [resource] background_mode = 2 -background_sky = SubResource( 1 ) -ambient_light_color = Color( 1, 1, 1, 1 ) +sky = SubResource("Sky_ef5og") +ambient_light_color = Color(1, 1, 1, 1) ambient_light_energy = 0.7 diff --git a/scenes/sphere_world_demo/objects/donut.tscn b/scenes/sphere_world_demo/objects/donut.tscn index bdde1a9b..0fa29ca2 100644 --- a/scenes/sphere_world_demo/objects/donut.tscn +++ b/scenes/sphere_world_demo/objects/donut.tscn @@ -1,11 +1,11 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://bu7s5v5ygr0aa"] -[ext_resource path="res://assets/wahooney.itch.io/blue_grid.tres" type="Material" id=1] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/blue_grid.tres" id="1"] -[node name="Donut" type="Spatial"] +[node name="Donut" type="Node3D"] -[node name="CSGTorus" type="CSGTorus" parent="."] -transform = Transform( -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 6, 0 ) +[node name="CSGTorus" type="CSGTorus3D" parent="."] +transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 6, 0) use_collision = true collision_layer = 8 collision_mask = 0 @@ -13,4 +13,4 @@ inner_radius = 6.0 outer_radius = 8.0 sides = 30 ring_sides = 12 -material = ExtResource( 1 ) +material = ExtResource("1") diff --git a/scenes/sphere_world_demo/objects/tower.tscn b/scenes/sphere_world_demo/objects/tower.tscn index 7efcbd29..b12f8ea1 100644 --- a/scenes/sphere_world_demo/objects/tower.tscn +++ b/scenes/sphere_world_demo/objects/tower.tscn @@ -1,23 +1,23 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://cutuj4o2r75tg"] -[ext_resource path="res://addons/godot-xr-tools/objects/climbable.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=2] +[ext_resource type="PackedScene" uid="uid://cjyilbm4ucc7s" path="res://addons/godot-xr-tools/objects/climbable.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="2"] -[sub_resource type="BoxShape" id=1] -extents = Vector3( 1.5, 4, 1.5 ) +[sub_resource type="BoxShape3D" id="BoxShape3D_2a2jy"] +size = Vector3(3, 8, 3) -[sub_resource type="CubeMesh" id=2] -size = Vector3( 3, 8, 3 ) +[sub_resource type="BoxMesh" id="2"] +material = ExtResource("2") +size = Vector3(3, 8, 3) -[node name="Tower" instance=ExtResource( 1 )] +[node name="Tower" instance=ExtResource("1")] collision_layer = 2 collision_mask = 0 -[node name="CollisionShape" parent="." index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 ) -shape = SubResource( 1 ) +[node name="CollisionShape3D" parent="." index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0) +shape = SubResource("BoxShape3D_2a2jy") -[node name="MeshInstance" type="MeshInstance" parent="." index="1"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 ) -mesh = SubResource( 2 ) -material/0 = ExtResource( 2 ) +[node name="MeshInstance" type="MeshInstance3D" parent="." index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0) +mesh = SubResource("2") diff --git a/scenes/sphere_world_demo/sphere_world_demo.png.import b/scenes/sphere_world_demo/sphere_world_demo.png.import index 6e218154..49f229fc 100644 --- a/scenes/sphere_world_demo/sphere_world_demo.png.import +++ b/scenes/sphere_world_demo/sphere_world_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.s3tc.stex" -path.etc="res://.import/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.etc.stex" +type="CompressedTexture2D" +uid="uid://dhd30j0xpcxoi" +path.s3tc="res://.godot/imported/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.s3tc.ctex" +path.etc2="res://.godot/imported/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/sphere_world_demo/sphere_world_demo.png" -dest_files=[ "res://.import/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.s3tc.stex", "res://.import/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.etc.stex" ] +dest_files=["res://.godot/imported/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.s3tc.ctex", "res://.godot/imported/sphere_world_demo.png-dea9370d686dcfe7b9838df58c9a3444.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/sphere_world_demo/sphere_world_demo.tscn b/scenes/sphere_world_demo/sphere_world_demo.tscn index 1b31da61..c0731ecb 100644 --- a/scenes/sphere_world_demo/sphere_world_demo.tscn +++ b/scenes/sphere_world_demo/sphere_world_demo.tscn @@ -1,167 +1,164 @@ -[gd_scene load_steps=27 format=2] - -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" type="Material" id=2] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_grapple.tscn" type="PackedScene" id=11] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_wall_walk.tscn" type="PackedScene" id=12] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_wind.tscn" type="PackedScene" id=13] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=16] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_glide.tscn" type="PackedScene" id=17] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_climb.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/sphere_world_demo/environments/constellations.tres" type="Environment" id=19] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=20] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=21] -[ext_resource path="res://assets/meshes/mound/mound.tscn" type="PackedScene" id=22] -[ext_resource path="res://assets/meshes/ramps/ramps.tscn" type="PackedScene" id=23] -[ext_resource path="res://scenes/sphere_world_demo/objects/tower.tscn" type="PackedScene" id=24] -[ext_resource path="res://scenes/sphere_world_demo/objects/donut.tscn" type="PackedScene" id=25] - -[sub_resource type="SphereMesh" id=1] -material = ExtResource( 2 ) +[gd_scene load_steps=27 format=3 uid="uid://b5o25nkvyv8ho"] + +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="2"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://bx1xdisoqo1f6" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://chumpejwiub7f" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://c78tjrtiyqna8" path="res://addons/godot-xr-tools/functions/movement_grapple.tscn" id="11"] +[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/functions/movement_wall_walk.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://bgts3vpmjn6bb" path="res://addons/godot-xr-tools/functions/movement_wind.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="16"] +[ext_resource type="PackedScene" uid="uid://cvokcudrffkgc" path="res://addons/godot-xr-tools/functions/movement_glide.tscn" id="17"] +[ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="18"] +[ext_resource type="Environment" uid="uid://dd1kfsedti62a" path="res://scenes/sphere_world_demo/environments/constellations.tres" id="19"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="20"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="21"] +[ext_resource type="PackedScene" uid="uid://dpjfart2qg8k7" path="res://assets/meshes/mound/mound.tscn" id="22"] +[ext_resource type="PackedScene" uid="uid://bdc23valbh8gf" path="res://assets/meshes/ramps/ramps.tscn" id="23"] +[ext_resource type="PackedScene" uid="uid://bu7s5v5ygr0aa" path="res://scenes/sphere_world_demo/objects/donut.tscn" id="23_nox6a"] +[ext_resource type="PackedScene" uid="uid://cutuj4o2r75tg" path="res://scenes/sphere_world_demo/objects/tower.tscn" id="24"] + +[sub_resource type="SphereMesh" id="1"] +material = ExtResource("2") radius = 50.0 height = 100.0 -[sub_resource type="SphereShape" id=2] +[sub_resource type="SphereShape3D" id="2"] radius = 50.0 -[sub_resource type="SphereShape" id=3] +[sub_resource type="SphereShape3D" id="3"] radius = 80.0 -[node name="SphereWorldDemo" instance=ExtResource( 1 )] -environment = ExtResource( 19 ) +[node name="SphereWorldDemo" instance=ExtResource("1")] +environment = ExtResource("19") -[node name="ARVROrigin" parent="." index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 0 ) +[node name="XROrigin3D" parent="." index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 0) -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 4 )] +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("4")] -[node name="FunctionPickup" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 8 )] +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("8")] grab_collision_mask = 6 ranged_enable = false -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 5 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("5")] max_speed = 3.0 strafe = true -[node name="MovementSprint" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 6 )] +[node name="MovementSprint" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("6")] -[node name="MovementJump" parent="ARVROrigin/LeftHand" index="4" instance=ExtResource( 7 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("7")] +jump_button_action = "ax_button" -[node name="MovementCrouch" parent="ARVROrigin/LeftHand" index="5" instance=ExtResource( 9 )] -crouch_button = 1 +[node name="MovementCrouch" parent="XROrigin3D/LeftHand" index="5" instance=ExtResource("9")] +crouch_button_action = "by_button" -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 10 )] +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("10")] -[node name="FunctionPickup" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 8 )] +[node name="FunctionPickup" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("8")] grab_collision_mask = 6 ranged_enable = false -ranged_collision_mask = 0 -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 5 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("5")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 16 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("16")] -[node name="MovementJump" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 7 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("7")] +jump_button_action = "ax_button" -[node name="MovementGrapple" parent="ARVROrigin/RightHand" index="5" instance=ExtResource( 11 )] +[node name="MovementGrapple" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("11")] grapple_collision_mask = 3 -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 3 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("3")] -[node name="MovementClimb" parent="ARVROrigin" index="4" instance=ExtResource( 18 )] +[node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("18")] -[node name="MovementWind" parent="ARVROrigin" index="5" instance=ExtResource( 13 )] +[node name="MovementWind" parent="XROrigin3D" index="5" instance=ExtResource("13")] -[node name="MovementGlide" parent="ARVROrigin" index="6" instance=ExtResource( 17 )] +[node name="MovementGlide" parent="XROrigin3D" index="6" instance=ExtResource("17")] -[node name="MovementWallWalk" parent="ARVROrigin" index="7" instance=ExtResource( 12 )] +[node name="MovementWallWalk" parent="XROrigin3D" index="7" instance=ExtResource("12")] -[node name="Teleport1" parent="." index="1" instance=ExtResource( 20 )] -transform = Transform( -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 49.9, 0, 0 ) +[node name="Teleport1" parent="." index="1" instance=ExtResource("20")] +transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 49.9, 0, 0) scene_base = NodePath("..") -title = ExtResource( 21 ) +title = ExtResource("21") -[node name="Teleport2" parent="." index="2" instance=ExtResource( 20 )] -transform = Transform( 1.91069e-15, -4.37114e-08, 1, -1, -4.37114e-08, 0, 4.37114e-08, -1, -4.37114e-08, 0, 0, -49.9 ) +[node name="Teleport2" parent="." index="2" instance=ExtResource("20")] +transform = Transform3D(1.91069e-15, -4.37114e-08, 1, -1, -4.37114e-08, 0, 4.37114e-08, -1, -4.37114e-08, 0, 0, -49.9) scene_base = NodePath("..") -title = ExtResource( 21 ) +title = ExtResource("21") -[node name="Teleport3" parent="." index="3" instance=ExtResource( 20 )] -transform = Transform( 4.37114e-08, -1, -8.74228e-08, -1, -4.37114e-08, 0, -3.82137e-15, 8.74228e-08, -1, -49.9, 0, 0 ) +[node name="Teleport3" parent="." index="3" instance=ExtResource("20")] +transform = Transform3D(4.37114e-08, -1, -8.74228e-08, -1, -4.37114e-08, 0, -3.82137e-15, 8.74228e-08, -1, -49.9, 0, 0) scene_base = NodePath("..") -title = ExtResource( 21 ) +title = ExtResource("21") -[node name="Teleport4" parent="." index="4" instance=ExtResource( 20 )] -transform = Transform( -5.73206e-15, 1.31134e-07, -1, -1, -4.37114e-08, 0, -4.37114e-08, 1, 1.31134e-07, 0, 0, 49.9 ) +[node name="Teleport4" parent="." index="4" instance=ExtResource("20")] +transform = Transform3D(-5.73206e-15, 1.31134e-07, -1, -1, -4.37114e-08, 0, -4.37114e-08, 1, 1.31134e-07, 0, 0, 49.9) scene_base = NodePath("..") -title = ExtResource( 21 ) +title = ExtResource("21") -[node name="World" type="Spatial" parent="." index="5"] +[node name="World" type="Node3D" parent="." index="5"] -[node name="Body" type="StaticBody" parent="World" index="0"] +[node name="Body" type="StaticBody3D" parent="World" index="0"] collision_layer = 8 collision_mask = 0 -[node name="MeshInstance" type="MeshInstance" parent="World/Body" index="0"] -mesh = SubResource( 1 ) +[node name="MeshInstance" type="MeshInstance3D" parent="World/Body" index="0"] +mesh = SubResource("1") -[node name="CollisionShape" type="CollisionShape" parent="World/Body" index="1"] -shape = SubResource( 2 ) +[node name="CollisionShape" type="CollisionShape3D" parent="World/Body" index="1"] +shape = SubResource("2") -[node name="Gravity" type="Area" parent="World" index="1"] -space_override = 3 +[node name="Gravity" type="Area3D" parent="World" index="1"] +collision_layer = 0 +collision_mask = 524292 +gravity_space_override = 3 gravity_point = true -gravity_vec = Vector3( 0, 0, 0 ) +gravity_point_center = Vector3(0, 0, 0) +gravity_direction = Vector3(0, 0, 0) -[node name="CollisionShape" type="CollisionShape" parent="World/Gravity" index="0"] -shape = SubResource( 3 ) +[node name="CollisionShape" type="CollisionShape3D" parent="World/Gravity" index="0"] +shape = SubResource("3") -[node name="Mound1" parent="World" index="2" instance=ExtResource( 22 )] -transform = Transform( 1, 0, 0, 0, 0.965926, -0.258819, 0, 0.258819, 0.965926, 0, 47, 14 ) +[node name="Mound1" parent="World" index="2" instance=ExtResource("22")] +transform = Transform3D(1, 0, 0, 0, 0.965926, -0.258819, 0, 0.258819, 0.965926, 0, 47, 14) -[node name="Mound2" parent="World" index="3" instance=ExtResource( 22 )] -transform = Transform( 1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 47, -14 ) +[node name="Mound2" parent="World" index="3" instance=ExtResource("22")] +transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 47, -14) -[node name="Ramps1" parent="World" index="4" instance=ExtResource( 23 )] -transform = Transform( -4.2222e-08, -0.258819, 0.965926, -1.13133e-08, 0.965926, 0.258819, -1, 0, -4.37114e-08, -12, 48, 0 ) +[node name="Ramps1" parent="World" index="4" instance=ExtResource("23")] +transform = Transform3D(-4.2222e-08, -0.258819, 0.965926, -1.13133e-08, 0.965926, 0.258819, -1, 0, -4.37114e-08, -12, 48, 0) -[node name="Ramps2" parent="World" index="5" instance=ExtResource( 23 )] -transform = Transform( -4.2222e-08, 0.258819, 0.965926, 1.13133e-08, 0.965926, -0.258819, -1, 0, -4.37114e-08, 12, 48, 0 ) +[node name="Ramps2" parent="World" index="5" instance=ExtResource("23")] +transform = Transform3D(-4.2222e-08, 0.258819, 0.965926, 1.13133e-08, 0.965926, -0.258819, -1, 0, -4.37114e-08, 12, 48, 0) -[node name="Tower1" parent="World" index="6" instance=ExtResource( 24 )] -transform = Transform( 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0, 1, -35, 35, 0 ) +[node name="Tower1" parent="World" index="6" instance=ExtResource("24")] +transform = Transform3D(0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0, 1, -35, 35, 0) -[node name="Tower2" parent="World" index="7" instance=ExtResource( 24 )] -transform = Transform( 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 35, 35, 0 ) +[node name="Tower2" parent="World" index="7" instance=ExtResource("24")] +transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 35, 35, 0) -[node name="Tower3" parent="World" index="8" instance=ExtResource( 24 )] -transform = Transform( 1, 5.96046e-08, 0, -4.21468e-08, 0.707107, -0.707107, -4.21468e-08, 0.707107, 0.707107, 0, 35, 35 ) +[node name="Tower3" parent="World" index="8" instance=ExtResource("24")] +transform = Transform3D(1, 5.96046e-08, 0, -4.21468e-08, 0.707107, -0.707107, -4.21468e-08, 0.707107, 0.707107, 0, 35, 35) -[node name="Tower4" parent="World" index="9" instance=ExtResource( 24 )] -transform = Transform( 1, 5.96046e-08, 0, -4.21468e-08, 0.707107, 0.707107, 4.21469e-08, -0.707107, 0.707107, 0, 35, -35 ) +[node name="Tower4" parent="World" index="9" instance=ExtResource("24")] +transform = Transform3D(1, 5.96046e-08, 0, -4.21468e-08, 0.707107, 0.707107, 4.21469e-08, -0.707107, 0.707107, 0, 35, -35) -[node name="Donut1" parent="World" index="10" instance=ExtResource( 25 )] -transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0, 49.5, 0 ) +[node name="Donut1" parent="World" index="10" instance=ExtResource("23_nox6a")] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0, 49.5, 0) -[node name="Donut2" parent="World" index="11" instance=ExtResource( 25 )] -transform = Transform( 0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, 0, 49.5, 0 ) +[node name="Donut2" parent="World" index="11" instance=ExtResource("23_nox6a")] +transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, 0, 49.5, 0) -[node name="DirectionalLight" type="DirectionalLight" parent="." index="6"] -transform = Transform( 1, 0, 0, 0, 0.258819, 0.965926, 0, -0.965926, 0.258819, 0, 60, 0 ) +[node name="DirectionalLight" type="DirectionalLight3D" parent="." index="6"] +transform = Transform3D(1, 0, 0, 0, 0.258819, 0.965926, 0, -0.965926, 0.258819, 0, 60, 0) light_energy = 0.8 diff --git a/scenes/sprinting_demo/objects/instructions_2d.tscn b/scenes/sprinting_demo/objects/instructions_2d.tscn index 44601717..d3720d44 100644 --- a/scenes/sprinting_demo/objects/instructions_2d.tscn +++ b/scenes/sprinting_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://culguvmnpqpy5"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Sprinting Demo This scene sprinting movement using the following controls: diff --git a/scenes/sprinting_demo/sprinting_demo.png.import b/scenes/sprinting_demo/sprinting_demo.png.import index d0d0b3a5..009029cf 100644 --- a/scenes/sprinting_demo/sprinting_demo.png.import +++ b/scenes/sprinting_demo/sprinting_demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.s3tc.stex" -path.etc="res://.import/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.etc.stex" +type="CompressedTexture2D" +uid="uid://v4807nasx1dc" +path.s3tc="res://.godot/imported/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.s3tc.ctex" +path.etc2="res://.godot/imported/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/sprinting_demo/sprinting_demo.png" -dest_files=[ "res://.import/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.s3tc.stex", "res://.import/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.etc.stex" ] +dest_files=["res://.godot/imported/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.s3tc.ctex", "res://.godot/imported/sprinting_demo.png-7c44fd4c5246ffb4c41197c5b9952020.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/sprinting_demo/sprinting_demo.tscn b/scenes/sprinting_demo/sprinting_demo.tscn index ba958334..78021569 100644 --- a/scenes/sprinting_demo/sprinting_demo.tscn +++ b/scenes/sprinting_demo/sprinting_demo.tscn @@ -1,93 +1,91 @@ -[gd_scene load_steps=21 format=2] - -[ext_resource path="res://addons/godot-xr-tools/functions/movement_jump.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=2] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_climb.tscn" type="PackedScene" id=3] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=5] -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=6] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn" type="PackedScene" id=7] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" type="PackedScene" id=8] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/functions/function_pickup.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_direct.tscn" type="PackedScene" id=11] -[ext_resource path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" type="Material" id=12] -[ext_resource path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" type="Material" id=13] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=14] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=15] -[ext_resource path="res://scenes/sprinting_demo/player_physics.tres" type="Resource" id=16] -[ext_resource path="res://scenes/sprinting_demo/objects/ramp.tscn" type="PackedScene" id=17] -[ext_resource path="res://scenes/sprinting_demo/objects/climbing_wall.tscn" type="PackedScene" id=18] -[ext_resource path="res://scenes/sprinting_demo/objects/instructions.tscn" type="PackedScene" id=19] - -[sub_resource type="Curve3D" id=1] +[gd_scene load_steps=22 format=3] + +[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="1"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_5a8oj"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="11"] +[ext_resource type="Material" uid="uid://p0q2df2dmy62" path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" id="12"] +[ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="12_gkoml"] +[ext_resource type="Resource" path="res://scenes/sprinting_demo/player_physics.tres" id="12_ureyg"] +[ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="13"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="14"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="16_3bcyp"] +[ext_resource type="PackedScene" path="res://scenes/sprinting_demo/objects/ramp.tscn" id="17"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="17_k8kqb"] +[ext_resource type="PackedScene" path="res://scenes/sprinting_demo/objects/climbing_wall.tscn" id="18"] +[ext_resource type="PackedScene" path="res://scenes/sprinting_demo/objects/instructions.tscn" id="19"] + +[sub_resource type="Curve3D" id="1"] bake_interval = 2.0 _data = { -"points": PoolVector3Array( 10, 0, 0, -10, 0, 0, -20, 0, 20, 0, 0, 10, 0, 0, -10, -40, 0, 0, -10, 0, 0, 10, 0, 0, -20, 0, -20, -10, 0, 0, 10, 0, 0, 20, 0, -20, 0, 0, -10, 0, 0, 10, 40, 0, 0, 10, 0, 0, -10, 0, 0, 20, 0, 20, 0, 0, 0, 0, 0, 0, -20, 0, 20 ), -"tilts": PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ) +"points": PackedVector3Array(10, 0, 0, -10, 0, 0, -20, 0, 20, 0, 0, 10, 0, 0, -10, -40, 0, 0, -10, 0, 0, 10, 0, 0, -20, 0, -20, -10, 0, 0, 10, 0, 0, 20, 0, -20, 0, 0, -10, 0, 0, 10, 40, 0, 0, 10, 0, 0, -10, 0, 0, 20, 0, 20, 0, 0, 0, 0, 0, 0, -20, 0, 20), +"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0) } +point_count = 7 -[node name="SprintingDemo" instance=ExtResource( 6 )] +[node name="SprintingDemo" instance=ExtResource("6")] +script = ExtResource("2_5a8oj") -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 7 )] -hand_material_override = ExtResource( 12 ) +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("7")] +hand_material_override = ExtResource("12") -[node name="FunctionPickup" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 10 )] +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("10")] grab_distance = 0.1 -[node name="MovementDirect" parent="ARVROrigin/LeftHand" index="2" instance=ExtResource( 11 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("11")] max_speed = 3.0 strafe = true -[node name="MovementJump" parent="ARVROrigin/LeftHand" index="3" instance=ExtResource( 1 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("1")] +jump_button_action = "ax_button" -[node name="MovementSprint" parent="ARVROrigin/LeftHand" index="4" instance=ExtResource( 8 )] +[node name="MovementSprint" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("8")] -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 9 )] -hand_material_override = ExtResource( 12 ) +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("9")] +hand_material_override = ExtResource("12") -[node name="FunctionPickup" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 10 )] +[node name="FunctionPickup" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("10")] grab_distance = 0.1 -[node name="MovementDirect" parent="ARVROrigin/RightHand" index="2" instance=ExtResource( 11 )] -enabled = true -order = 10 +[node name="MovementDirect" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("11")] max_speed = 3.0 -strafe = false -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="3" instance=ExtResource( 2 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("16_3bcyp")] -[node name="MovementJump" parent="ARVROrigin/RightHand" index="4" instance=ExtResource( 1 )] -jump_button_id = 7 +[node name="MovementJump" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("1")] +jump_button_action = "ax_button" -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 5 )] -physics = ExtResource( 16 ) +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("17_k8kqb")] +physics = ExtResource("12_ureyg") -[node name="MovementClimb" parent="ARVROrigin" index="4" instance=ExtResource( 3 )] +[node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("12_gkoml")] -[node name="BasicMap" parent="." index="1" instance=ExtResource( 4 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("4")] -[node name="Teleport" parent="." index="2" instance=ExtResource( 15 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 0, 0 ) +[node name="Teleport" parent="." index="2" instance=ExtResource("15")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 0, 0) scene_base = NodePath("..") -title = ExtResource( 14 ) +title = ExtResource("14") -[node name="Instructions" parent="." index="3" instance=ExtResource( 19 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -4 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("19")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -4) -[node name="Track" type="Spatial" parent="." index="4"] +[node name="Track" type="Node3D" parent="." index="4"] -[node name="Path" type="Path" parent="Track" index="0"] -curve = SubResource( 1 ) +[node name="Path" type="Path3D" parent="Track" index="0"] +curve = SubResource("1") -[node name="CSGPolygon" type="CSGPolygon" parent="Track/Path" index="0"] -material_override = ExtResource( 13 ) +[node name="CSGPolygon" type="CSGPolygon3D" parent="Track/Path" index="0"] +material_override = ExtResource("13") use_collision = true collision_mask = 0 -polygon = PoolVector2Array( -3, 0, -2.5, 0.1, 2.5, 0.1, 3, 0 ) +polygon = PackedVector2Array(-3, 0, -2.5, 0.1, 2.5, 0.1, 3, 0) mode = 2 path_node = NodePath("..") path_interval_type = 0 @@ -99,30 +97,30 @@ path_continuous_u = true path_u_distance = 1.0 path_joined = true -[node name="Ramps" type="Spatial" parent="." index="5"] +[node name="Ramps" type="Node3D" parent="." index="5"] -[node name="Ramp1" parent="Ramps" index="0" instance=ExtResource( 17 )] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -4, 0, 28 ) +[node name="Ramp1" parent="Ramps" index="0" instance=ExtResource("17")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -4, 0, 28) -[node name="Ramp2" parent="Ramps" index="1" instance=ExtResource( 17 )] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4, 0, 28 ) +[node name="Ramp2" parent="Ramps" index="1" instance=ExtResource("17")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4, 0, 28) -[node name="Ramp3" parent="Ramps" index="2" instance=ExtResource( 17 )] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -4, 0, -28 ) +[node name="Ramp3" parent="Ramps" index="2" instance=ExtResource("17")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -4, 0, -28) -[node name="Ramp4" parent="Ramps" index="3" instance=ExtResource( 17 )] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4, 0, -28 ) +[node name="Ramp4" parent="Ramps" index="3" instance=ExtResource("17")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4, 0, -28) -[node name="Climbing" type="Spatial" parent="." index="6"] +[node name="Climbing" type="Node3D" parent="." index="6"] -[node name="ClimbingWall1" parent="Climbing" index="0" instance=ExtResource( 18 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 0, 0 ) +[node name="ClimbingWall1" parent="Climbing" index="0" instance=ExtResource("18")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48, 0, 0) -[node name="ClimbingWall2" parent="Climbing" index="1" instance=ExtResource( 18 )] -transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 48, 0, 0 ) +[node name="ClimbingWall2" parent="Climbing" index="1" instance=ExtResource("18")] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 48, 0, 0) -[node name="ClimbingWall3" parent="Climbing" index="2" instance=ExtResource( 18 )] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 48 ) +[node name="ClimbingWall3" parent="Climbing" index="2" instance=ExtResource("18")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 48) -[node name="ClimbingWall4" parent="Climbing" index="3" instance=ExtResource( 18 )] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -48 ) +[node name="ClimbingWall4" parent="Climbing" index="3" instance=ExtResource("18")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -48) diff --git a/scenes/teleport_demo/objects/instructions_2d.tscn b/scenes/teleport_demo/objects/instructions_2d.tscn index 5c649e1d..dbad6bcb 100644 --- a/scenes/teleport_demo/objects/instructions_2d.tscn +++ b/scenes/teleport_demo/objects/instructions_2d.tscn @@ -1,22 +1,25 @@ -[gd_scene format=2] +[gd_scene format=3 uid="uid://l1rvno7fmj73"] [node name="Instructions" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -margin_right = -624.0 -margin_bottom = -350.0 -rect_pivot_offset = Vector2( -421, -85 ) [node name="ColorRect" type="ColorRect" parent="."] -margin_right = 400.0 -margin_bottom = 250.0 -color = Color( 0, 0, 0, 0.87451 ) +layout_mode = 0 +offset_right = 400.0 +offset_bottom = 250.0 +color = Color(0, 0, 0, 0.87451) [node name="Description" type="RichTextLabel" parent="."] -margin_left = 10.0 -margin_top = 10.0 -margin_right = 390.0 -margin_bottom = 240.0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 390.0 +offset_bottom = 240.0 +theme_override_constants/line_separation = -3 +theme_override_font_sizes/normal_font_size = 12 text = "Teleport Demo This scene demonstrates teleport movement and is configured with the following movement controls: diff --git a/scenes/teleport_demo/teleport movement demo.png.import b/scenes/teleport_demo/teleport movement demo.png.import index b25a599c..944f30ce 100644 --- a/scenes/teleport_demo/teleport movement demo.png.import +++ b/scenes/teleport_demo/teleport movement demo.png.import @@ -1,37 +1,36 @@ [remap] importer="texture" -type="StreamTexture" -path.s3tc="res://.import/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.s3tc.stex" -path.etc="res://.import/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.etc.stex" +type="CompressedTexture2D" +uid="uid://c8qc5ja60n3u8" +path.s3tc="res://.godot/imported/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.s3tc.ctex" +path.etc2="res://.godot/imported/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.etc2.ctex" metadata={ -"imported_formats": [ "s3tc", "etc" ], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://scenes/teleport_demo/teleport movement demo.png" -dest_files=[ "res://.import/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.s3tc.stex", "res://.import/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.etc.stex" ] +dest_files=["res://.godot/imported/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.s3tc.ctex", "res://.godot/imported/teleport movement demo.png-d9b5bdbe5b510a93251251be5fb79bc6.etc2.ctex"] [params] compress/mode=2 +compress/high_quality=false compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 +compress/hdr_compression=1 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/scenes/teleport_demo/teleport_demo.tscn b/scenes/teleport_demo/teleport_demo.tscn index c23d5395..1b376854 100644 --- a/scenes/teleport_demo/teleport_demo.tscn +++ b/scenes/teleport_demo/teleport_demo.tscn @@ -1,42 +1,38 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=12 format=3 uid="uid://7g6nh3s77jd7"] -[ext_resource path="res://addons/godot-xr-tools/staging/scene_base.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/godot-xr-tools/functions/function_teleport.tscn" type="PackedScene" id=2] -[ext_resource path="res://scenes/main_menu/return to main menu.png" type="Texture" id=3] -[ext_resource path="res://addons/godot-xr-tools/player/player_body.tscn" type="PackedScene" id=4] -[ext_resource path="res://addons/godot-xr-tools/functions/movement_turn.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/meshes/teleport/teleport.tscn" type="PackedScene" id=6] -[ext_resource path="res://assets/maps/basic_map.tscn" type="PackedScene" id=7] -[ext_resource path="res://assets/meshes/ramps/ramps.tscn" type="PackedScene" id=8] -[ext_resource path="res://assets/meshes/mound/mound.tscn" type="PackedScene" id=9] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" type="PackedScene" id=10] -[ext_resource path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" type="PackedScene" id=11] -[ext_resource path="res://scenes/teleport_demo/objects/instructions.tscn" type="PackedScene" id=12] +[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://fiul51tsyoop" path="res://addons/godot-xr-tools/functions/function_teleport.tscn" id="2"] +[ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_sq0a2"] +[ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="3"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bdc23valbh8gf" path="res://assets/meshes/ramps/ramps.tscn" id="8"] +[ext_resource type="PackedScene" path="res://scenes/teleport_demo/objects/instructions.tscn" id="8_s8lss"] +[ext_resource type="PackedScene" uid="uid://dpjfart2qg8k7" path="res://assets/meshes/mound/mound.tscn" id="9"] -[node name="TeleportDemo" instance=ExtResource( 1 )] +[node name="TeleportDemo" instance=ExtResource("1")] +script = ExtResource("2_sq0a2") -[node name="LeftHand" parent="ARVROrigin/LeftHand" index="0" instance=ExtResource( 11 )] +[node name="FunctionTeleport" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2")] -[node name="FunctionTeleport" parent="ARVROrigin/LeftHand" index="1" instance=ExtResource( 2 )] +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5")] -[node name="RightHand" parent="ARVROrigin/RightHand" index="0" instance=ExtResource( 10 )] +[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("4")] -[node name="MovementTurn" parent="ARVROrigin/RightHand" index="1" instance=ExtResource( 5 )] +[node name="BasicMap" parent="." index="1" instance=ExtResource("7")] -[node name="PlayerBody" parent="ARVROrigin" index="3" instance=ExtResource( 4 )] - -[node name="BasicMap" parent="." index="1" instance=ExtResource( 7 )] - -[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource( 6 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7 ) +[node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("6")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7) scene_base = NodePath("..") -title = ExtResource( 3 ) +title = ExtResource("3") -[node name="Instructions" parent="." index="3" instance=ExtResource( 12 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -4 ) +[node name="Instructions" parent="." index="3" instance=ExtResource("8_s8lss")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -4) -[node name="Ramps" parent="." index="4" instance=ExtResource( 8 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -8 ) +[node name="Ramps" parent="." index="4" instance=ExtResource("8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -8) -[node name="Mound" parent="." index="5" instance=ExtResource( 9 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, -8 ) +[node name="Mound" parent="." index="5" instance=ExtResource("9")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, -8)