diff --git a/spine-godot/example-v4/assets/footstep.ogg.import b/spine-godot/example-v4/assets/footstep.ogg.import index 480b914b8..7712ffdc0 100644 --- a/spine-godot/example-v4/assets/footstep.ogg.import +++ b/spine-godot/example-v4/assets/footstep.ogg.import @@ -2,7 +2,7 @@ importer="oggvorbisstr" type="AudioStreamOGGVorbis" -uid="uid://btqvnw8fgej4l" +uid="uid://can7k84o8svum" path="res://.godot/imported/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggvorbisstr" [deps] diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import index 1342841ad..80c63a701 100644 --- a/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import @@ -2,7 +2,7 @@ importer="spine.json" type="SpineSkeletonFileResource" -uid="uid://t7fk7pe11l3b" +uid="uid://bijrb2mt3vodc" path="res://.godot/imported/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson" [deps] diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import index 73f3a701f..62adf3d7e 100644 --- a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import @@ -2,7 +2,7 @@ importer="spine.atlas" type="SpineAtlasResource" -uid="uid://c2hb88h3y512b" +uid="uid://cvu8lycjkd245" path="res://.godot/imported/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas" [deps] diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import index 29ff9ee9b..761e2b425 100644 --- a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dsodn1w3yva6f" +uid="uid://dkpeve6qcxa70" path="res://.godot/imported/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.ctex" metadata={ "vram_texture": false diff --git a/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas.import b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas.import new file mode 100644 index 000000000..7f9c5ac13 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas.import @@ -0,0 +1,15 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +uid="uid://c75mtwn6dnkwp" +path="res://.godot/imported/Raggedy Spineboy.atlas-07f7c6b30431397bcf472b18d48851e0.spatlas" + +[deps] + +source_file="res://assets/raggedyspineboy/Raggedy Spineboy.atlas" +dest_files=["res://.godot/imported/Raggedy Spineboy.atlas-07f7c6b30431397bcf472b18d48851e0.spatlas"] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png.import b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png.import new file mode 100644 index 000000000..e852fe8b8 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://couyrsq850nh6" +path="res://.godot/imported/Raggedy Spineboy.png-8982b59aad5b612b7ed1a5da8b447d00.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raggedyspineboy/Raggedy Spineboy.png" +dest_files=["res://.godot/imported/Raggedy Spineboy.png-8982b59aad5b612b7ed1a5da8b447d00.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +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/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy-res.tres b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy-res.tres new file mode 100644 index 000000000..0b47cd648 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy-res.tres @@ -0,0 +1,8 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/raggedyspineboy/Raggedy Spineboy.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/raggedyspineboy/raggedy spineboy.json" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) diff --git a/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json.import b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json.import new file mode 100644 index 000000000..5c2123ba8 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +uid="uid://bulrbalpjr863" +path="res://.godot/imported/raggedy spineboy.json-a7000cc987b23355ac0b09613918efcc.spjson" + +[deps] + +source_file="res://assets/raggedyspineboy/raggedy spineboy.json" +dest_files=["res://.godot/imported/raggedy spineboy.json-a7000cc987b23355ac0b09613918efcc.spjson"] + +[params] + diff --git a/spine-godot/example-v4/assets/raptor/light-sprite.png.import b/spine-godot/example-v4/assets/raptor/light-sprite.png.import new file mode 100644 index 000000000..60c836315 --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/light-sprite.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cggfs567rn1ay" +path="res://.godot/imported/light-sprite.png-346e910021b52658f1de723e4c80e05e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/light-sprite.png" +dest_files=["res://.godot/imported/light-sprite.png-346e910021b52658f1de723e4c80e05e.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +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/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raptor/n_raptor.png.import b/spine-godot/example-v4/assets/raptor/n_raptor.png.import new file mode 100644 index 000000000..1ac7c0eef --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/n_raptor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnjt8gyvsw0l8" +path="res://.godot/imported/n_raptor.png-d9af68b4a56af2b4319bb485e366dc90.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/n_raptor.png" +dest_files=["res://.godot/imported/n_raptor.png-d9af68b4a56af2b4319bb485e366dc90.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +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/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raptor/raprot-data.tres b/spine-godot/example-v4/assets/raptor/raptor-data.tres similarity index 100% rename from spine-godot/example-v4/assets/raptor/raprot-data.tres rename to spine-godot/example-v4/assets/raptor/raptor-data.tres diff --git a/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import b/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import index d9d495c1a..845790969 100644 --- a/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import +++ b/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import @@ -2,7 +2,7 @@ importer="spine.skel" type="SpineSkeletonFileResource" -uid="uid://do8aw2r36b6qk" +uid="uid://dor8huwld4f84" path="res://.godot/imported/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel" [deps] diff --git a/spine-godot/example-v4/assets/raptor/raptor.atlas.import b/spine-godot/example-v4/assets/raptor/raptor.atlas.import index 065652718..1c6ac9efb 100644 --- a/spine-godot/example-v4/assets/raptor/raptor.atlas.import +++ b/spine-godot/example-v4/assets/raptor/raptor.atlas.import @@ -2,7 +2,7 @@ importer="spine.atlas" type="SpineAtlasResource" -uid="uid://em5emiut17gv" +uid="uid://dhtyf5vltqsjg" path="res://.godot/imported/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas" [deps] diff --git a/spine-godot/example-v4/assets/raptor/raptor.png.import b/spine-godot/example-v4/assets/raptor/raptor.png.import index 77e05c587..cd8ee4280 100644 --- a/spine-godot/example-v4/assets/raptor/raptor.png.import +++ b/spine-godot/example-v4/assets/raptor/raptor.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b173v4l5brfj" +uid="uid://ucvdpil67hul" path="res://.godot/imported/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.ctex" metadata={ "vram_texture": false diff --git a/spine-godot/example-v4/assets/spineboy/spinebody-data-res.tres b/spine-godot/example-v4/assets/spineboy/spineboy-data-res.tres similarity index 100% rename from spine-godot/example-v4/assets/spineboy/spinebody-data-res.tres rename to spine-godot/example-v4/assets/spineboy/spineboy-data-res.tres diff --git a/spine-godot/example-v4/assets/spineboy/spineboy-pro.json.import b/spine-godot/example-v4/assets/spineboy/spineboy-pro.json.import index 73746ba33..a066a2e0e 100644 --- a/spine-godot/example-v4/assets/spineboy/spineboy-pro.json.import +++ b/spine-godot/example-v4/assets/spineboy/spineboy-pro.json.import @@ -2,7 +2,7 @@ importer="spine.json" type="SpineSkeletonFileResource" -uid="uid://d0sh0yumfhw5k" +uid="uid://drl0og0imdkla" path="res://.godot/imported/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson" [deps] diff --git a/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import b/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import index 240469f53..f6d3adbf0 100644 --- a/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import +++ b/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import @@ -2,7 +2,7 @@ importer="spine.skel" type="SpineSkeletonFileResource" -uid="uid://c4ksiwem3sg21" +uid="uid://cth0eypg16cgi" path="res://.godot/imported/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel" [deps] diff --git a/spine-godot/example-v4/assets/spineboy/spineboy.atlas.import b/spine-godot/example-v4/assets/spineboy/spineboy.atlas.import index 97fb701b2..831af22f0 100644 --- a/spine-godot/example-v4/assets/spineboy/spineboy.atlas.import +++ b/spine-godot/example-v4/assets/spineboy/spineboy.atlas.import @@ -2,7 +2,7 @@ importer="spine.atlas" type="SpineAtlasResource" -uid="uid://bcrd02k17qbt" +uid="uid://dt2kctrit34y0" path="res://.godot/imported/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas" [deps] diff --git a/spine-godot/example-v4/assets/spineboy/spineboy.png.import b/spine-godot/example-v4/assets/spineboy/spineboy.png.import index e8cfecbf5..b2d68597d 100644 --- a/spine-godot/example-v4/assets/spineboy/spineboy.png.import +++ b/spine-godot/example-v4/assets/spineboy/spineboy.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b8she3akx8ig" +uid="uid://bh5imhdfuc6m0" path="res://.godot/imported/spineboy.png-436dbd6da2b707b6828ede17b7871f43.ctex" metadata={ "vram_texture": false diff --git a/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn b/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn index 928c06046..6c3e6105e 100644 --- a/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn +++ b/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn @@ -1,12 +1,18 @@ -[gd_scene load_steps=3 format=3 uid="uid://covnpp5pbw5g7"] +[gd_scene load_steps=3 format=3 uid="uid://d0v5rhv2ysej8"] -[ext_resource type="Script" path="res://examples/01-helloworld/helloworld.gd" id="2_hkbn2"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="3"] +[ext_resource type="Script" path="res://examples/01-helloworld/spineboy-helloworld.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="3"] [node name="Node2D" type="Node2D"] [node name="Spineboy" type="SpineSprite" parent="."] -position = Vector2(496.207, 477.185) +position = Vector2(505, 466) scale = Vector2(0.466832, 0.466832) skeleton_data_res = ExtResource( "3" ) -script = ExtResource( "2_hkbn2" ) +bones_color = Color(0.968627, 1, 0, 0.501961) +paths_color = Color(1, 0.498039, 0, 0.466667) +paths_clipping = Color(0.8, 0, 0, 0.5) +preview_animation = "run" +preview_frame = true +preview_time = 0.24 +script = ExtResource( "1" ) diff --git a/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn.depren b/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn.depren deleted file mode 100644 index 203c45cf3..000000000 --- a/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn.depren +++ /dev/null @@ -1,12 +0,0 @@ -[gd_scene load_steps=3 format=3] - -[ext_resource type="Script" path="res://examples/01-helloworld/helloworld.gd" id="1"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="3"] - -[node name="Node2D" type="Node2D"] - -[node name="Spineboy" type="SpineSprite" parent="."] -position = Vector2(496.207, 477.185) -scale = Vector2(0.466832, 0.466832) -skeleton_data_res = ExtResource( "3" ) -script = ExtResource( "1" ) diff --git a/spine-godot/example-v4/examples/01-helloworld/helloworld.gd b/spine-godot/example-v4/examples/01-helloworld/spineboy-helloworld.gd similarity index 100% rename from spine-godot/example-v4/examples/01-helloworld/helloworld.gd rename to spine-godot/example-v4/examples/01-helloworld/spineboy-helloworld.gd diff --git a/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd index add58bd01..6313ea9ff 100644 --- a/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd +++ b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd @@ -27,12 +27,12 @@ func _ready(): var animation_state = spineboy.get_animation_state() animation_state.set_animation("jump", false, 0) animation_state.add_animation("walk", 0, true, 0) - animation_state.add_animation("run", 2, true, 0) + animation_state.add_animation("run", 2, true, 0) - spineboy.connect("animation_started", Callable(self, "_animation_started")) - spineboy.connect("animation_interrupted", Callable(self, "_animation_interrupted")) - spineboy.connect("animation_ended", Callable(self, "_animation_ended")) - spineboy.connect("animation_completed", Callable(self, "_animation_completed")) - spineboy.connect("animation_disposed", Callable(self, "_animation_disposed")) - spineboy.connect("animation_event", Callable(self, "_animation_event")) + spineboy.animation_started.connect(_animation_started) + spineboy.animation_interrupted.connect(_animation_interrupted) + spineboy.animation_ended.connect(_animation_ended) + spineboy.animation_completed.connect(_animation_completed) + spineboy.animation_disposed.connect(_animation_disposed) + spineboy.animation_event.connect(_animation_event) pass diff --git a/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn index 30e0d5dfd..8f0faa9cf 100644 --- a/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn +++ b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://pybgwkgp2y7o"] +[gd_scene load_steps=4 format=3 uid="uid://c738i3nbdkn0h"] [ext_resource type="Script" path="res://examples/02-animation-state-listeners/animation-state-listeners.gd" id="1"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="2"] -[ext_resource type="AudioStream" uid="uid://btqvnw8fgej4l" path="res://assets/footstep.ogg" id="3"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] +[ext_resource type="AudioStream" uid="uid://can7k84o8svum" path="res://assets/footstep.ogg" id="3"] [node name="Node2D" type="Node2D"] script = ExtResource( "1" ) @@ -11,6 +11,9 @@ script = ExtResource( "1" ) position = Vector2(473, 487) scale = Vector2(0.575051, 0.575051) skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 [node name="FootstepAudio" type="AudioStreamPlayer" parent="."] stream = ExtResource( "3" ) diff --git a/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn b/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn index df0586053..7f14e428e 100644 --- a/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn +++ b/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=3 format=3 uid="uid://2y54bey2t35l"] +[gd_scene load_steps=3 format=3 uid="uid://dodvuj07fsynd"] [ext_resource type="SpineSkeletonDataResource" path="res://assets/mix-and-match/mix-and-match-data.tres" id="1"] [ext_resource type="Script" path="res://examples/03-mix-and-match/mix-and-match.gd" id="2"] @@ -9,4 +9,7 @@ position = Vector2(532.982, 480.287) scale = Vector2(0.441932, 0.441932) skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 script = ExtResource( "2" ) diff --git a/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn b/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn index c22bfa03d..9028020f7 100644 --- a/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn +++ b/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=3 format=3 uid="uid://ca3tp7fuv1i77"] +[gd_scene load_steps=3 format=3 uid="uid://bgdpghp11j3kg"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="1"] -[ext_resource type="Script" path="res://examples/04-simple-input/simple-input.gd" id="2_lsf60"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] +[ext_resource type="Script" path="res://examples/04-simple-input/spineboy-simple-input.gd" id="2"] [node name="Node2D" type="Node2D"] @@ -9,4 +9,7 @@ position = Vector2(501.503, 472.035) scale = Vector2(0.518624, 0.518624) skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2_lsf60" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 +script = ExtResource( "2" ) diff --git a/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn.depren b/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn.depren deleted file mode 100644 index 8669411b4..000000000 --- a/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn.depren +++ /dev/null @@ -1,12 +0,0 @@ -[gd_scene load_steps=3 format=3] - -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="1"] -[ext_resource type="Script" path="res://examples/04-simple-input/simple-input.gd" id="2"] - -[node name="Node2D" type="Node2D"] - -[node name="Spineboy" type="SpineSprite" parent="."] -position = Vector2( 501.503, 472.035 ) -scale = Vector2( 0.518624, 0.518624 ) -skeleton_data_res = ExtResource( 1 ) -script = ExtResource( 2 ) diff --git a/spine-godot/example-v4/examples/04-simple-input/simple-input.gd b/spine-godot/example-v4/examples/04-simple-input/spineboy-simple-input.gd similarity index 97% rename from spine-godot/example-v4/examples/04-simple-input/simple-input.gd rename to spine-godot/example-v4/examples/04-simple-input/spineboy-simple-input.gd index 5b0277060..7e1ae9dc7 100644 --- a/spine-godot/example-v4/examples/04-simple-input/simple-input.gd +++ b/spine-godot/example-v4/examples/04-simple-input/spineboy-simple-input.gd @@ -1,6 +1,6 @@ extends SpineSprite -func _ready(): +func _ready(): get_animation_state().set_animation("idle", true, 0) func _process(_delta): diff --git a/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd index 948790a0b..d863e7d8c 100644 --- a/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd +++ b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd @@ -1,11 +1,11 @@ extends Node2D @onready var spineboy: SpineSprite = $Spineboy - -func _before_world_transforms_change(_sprite): - spineboy.set_global_bone_transform("crosshair", Transform2D(0, get_viewport().get_mouse_position())) +@onready var crosshair_bone: SpineBoneNode = $Spineboy/CrosshairBone func _ready(): spineboy.get_animation_state().set_animation("walk", true, 0) spineboy.get_animation_state().set_animation("aim", true, 1) - spineboy.connect("before_world_transforms_change", Callable(self, "_before_world_transforms_change")) + +func _process(_delta): + crosshair_bone.global_position = get_viewport().get_mouse_position() diff --git a/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn index 3e1d4ef71..b28780a3a 100644 --- a/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn +++ b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn @@ -1,12 +1,22 @@ -[gd_scene load_steps=3 format=3 uid="uid://bfkgc16yqcdyi"] +[gd_scene load_steps=3 format=3 uid="uid://borp2l17n5xw1"] [ext_resource type="Script" path="res://examples/05-mouse-following/mouse-following.gd" id="1"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="2"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] [node name="Node2D" type="Node2D"] script = ExtResource( "1" ) [node name="Spineboy" type="SpineSprite" parent="."] position = Vector2(481, 457) -scale = Vector2(0.457952, 0.457952) +scale = Vector2(0.5, 0.5) skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="CrosshairBone" type="SpineBoneNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(302.333, -569.714) +rotation = -0.000872665 +bone_name = "crosshair" +bone_mode = 1 diff --git a/spine-godot/example-v4/examples/06-bone-following/bone-following.gd b/spine-godot/example-v4/examples/06-bone-following/bone-following.gd index 914698136..7294ee6a4 100644 --- a/spine-godot/example-v4/examples/06-bone-following/bone-following.gd +++ b/spine-godot/example-v4/examples/06-bone-following/bone-following.gd @@ -1,11 +1,5 @@ extends Node2D -@onready var spineboy: SpineSprite = $Spineboy -@onready var sprite: Sprite2D = $Spineboy/Sprite - -func _world_transforms_changed(_sprite): - sprite.global_transform = spineboy.get_global_bone_transform("gun-tip") - func _ready(): - spineboy.get_animation_state().set_animation("walk", true, 0) - spineboy.connect("world_transforms_changed", Callable(self, "_world_transforms_changed")) + var spineboy: SpineSprite = $Spineboy + spineboy.get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn b/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn index 641d8d919..5694deae2 100644 --- a/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn +++ b/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=4 format=3 uid="uid://dm0y2i1jdd28x"] +[gd_scene load_steps=4 format=3 uid="uid://bir7yvf0qwdge"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] [ext_resource type="Script" path="res://examples/06-bone-following/bone-following.gd" id="2"] [ext_resource type="Texture2D" uid="uid://8ud5n2ywp5ba" path="res://icon.png" id="3"] @@ -11,7 +11,15 @@ script = ExtResource( "2" ) position = Vector2(478, 483) scale = Vector2(0.58461, 0.58461) skeleton_data_res = ExtResource( "1" ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 -[node name="Sprite" type="Sprite2D" parent="Spineboy"] -position = Vector2(20, 20) +[node name="GunTipBone" type="SpineBoneNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(214.298, -162.047) +rotation = 0.713316 +bone_name = "gun-tip" + +[node name="Sprite" type="Sprite2D" parent="Spineboy/GunTipBone"] texture = ExtResource( "3" ) diff --git a/spine-godot/example-v4/examples/07-slot-node/slot-node.gd b/spine-godot/example-v4/examples/07-slot-node/slot-node.gd index deff21a0f..fd5a2770b 100644 --- a/spine-godot/example-v4/examples/07-slot-node/slot-node.gd +++ b/spine-godot/example-v4/examples/07-slot-node/slot-node.gd @@ -1,10 +1,10 @@ extends Node2D @onready var spineboy: SpineSprite = $Spineboy -@onready var raptor: SpineSprite = $Spineboy/SlotNodeGun/Raptor -@onready var tiny_spineboy: SpineSprite = $Spineboy/SlotNodeFrontFist/TinySpineboy +@onready var raptor: SpineSprite = $Spineboy/GunSlot/Raptor +@onready var tiny_spineboy: SpineSprite = $Spineboy/FrontFistSlot/TinySpineboy -func _ready(): +func _ready(): var entry = spineboy.get_animation_state().set_animation("run", true, 0) entry.set_time_scale(0.1) raptor.get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn b/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn index a0cc54d21..4eac5e614 100644 --- a/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn +++ b/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn @@ -1,35 +1,56 @@ -[gd_scene load_steps=4 format=3 uid="uid://ca6sxv2ecmfue"] +[gd_scene load_steps=5 format=3 uid="uid://bhht8dees2pyq"] [ext_resource type="Script" path="res://examples/07-slot-node/slot-node.gd" id="1"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="2"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raprot-data.tres" id="3"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raptor-data.tres" id="3"] +[ext_resource type="Texture2D" uid="uid://8ud5n2ywp5ba" path="res://icon.png" id="4"] [node name="Node2D" type="Node2D"] script = ExtResource( "1" ) [node name="Spineboy" type="SpineSprite" parent="."] -position = Vector2(506, 480) +position = Vector2(474, 506) scale = Vector2(0.560712, 0.560712) skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 -[node name="SlotNodeGun" type="SpineSlotNode" parent="Spineboy"] -position = Vector2(40.8752, -276.036) +[node name="GunSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(40.8753, -276.036) rotation = 0.837234 -scale = Vector2(1, 1) slot_name = "gun" -[node name="Raptor" type="SpineSprite" parent="Spineboy/SlotNodeGun"] +[node name="Raptor" type="SpineSprite" parent="Spineboy/GunSlot"] position = Vector2(84.6909, -67.9174) scale = Vector2(0.193472, 0.193472) skeleton_data_res = ExtResource( "3" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 -[node name="SlotNodeFrontFist" type="SpineSlotNode" parent="Spineboy"] +[node name="EyeSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(-23.4598, -402.301) +rotation = -1.71793 +slot_name = "eye" + +[node name="Sprite" type="Sprite2D" parent="Spineboy/EyeSlot"] +position = Vector2(84.4734, 43.4469) +rotation = 1.66344 +texture = ExtResource( "4" ) + +[node name="FrontFistSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true position = Vector2(-29.0298, -241.577) rotation = 0.995187 -scale = Vector2(1, 1) slot_name = "front-fist" -[node name="TinySpineboy" type="SpineSprite" parent="Spineboy/SlotNodeFrontFist"] +[node name="TinySpineboy" type="SpineSprite" parent="Spineboy/FrontFistSlot"] position = Vector2(-2.64624, -10.8111) scale = Vector2(0.193389, 0.193389) skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 diff --git a/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn b/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn index f8ab651b9..d0cf5249e 100644 --- a/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn +++ b/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn @@ -1,66 +1,10 @@ -[gd_scene load_steps=68 format=3 uid="uid://fcipqvb85s5i"] +[gd_scene load_steps=68 format=3 uid="uid://dmddd1ll1y0bm"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] [ext_resource type="Script" path="res://examples/08-animation-player/animation-player.gd" id="2"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raprot-data.tres" id="3"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raptor-data.tres" id="3"] -[sub_resource type="Animation" id="Animation_vh56d"] -resource_name = "RESET" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [""] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_tq58h"] -resource_name = "aim" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["aim"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_cpn6e"] +[sub_resource type="Animation" id="Animation_t6m4d"] resource_name = "aim_looped" length = 0.5 tracks/0/type = "value" @@ -88,619 +32,7 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_m70rh"] -resource_name = "death" -length = 4.9333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["death"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_d4bq8"] -resource_name = "death_looped" -length = 4.9333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["death"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_3tqhd"] -resource_name = "hoverboard_looped" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["hoverboard"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_uplv3"] -resource_name = "hoverboard" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["hoverboard"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_1igd7"] -resource_name = "idle-turn" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["idle-turn"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_iqvf4"] -resource_name = "idle-turn_looped" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["idle-turn"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_jpsxx"] -resource_name = "idle_looped" -length = 1.6667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["idle"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_augco"] -resource_name = "jump" -length = 1.3333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["jump"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_3gkte"] -resource_name = "walk_looped" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_767vi"] -resource_name = "run-to-idle_looped" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run-to-idle"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_mtvx4"] -resource_name = "jump_looped" -length = 1.3333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["jump"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_vbgmx"] -resource_name = "shoot_looped" -length = 0.6333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["shoot"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_3xhvt"] -resource_name = "run" -length = 0.6667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_i46ac"] -resource_name = "shoot" -length = 0.6333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["shoot"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_v8te4"] -resource_name = "run_looped" -length = 0.6667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_5c540"] -resource_name = "run-to-idle" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run-to-idle"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_6lguq"] -resource_name = "walk" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_2f8bx"] -resource_name = "portal" -length = 3.1667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["portal"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_cq50x"] -resource_name = "portal_looped" -length = 3.1667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["portal"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_8q56c"] -resource_name = "idle" -length = 1.6667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["idle"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_k478t"] -_data = { -"-- Empty --": SubResource( "Animation_vh56d" ), -"RESET": SubResource( "Animation_vh56d" ), -"aim": SubResource( "Animation_tq58h" ), -"aim_looped": SubResource( "Animation_cpn6e" ), -"death": SubResource( "Animation_m70rh" ), -"death_looped": SubResource( "Animation_d4bq8" ), -"hoverboard": SubResource( "Animation_uplv3" ), -"hoverboard_looped": SubResource( "Animation_3tqhd" ), -"idle": SubResource( "Animation_8q56c" ), -"idle-turn": SubResource( "Animation_1igd7" ), -"idle-turn_looped": SubResource( "Animation_iqvf4" ), -"idle_looped": SubResource( "Animation_jpsxx" ), -"jump": SubResource( "Animation_augco" ), -"jump_looped": SubResource( "Animation_mtvx4" ), -"portal": SubResource( "Animation_2f8bx" ), -"portal_looped": SubResource( "Animation_cq50x" ), -"run": SubResource( "Animation_3xhvt" ), -"run-to-idle": SubResource( "Animation_5c540" ), -"run-to-idle_looped": SubResource( "Animation_767vi" ), -"run_looped": SubResource( "Animation_v8te4" ), -"shoot": SubResource( "Animation_i46ac" ), -"shoot_looped": SubResource( "Animation_vbgmx" ), -"walk": SubResource( "Animation_6lguq" ), -"walk_looped": SubResource( "Animation_3gkte" ) -} - -[sub_resource type="Animation" id="Animation_hs78f"] -resource_name = "RESET" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [""] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_m0isf"] +[sub_resource type="Animation" id="Animation_njcku"] resource_name = "aim" length = 0.5 tracks/0/type = "value" @@ -728,63 +60,7 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="Animation" id="Animation_75tfa"] -resource_name = "aim_looped" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["aim"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_xxofi"] -resource_name = "death" -length = 4.9333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["death"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_ps6wu"] +[sub_resource type="Animation" id="Animation_uj85l"] resource_name = "death_looped" length = 4.9333 tracks/0/type = "value" @@ -812,7 +88,35 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_15n3r"] +[sub_resource type="Animation" id="Animation_irg42"] +resource_name = "death" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_u0h4m"] resource_name = "hoverboard_looped" tracks/0/type = "value" tracks/0/imported = false @@ -839,7 +143,7 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_jcqwl"] +[sub_resource type="Animation" id="Animation_ksgd8"] resource_name = "hoverboard" tracks/0/type = "value" tracks/0/imported = false @@ -866,63 +170,7 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="Animation" id="Animation_31fuy"] -resource_name = "idle-turn" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["idle-turn"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_ga7d5"] -resource_name = "idle-turn_looped" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["idle-turn"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_det0x"] +[sub_resource type="Animation" id="Animation_onrph"] resource_name = "idle_looped" length = 1.6667 tracks/0/type = "value" @@ -950,341 +198,7 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_cy3wk"] -resource_name = "jump" -length = 1.3333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["jump"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_osmj8"] -resource_name = "walk_looped" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_jut76"] -resource_name = "run-to-idle_looped" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run-to-idle"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_8g47l"] -resource_name = "jump_looped" -length = 1.3333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["jump"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_lpen1"] -resource_name = "shoot_looped" -length = 0.6333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["shoot"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_52y2x"] -resource_name = "run" -length = 0.6667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_a8wgw"] -resource_name = "shoot" -length = 0.6333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["shoot"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_anaa4"] -resource_name = "run_looped" -length = 0.6667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_0xmxf"] -resource_name = "run-to-idle" -length = 0.2667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["run-to-idle"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_plekw"] -resource_name = "walk" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_2grji"] -resource_name = "portal" -length = 3.1667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["portal"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_hs51w"] -resource_name = "portal_looped" -length = 3.1667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["portal"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_bga7o"] +[sub_resource type="Animation" id="Animation_uq46m"] resource_name = "idle" length = 1.6667 tracks/0/type = "value" @@ -1312,35 +226,397 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="AnimationLibrary" id="AnimationLibrary_4gbc5"] -_data = { -"-- Empty --": SubResource( "Animation_hs78f" ), -"RESET": SubResource( "Animation_hs78f" ), -"aim": SubResource( "Animation_m0isf" ), -"aim_looped": SubResource( "Animation_75tfa" ), -"death": SubResource( "Animation_xxofi" ), -"death_looped": SubResource( "Animation_ps6wu" ), -"hoverboard": SubResource( "Animation_jcqwl" ), -"hoverboard_looped": SubResource( "Animation_15n3r" ), -"idle": SubResource( "Animation_bga7o" ), -"idle-turn": SubResource( "Animation_31fuy" ), -"idle-turn_looped": SubResource( "Animation_ga7d5" ), -"idle_looped": SubResource( "Animation_det0x" ), -"jump": SubResource( "Animation_cy3wk" ), -"jump_looped": SubResource( "Animation_8g47l" ), -"portal": SubResource( "Animation_2grji" ), -"portal_looped": SubResource( "Animation_hs51w" ), -"run": SubResource( "Animation_52y2x" ), -"run-to-idle": SubResource( "Animation_0xmxf" ), -"run-to-idle_looped": SubResource( "Animation_jut76" ), -"run_looped": SubResource( "Animation_anaa4" ), -"shoot": SubResource( "Animation_a8wgw" ), -"shoot_looped": SubResource( "Animation_lpen1" ), -"walk": SubResource( "Animation_plekw" ), -"walk_looped": SubResource( "Animation_osmj8" ) +[sub_resource type="Animation" id="Animation_vm3do"] +resource_name = "idle-turn_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] } -[sub_resource type="Animation" id="Animation_ttqhk"] +[sub_resource type="Animation" id="Animation_tlrtt"] +resource_name = "idle-turn" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_8gf4p"] +resource_name = "jump_looped" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_e3mt7"] +resource_name = "jump" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_q7d0d"] +resource_name = "portal_looped" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_hu1qx"] +resource_name = "portal" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_4qvwn"] +resource_name = "run_looped" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_rcbj7"] +resource_name = "run" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_xaopv"] +resource_name = "run-to-idle_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_hhaj8"] +resource_name = "run-to-idle" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_2epiy"] +resource_name = "shoot_looped" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_xvf75"] +resource_name = "shoot" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_ailgk"] +resource_name = "walk_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_1ifml"] +resource_name = "walk" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_13jvi"] resource_name = "RESET" length = 0.5 tracks/0/type = "value" @@ -1368,37 +644,37 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="Animation" id="Animation_ahg4o"] -resource_name = "jump" -length = 1.53333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["jump"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_3juul"] +_data = { +"-- Empty --": SubResource( "Animation_13jvi" ), +"RESET": SubResource( "Animation_13jvi" ), +"aim": SubResource( "Animation_njcku" ), +"aim_looped": SubResource( "Animation_t6m4d" ), +"death": SubResource( "Animation_irg42" ), +"death_looped": SubResource( "Animation_uj85l" ), +"hoverboard": SubResource( "Animation_ksgd8" ), +"hoverboard_looped": SubResource( "Animation_u0h4m" ), +"idle": SubResource( "Animation_uq46m" ), +"idle-turn": SubResource( "Animation_tlrtt" ), +"idle-turn_looped": SubResource( "Animation_vm3do" ), +"idle_looped": SubResource( "Animation_onrph" ), +"jump": SubResource( "Animation_e3mt7" ), +"jump_looped": SubResource( "Animation_8gf4p" ), +"portal": SubResource( "Animation_hu1qx" ), +"portal_looped": SubResource( "Animation_q7d0d" ), +"run": SubResource( "Animation_rcbj7" ), +"run-to-idle": SubResource( "Animation_hhaj8" ), +"run-to-idle_looped": SubResource( "Animation_xaopv" ), +"run_looped": SubResource( "Animation_4qvwn" ), +"shoot": SubResource( "Animation_xvf75" ), +"shoot_looped": SubResource( "Animation_2epiy" ), +"walk": SubResource( "Animation_1ifml" ), +"walk_looped": SubResource( "Animation_ailgk" ) } -[sub_resource type="Animation" id="Animation_yhcqv"] -resource_name = "walk_looped" -length = 1.26667 +[sub_resource type="Animation" id="Animation_43jug"] +resource_name = "aim_looped" +length = 0.5 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1409,7 +685,7 @@ tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": ["walk"] +"values": ["aim"] } tracks/1/type = "value" tracks/1/imported = false @@ -1424,9 +700,259 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_6ndxs"] +[sub_resource type="Animation" id="Animation_npdlv"] +resource_name = "aim" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["aim"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_v5dry"] +resource_name = "death_looped" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_wthcu"] +resource_name = "death" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_0t4px"] +resource_name = "hoverboard_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["hoverboard"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_cflga"] +resource_name = "hoverboard" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["hoverboard"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_4l5af"] +resource_name = "idle_looped" +length = 1.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_3kd2q"] +resource_name = "idle" +length = 1.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_pcovu"] +resource_name = "idle-turn_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ji8c3"] +resource_name = "idle-turn" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_hxqi7"] resource_name = "jump_looped" -length = 1.53333 +length = 1.3333 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1452,9 +978,287 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_ti3mg"] +[sub_resource type="Animation" id="Animation_h822y"] +resource_name = "jump" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_8f1h5"] +resource_name = "portal_looped" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_i0wgj"] +resource_name = "portal" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_0q41s"] +resource_name = "run_looped" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_og3lw"] +resource_name = "run" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_q7ndl"] +resource_name = "run-to-idle_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_nxlcc"] +resource_name = "run-to-idle" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_riqly"] +resource_name = "shoot_looped" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_e7tup"] +resource_name = "shoot" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_5q6ru"] +resource_name = "walk_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_rbpim"] resource_name = "walk" -length = 1.26667 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1480,9 +1284,9 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="Animation" id="Animation_3ek57"] -resource_name = "roar_looped" -length = 2.13333 +[sub_resource type="Animation" id="Animation_n4owa"] +resource_name = "RESET" +length = 0.5 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1493,7 +1297,7 @@ tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": ["roar"] +"values": [""] } tracks/1/type = "value" tracks/1/imported = false @@ -1505,10 +1309,38 @@ tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [true] +"values": [false] } -[sub_resource type="Animation" id="Animation_mu8jo"] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_weodw"] +_data = { +"-- Empty --": SubResource( "Animation_n4owa" ), +"RESET": SubResource( "Animation_n4owa" ), +"aim": SubResource( "Animation_npdlv" ), +"aim_looped": SubResource( "Animation_43jug" ), +"death": SubResource( "Animation_wthcu" ), +"death_looped": SubResource( "Animation_v5dry" ), +"hoverboard": SubResource( "Animation_cflga" ), +"hoverboard_looped": SubResource( "Animation_0t4px" ), +"idle": SubResource( "Animation_3kd2q" ), +"idle-turn": SubResource( "Animation_ji8c3" ), +"idle-turn_looped": SubResource( "Animation_pcovu" ), +"idle_looped": SubResource( "Animation_4l5af" ), +"jump": SubResource( "Animation_h822y" ), +"jump_looped": SubResource( "Animation_hxqi7" ), +"portal": SubResource( "Animation_i0wgj" ), +"portal_looped": SubResource( "Animation_8f1h5" ), +"run": SubResource( "Animation_og3lw" ), +"run-to-idle": SubResource( "Animation_nxlcc" ), +"run-to-idle_looped": SubResource( "Animation_q7ndl" ), +"run_looped": SubResource( "Animation_0q41s" ), +"shoot": SubResource( "Animation_e7tup" ), +"shoot_looped": SubResource( "Animation_riqly" ), +"walk": SubResource( "Animation_rbpim" ), +"walk_looped": SubResource( "Animation_5q6ru" ) +} + +[sub_resource type="Animation" id="Animation_g0fba"] resource_name = "gun-grab_looped" length = 0.666667 tracks/0/type = "value" @@ -1536,7 +1368,7 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_meqwn"] +[sub_resource type="Animation" id="Animation_tnmwm"] resource_name = "gun-grab" length = 0.666667 tracks/0/type = "value" @@ -1564,35 +1396,7 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="Animation" id="Animation_f4yg0"] -resource_name = "roar" -length = 2.13333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:animation_name") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": ["roar"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath(".:loop") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_dq6ld"] +[sub_resource type="Animation" id="Animation_scefx"] resource_name = "gun-holster_looped" length = 0.666667 tracks/0/type = "value" @@ -1620,7 +1424,7 @@ tracks/1/keys = { "values": [true] } -[sub_resource type="Animation" id="Animation_ff37s"] +[sub_resource type="Animation" id="Animation_6lq4v"] resource_name = "gun-holster" length = 0.666667 tracks/0/type = "value" @@ -1648,25 +1452,219 @@ tracks/1/keys = { "values": [false] } -[sub_resource type="AnimationLibrary" id="AnimationLibrary_dvxb4"] -_data = { -"-- Empty --": SubResource( "Animation_ttqhk" ), -"RESET": SubResource( "Animation_ttqhk" ), -"gun-grab": SubResource( "Animation_meqwn" ), -"gun-grab_looped": SubResource( "Animation_mu8jo" ), -"gun-holster": SubResource( "Animation_ff37s" ), -"gun-holster_looped": SubResource( "Animation_dq6ld" ), -"jump": SubResource( "Animation_ahg4o" ), -"jump_looped": SubResource( "Animation_6ndxs" ), -"roar": SubResource( "Animation_f4yg0" ), -"roar_looped": SubResource( "Animation_3ek57" ), -"walk": SubResource( "Animation_ti3mg" ), -"walk_looped": SubResource( "Animation_yhcqv" ) +[sub_resource type="Animation" id="Animation_b7ns0"] +resource_name = "jump_looped" +length = 1.53333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] } -[sub_resource type="Animation" id="83"] -resource_name = "slow-moonwalk" -length = 5.0 +[sub_resource type="Animation" id="Animation_l4kgf"] +resource_name = "jump" +length = 1.53333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_jt8r5"] +resource_name = "roar_looped" +length = 2.13333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["roar"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_wlr0r"] +resource_name = "roar" +length = 2.13333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["roar"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_0e04p"] +resource_name = "walk_looped" +length = 1.26667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ysb1x"] +resource_name = "walk" +length = 1.26667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_j5g3u"] +resource_name = "RESET" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [""] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_nir4m"] +_data = { +"-- Empty --": SubResource( "Animation_j5g3u" ), +"RESET": SubResource( "Animation_j5g3u" ), +"gun-grab": SubResource( "Animation_tnmwm" ), +"gun-grab_looped": SubResource( "Animation_g0fba" ), +"gun-holster": SubResource( "Animation_6lq4v" ), +"gun-holster_looped": SubResource( "Animation_scefx" ), +"jump": SubResource( "Animation_l4kgf" ), +"jump_looped": SubResource( "Animation_b7ns0" ), +"roar": SubResource( "Animation_wlr0r" ), +"roar_looped": SubResource( "Animation_jt8r5" ), +"walk": SubResource( "Animation_ysb1x" ), +"walk_looped": SubResource( "Animation_0e04p" ) +} + +[sub_resource type="Animation" id="25"] tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1674,44 +1672,70 @@ tracks/0/path = NodePath("Spineboy:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 5), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(905, 565), Vector2(70, 565)] +"values": [Vector2(72.0001, 520)] } -tracks/1/type = "animation" +tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Spineboy/SpineAnimationTrack/Spineboy Track 0") +tracks/1/path = NodePath("Raptor:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"clips": PackedStringArray("walk_looped"), -"times": PackedFloat32Array(0) +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1284, 520)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:reverse") +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:mix_duration") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] +"update": 0, +"values": [-1.0] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:reverse") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Raptor/SpineAnimationTrack:mix_duration") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), "update": 0, -"values": [0.5] +"values": [-1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] } [sub_resource type="Animation" id="1"] @@ -1809,7 +1833,9 @@ tracks/7/keys = { "values": [0.2] } -[sub_resource type="Animation" id="25"] +[sub_resource type="Animation" id="83"] +resource_name = "slow-moonwalk" +length = 5.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1817,86 +1843,63 @@ tracks/0/path = NodePath("Spineboy:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +"times": PackedFloat32Array(0, 5), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(72.0001, 520)] +"values": [Vector2(905, 565), Vector2(70, 565)] } -tracks/1/type = "value" +tracks/1/type = "animation" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Raptor:position") +tracks/1/path = NodePath("Spineboy/SpineAnimationTrack/Spineboy Track 0") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1284, 520)] +"clips": PackedStringArray("walk_looped"), +"times": PackedFloat32Array(0) } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:mix_duration") +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:reverse") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"update": 0, -"values": [-1.0] +"update": 1, +"values": [true] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:reverse") +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Raptor/SpineAnimationTrack:mix_duration") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), "update": 0, -"values": [-1.0] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] +"values": [0.5] } -[sub_resource type="AnimationLibrary" id="AnimationLibrary_ck2kg"] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_3lgey"] _data = { "RESET": SubResource( "25" ), "cutscene": SubResource( "1" ), "slow-moonwalk": SubResource( "83" ) } -[node name="Node2D" type="Node2D"] +[node name="Node2D2" type="Node2D"] script = ExtResource( "2" ) [node name="Spineboy" type="SpineSprite" parent="."] position = Vector2(72.0001, 520) scale = Vector2(0.323942, 0.323942) skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 [node name="SpineAnimationTrack" type="SpineAnimationTrack" parent="Spineboy"] track_index = 0 @@ -1904,7 +1907,7 @@ debug = true [node name="Spineboy Track 0" type="AnimationPlayer" parent="Spineboy/SpineAnimationTrack"] libraries = { -"": SubResource( "AnimationLibrary_k478t" ) +"": SubResource( "AnimationLibrary_3juul" ) } [node name="SpineAnimationTrack2" type="SpineAnimationTrack" parent="Spineboy"] @@ -1914,23 +1917,26 @@ debug = true [node name="Spineboy Track 1" type="AnimationPlayer" parent="Spineboy/SpineAnimationTrack2"] libraries = { -"": SubResource( "AnimationLibrary_4gbc5" ) +"": SubResource( "AnimationLibrary_weodw" ) } [node name="Raptor" type="SpineSprite" parent="."] position = Vector2(1284, 520) scale = Vector2(-0.328761, 0.328761) skeleton_data_res = ExtResource( "3" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 [node name="SpineAnimationTrack" type="SpineAnimationTrack" parent="Raptor"] track_index = 0 [node name="Raptor Track 0" type="AnimationPlayer" parent="Raptor/SpineAnimationTrack"] libraries = { -"": SubResource( "AnimationLibrary_dvxb4" ) +"": SubResource( "AnimationLibrary_nir4m" ) } [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { -"": SubResource( "AnimationLibrary_ck2kg" ) +"": SubResource( "AnimationLibrary_3lgey" ) } diff --git a/spine-godot/example-v4/examples/09-custom-material/custom-material.tscn b/spine-godot/example-v4/examples/09-custom-material/custom-material.tscn new file mode 100644 index 000000000..5ef3dc06d --- /dev/null +++ b/spine-godot/example-v4/examples/09-custom-material/custom-material.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=6 format=3 uid="uid://b4p2vn7bwm52a"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] + +[sub_resource type="Shader" id="1"] +code = "shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, UV); + COLOR.r = 0.0; +}" + +[sub_resource type="ShaderMaterial" id="2"] +shader = SubResource( "1" ) + +[sub_resource type="Shader" id="3"] +code = "shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, UV); + COLOR.b = 0.0; +}" + +[sub_resource type="ShaderMaterial" id="4"] +shader = SubResource( "3" ) + +[node name="Node2D" type="Node2D"] + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2(501, 507) +scale = Vector2(0.546374, 0.546373) +skeleton_data_res = ExtResource( "1" ) +normal_material = SubResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="GunSlot" type="SpineSlotNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2(40.8753, -276.036) +rotation = 0.837234 +slot_name = "gun" +normal_material = SubResource( "4" ) diff --git a/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.gd b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.gd new file mode 100644 index 000000000..92540af3a --- /dev/null +++ b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _ready(): + $SpineSprite.get_animation_state().set_animation("walk"); diff --git a/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.tscn b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.tscn new file mode 100644 index 000000000..296b04007 --- /dev/null +++ b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=4 format=3 uid="uid://rt2llskmx7xm"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raptor-data.tres" id="1"] +[ext_resource type="Texture2D" uid="uid://cggfs567rn1ay" path="res://assets/raptor/light-sprite.png" id="2"] +[ext_resource type="Script" path="res://examples/10-2d-lighting/2d-lighting.gd" id="3"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "3" ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2(576, 506) +scale = Vector2(0.458967, 0.458967) +skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="Light2D" type="PointLight2D" parent="."] +position = Vector2(822, 270) +scale = Vector2(1.51563, 1.51563) +color = Color(1, 0.0117647, 0.0117647, 1) +texture = ExtResource( "2" ) + +[node name="CanvasModulate" type="CanvasModulate" parent="."] +color = Color(0.145098, 0.0980392, 0.0980392, 1) diff --git a/spine-godot/example-v4/examples/11-bone-node/bone-node.gd b/spine-godot/example-v4/examples/11-bone-node/bone-node.gd new file mode 100644 index 000000000..a5d721a3a --- /dev/null +++ b/spine-godot/example-v4/examples/11-bone-node/bone-node.gd @@ -0,0 +1,19 @@ +extends Node2D + +@onready var spineboy = $SpineSprite +@onready var center_bone = $SpineSprite/HoverboardCenterBone +@onready var center_ray = $SpineSprite/HoverboardCenterBone/RayCast2D +@onready var target_bone = $SpineSprite/HoverboardTargetBone +@onready var target_ray = $SpineSprite/HoverboardTargetBone/RayCast2D + +func _ready(): + spineboy.get_animation_state().set_animation("hoverboard", true, 0) + +func _physics_process(delta): + if target_ray.is_colliding(): + target_bone.global_position.y = target_ray.get_collision_point().y - 50 + if center_ray.is_colliding(): + center_bone.global_position.y = center_ray.get_collision_point().y - 50 + + spineboy.global_position.x += delta * 150; + spineboy.global_position.y = center_bone.global_position.y diff --git a/spine-godot/example-v4/examples/11-bone-node/bone-node.tscn b/spine-godot/example-v4/examples/11-bone-node/bone-node.tscn new file mode 100644 index 000000000..8a7a337d1 --- /dev/null +++ b/spine-godot/example-v4/examples/11-bone-node/bone-node.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=3 format=3 uid="uid://chrw4i0nksphn"] + +[ext_resource type="Script" path="res://examples/11-bone-node/bone-node.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "1" ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2(8, 553) +scale = Vector2(0.278096, 0.278096) +skeleton_data_res = ExtResource( "2" ) +update_mode = 1 +preview_animation = "hoverboard" +preview_frame = true +preview_time = 0.0 + +[node name="HoverboardCenterBone" type="SpineBoneNode" parent="SpineSprite"] +show_behind_parent = true +bone_name = "hoverboard-controller" +bone_mode = 1 + +[node name="RayCast2D" type="RayCast2D" parent="SpineSprite/HoverboardCenterBone"] + +[node name="HoverboardTargetBone" type="SpineBoneNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2(262.499, 0) +rotation = -0.000872665 +bone_name = "board-ik" +bone_mode = 1 + +[node name="RayCast2D" type="RayCast2D" parent="SpineSprite/HoverboardTargetBone"] + +[node name="HipBone" type="SpineBoneNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2(0, -169.006) +rotation = -0.000872665 +bone_name = "hip" +bone_mode = 1 + +[node name="Polygon2D" type="Polygon2D" parent="."] +polygon = PackedVector2Array(0, 596, 309, 471, 516, 515, 762, 447, 984, 504, 1023, 505, 1024, 596) + +[node name="StaticBody2D" type="StaticBody2D" parent="Polygon2D"] + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Polygon2D/StaticBody2D"] +polygon = PackedVector2Array(3, 592, 304, 469, 516, 514, 762, 443, 984, 499, 1252, 498, 1280, 596) diff --git a/spine-godot/example-v4/tests/batch-test.tscn b/spine-godot/example-v4/tests/batch-test.tscn index f69b7afb3..0d5ac3bcb 100644 --- a/spine-godot/example-v4/tests/batch-test.tscn +++ b/spine-godot/example-v4/tests/batch-test.tscn @@ -1,583 +1,871 @@ -[gd_scene load_steps=3 format=3 uid="uid://b2hntkowlhaxt"] +[gd_scene load_steps=3 format=2] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="1"] -[ext_resource type="Script" path="res://tests/batch-test.gd" id="2"] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://tests/batch-test.gd" type="Script" id=2] [node name="Node2D" type="Node2D"] rotation = -3.67884e-05 [node name="SpineSprite" type="SpineSprite" parent="."] -position = Vector2(53.8037, 119.483) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 53.8037, 119.483 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite2" type="SpineSprite" parent="."] -position = Vector2(111.488, 119.485) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 111.488, 119.485 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite3" type="SpineSprite" parent="."] -position = Vector2(164.678, 119.487) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 164.678, 119.487 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = true +preview_time = 2.36477e-39 +script = ExtResource( 2 ) [node name="SpineSprite4" type="SpineSprite" parent="."] -position = Vector2(217.119, 121.736) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 217.119, 121.736 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = true +preview_time = 6.85235e-43 +script = ExtResource( 2 ) [node name="SpineSprite5" type="SpineSprite" parent="."] -position = Vector2(277.051, 120.989) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 277.051, 120.989 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite6" type="SpineSprite" parent="."] -position = Vector2(337.733, 118.744) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 337.733, 118.744 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite7" type="SpineSprite" parent="."] -position = Vector2(403.658, 120.994) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 403.658, 120.994 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite8" type="SpineSprite" parent="."] -position = Vector2(464.34, 120.996) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 464.34, 120.996 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite9" type="SpineSprite" parent="."] -position = Vector2(525.021, 120.998) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 525.021, 120.998 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 51.0 +script = ExtResource( 2 ) [node name="SpineSprite10" type="SpineSprite" parent="."] -position = Vector2(589.448, 121.001) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 589.448, 121.001 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite11" type="SpineSprite" parent="."] -position = Vector2(649.381, 121.752) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 649.381, 121.752 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite12" type="SpineSprite" parent="."] -position = Vector2(709.313, 123.253) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 709.313, 123.253 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite13" type="SpineSprite" parent="."] -position = Vector2(769.245, 119.509) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 769.245, 119.509 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite14" type="SpineSprite" parent="."] -position = Vector2(830.676, 119.511) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 830.676, 119.511 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite15" type="SpineSprite" parent="."] -position = Vector2(892.106, 121.761) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 892.106, 121.761 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite16" type="SpineSprite" parent="."] -position = Vector2(953.537, 121.763) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 953.537, 121.763 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite17" type="SpineSprite" parent="."] -position = Vector2(56.0478, 207.883) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 56.0478, 207.883 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite18" type="SpineSprite" parent="."] -position = Vector2(113.733, 207.885) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 113.733, 207.885 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite19" type="SpineSprite" parent="."] -position = Vector2(166.923, 207.887) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 166.923, 207.887 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite20" type="SpineSprite" parent="."] -position = Vector2(219.363, 210.136) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 219.363, 210.136 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite21" type="SpineSprite" parent="."] -position = Vector2(279.295, 209.389) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 279.295, 209.389 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite22" type="SpineSprite" parent="."] -position = Vector2(339.977, 207.144) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 339.977, 207.144 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite23" type="SpineSprite" parent="."] -position = Vector2(405.902, 209.394) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 405.902, 209.394 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite24" type="SpineSprite" parent="."] -position = Vector2(466.584, 209.396) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 466.584, 209.396 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite25" type="SpineSprite" parent="."] -position = Vector2(527.265, 209.399) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 527.265, 209.399 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite26" type="SpineSprite" parent="."] -position = Vector2(591.692, 209.401) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 591.692, 209.401 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite27" type="SpineSprite" parent="."] -position = Vector2(651.625, 210.152) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 651.625, 210.152 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite28" type="SpineSprite" parent="."] -position = Vector2(711.557, 211.653) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 711.557, 211.653 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite29" type="SpineSprite" parent="."] -position = Vector2(771.489, 207.909) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 771.489, 207.909 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite30" type="SpineSprite" parent="."] -position = Vector2(832.92, 207.911) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 832.92, 207.911 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite31" type="SpineSprite" parent="."] -position = Vector2(894.351, 210.161) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 894.351, 210.161 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite32" type="SpineSprite" parent="."] -position = Vector2(955.781, 210.163) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 955.781, 210.163 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite33" type="SpineSprite" parent="."] -position = Vector2(60.5394, 300.778) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 60.5394, 300.778 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite34" type="SpineSprite" parent="."] -position = Vector2(118.224, 300.78) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 118.224, 300.78 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite35" type="SpineSprite" parent="."] -position = Vector2(171.414, 300.782) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 171.414, 300.782 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite36" type="SpineSprite" parent="."] -position = Vector2(223.855, 303.032) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 223.855, 303.032 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite37" type="SpineSprite" parent="."] -position = Vector2(283.787, 302.285) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 283.787, 302.285 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite38" type="SpineSprite" parent="."] -position = Vector2(344.468, 300.039) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 344.468, 300.039 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite39" type="SpineSprite" parent="."] -position = Vector2(410.394, 302.289) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 410.394, 302.289 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite40" type="SpineSprite" parent="."] -position = Vector2(471.075, 302.292) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 471.075, 302.292 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite41" type="SpineSprite" parent="."] -position = Vector2(531.757, 302.294) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 531.757, 302.294 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite42" type="SpineSprite" parent="."] -position = Vector2(596.184, 302.296) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 596.184, 302.296 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite43" type="SpineSprite" parent="."] -position = Vector2(656.116, 303.047) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 656.116, 303.047 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite44" type="SpineSprite" parent="."] -position = Vector2(716.048, 304.548) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 716.048, 304.548 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite45" type="SpineSprite" parent="."] -position = Vector2(775.981, 300.804) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 775.981, 300.804 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite46" type="SpineSprite" parent="."] -position = Vector2(837.411, 300.807) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 837.411, 300.807 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite47" type="SpineSprite" parent="."] -position = Vector2(898.842, 303.056) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 898.842, 303.056 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite48" type="SpineSprite" parent="."] -position = Vector2(960.273, 303.059) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 960.273, 303.059 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite49" type="SpineSprite" parent="."] -position = Vector2(60.5361, 389.178) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 60.5361, 389.178 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite50" type="SpineSprite" parent="."] -position = Vector2(118.221, 389.18) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 118.221, 389.18 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite51" type="SpineSprite" parent="."] -position = Vector2(171.411, 389.182) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 171.411, 389.182 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite52" type="SpineSprite" parent="."] -position = Vector2(223.851, 391.432) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 223.851, 391.432 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite53" type="SpineSprite" parent="."] -position = Vector2(283.784, 390.685) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 283.784, 390.685 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite54" type="SpineSprite" parent="."] -position = Vector2(344.465, 388.44) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 344.465, 388.44 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite55" type="SpineSprite" parent="."] -position = Vector2(410.391, 390.689) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 410.391, 390.689 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite56" type="SpineSprite" parent="."] -position = Vector2(471.072, 390.692) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 471.072, 390.692 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite57" type="SpineSprite" parent="."] -position = Vector2(531.753, 390.694) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 531.753, 390.694 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite58" type="SpineSprite" parent="."] -position = Vector2(596.181, 390.696) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 596.181, 390.696 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite59" type="SpineSprite" parent="."] -position = Vector2(656.113, 391.448) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 656.113, 391.448 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite60" type="SpineSprite" parent="."] -position = Vector2(716.045, 392.948) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 716.045, 392.948 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite61" type="SpineSprite" parent="."] -position = Vector2(775.978, 389.204) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 775.978, 389.204 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite62" type="SpineSprite" parent="."] -position = Vector2(837.408, 389.207) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 837.408, 389.207 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite63" type="SpineSprite" parent="."] -position = Vector2(898.839, 391.456) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 898.839, 391.456 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite64" type="SpineSprite" parent="."] -position = Vector2(960.269, 391.459) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 960.269, 391.459 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite65" type="SpineSprite" parent="."] -position = Vector2(62.0311, 477.578) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 62.0311, 477.578 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite66" type="SpineSprite" parent="."] -position = Vector2(119.716, 477.581) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 119.716, 477.581 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite67" type="SpineSprite" parent="."] -position = Vector2(172.906, 477.583) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 172.906, 477.583 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite68" type="SpineSprite" parent="."] -position = Vector2(225.346, 479.832) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 225.346, 479.832 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite69" type="SpineSprite" parent="."] -position = Vector2(285.279, 479.085) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 285.279, 479.085 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite70" type="SpineSprite" parent="."] -position = Vector2(345.96, 476.84) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 345.96, 476.84 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite71" type="SpineSprite" parent="."] -position = Vector2(411.886, 479.09) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 411.886, 479.09 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite72" type="SpineSprite" parent="."] -position = Vector2(472.567, 479.092) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 472.567, 479.092 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite73" type="SpineSprite" parent="."] -position = Vector2(533.248, 479.094) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 533.248, 479.094 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite74" type="SpineSprite" parent="."] -position = Vector2(597.676, 479.096) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 597.676, 479.096 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite75" type="SpineSprite" parent="."] -position = Vector2(657.608, 479.848) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 657.608, 479.848 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite76" type="SpineSprite" parent="."] -position = Vector2(717.54, 481.348) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 717.54, 481.348 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite77" type="SpineSprite" parent="."] -position = Vector2(777.473, 477.605) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 777.473, 477.605 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite78" type="SpineSprite" parent="."] -position = Vector2(838.903, 477.607) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 838.903, 477.607 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite79" type="SpineSprite" parent="."] -position = Vector2(900.334, 479.857) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 900.334, 479.857 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite80" type="SpineSprite" parent="."] -position = Vector2(961.765, 479.859) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 961.765, 479.859 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite81" type="SpineSprite" parent="."] -position = Vector2(66.5229, 562.233) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 66.5229, 562.233 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite82" type="SpineSprite" parent="."] -position = Vector2(124.208, 562.235) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 124.208, 562.235 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite83" type="SpineSprite" parent="."] -position = Vector2(177.398, 562.237) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 177.398, 562.237 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite84" type="SpineSprite" parent="."] -position = Vector2(229.838, 564.486) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 229.838, 564.486 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite85" type="SpineSprite" parent="."] -position = Vector2(289.77, 563.74) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 289.77, 563.74 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite86" type="SpineSprite" parent="."] -position = Vector2(350.452, 561.494) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 350.452, 561.494 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite87" type="SpineSprite" parent="."] -position = Vector2(416.377, 563.744) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 416.377, 563.744 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite88" type="SpineSprite" parent="."] -position = Vector2(477.059, 563.746) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 477.059, 563.746 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite89" type="SpineSprite" parent="."] -position = Vector2(537.74, 563.749) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 537.74, 563.749 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite90" type="SpineSprite" parent="."] -position = Vector2(602.167, 563.751) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 602.167, 563.751 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite91" type="SpineSprite" parent="."] -position = Vector2(662.1, 564.502) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 662.1, 564.502 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite92" type="SpineSprite" parent="."] -position = Vector2(722.032, 566.003) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 722.032, 566.003 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite93" type="SpineSprite" parent="."] -position = Vector2(781.964, 562.259) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 781.964, 562.259 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite94" type="SpineSprite" parent="."] -position = Vector2(843.395, 562.261) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 843.395, 562.261 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite95" type="SpineSprite" parent="."] -position = Vector2(904.826, 564.511) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 904.826, 564.511 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) [node name="SpineSprite96" type="SpineSprite" parent="."] -position = Vector2(966.256, 564.513) -scale = Vector2(0.1, 0.1) -skeleton_data_res = ExtResource( "1" ) -script = ExtResource( "2" ) +position = Vector2( 966.256, 564.513 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) diff --git a/spine-godot/example-v4/tests/ragdoll.tscn b/spine-godot/example-v4/tests/ragdoll.tscn new file mode 100644 index 000000000..9f9abfb11 --- /dev/null +++ b/spine-godot/example-v4/tests/ragdoll.tscn @@ -0,0 +1,53 @@ +[gd_scene format=2] + +[node name="Node2D" type="Node2D"] + +[node name="A" type="RigidBody2D" parent="."] +position = Vector2( 483, 158 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="A"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="B" type="RigidBody2D" parent="."] +position = Vector2( 484, 228 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="B"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="C" type="RigidBody2D" parent="."] +position = Vector2( 485, 296 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="C"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="PinJoint2D" type="PinJoint2D" parent="."] +position = Vector2( 484, 189 ) +node_a = NodePath("../A") +node_b = NodePath("../B") +bias = 0.9 +disable_collision = false + +[node name="PinJoint2D2" type="PinJoint2D" parent="."] +position = Vector2( 486, 257 ) +node_a = NodePath("../B") +node_b = NodePath("../C") +bias = 0.9 +disable_collision = false + +[node name="Ground" type="StaticBody2D" parent="."] +position = Vector2( 489, 478 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Ground"] +polygon = PoolVector2Array( -116, -4, 128, -100, 204, 34, -156, 48 ) diff --git a/spine-godot/example-v4/tests/transforms.tscn b/spine-godot/example-v4/tests/transforms.tscn new file mode 100644 index 000000000..faa212623 --- /dev/null +++ b/spine-godot/example-v4/tests/transforms.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://icon.png" type="Texture" id=2] + +[node name="Node2D" type="Node2D"] + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 459.397, 501.236 ) +scale = Vector2( 0.742335, 0.742335 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "aim" +preview_frame = true +preview_time = 0.0 + +[node name="SpineBoneNode" type="SpineBoneNode" parent="SpineSprite"] +position = Vector2( 40.8752, -276.036 ) +rotation = 0.837234 +bone_name = "gun" +bone_mode = 1 +enabled = false +color = Color( 0, 1, 0.0627451, 0.466667 ) + +[node name="Sprite" type="Sprite" parent="SpineSprite/SpineBoneNode"] +visible = false +texture = ExtResource( 2 ) diff --git a/spine-godot/example-v4/tests/unit-tests.tscn b/spine-godot/example-v4/tests/unit-tests.tscn index 4a34a6db4..d7c4a3193 100644 --- a/spine-godot/example-v4/tests/unit-tests.tscn +++ b/spine-godot/example-v4/tests/unit-tests.tscn @@ -1,12 +1,12 @@ -[gd_scene load_steps=3 format=3 uid="uid://32p13eo7undk"] +[gd_scene load_steps=3 format=2] -[ext_resource type="Script" path="res://tests/unit-tests.gd" id="1"] -[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-data-res.tres" id="2"] +[ext_resource path="res://tests/unit-tests.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=2] [node name="Node2D" type="Node2D"] -position = Vector2(496.659, 431.634) -scale = Vector2(0.7, 0.7) +position = Vector2( 496.659, 431.634 ) +scale = Vector2( 0.7, 0.7 ) [node name="SpineSprite" type="SpineSprite" parent="."] -skeleton_data_res = ExtResource( "2" ) -script = ExtResource( "1" ) +skeleton_data_res = ExtResource( 2 ) +script = ExtResource( 1 ) diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp index baacc09a7..95411b4f3 100644 --- a/spine-godot/spine_godot/SpineSprite.cpp +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -396,6 +396,7 @@ bool SpineSprite::_get(const StringName &property, Variant &value) const { } static void update_preview_animation(SpineSprite *sprite, const String &animation, bool frame, float time) { + if (!sprite->get_skeleton().is_valid()) return; sprite->get_skeleton()->set_to_setup_pose(); if (EMPTY(animation) || animation == "-- Empty --") { sprite->get_animation_state()->set_empty_animation(0, 0);