mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
[godot] Cleaned-up and added v4 examples.
This commit is contained in:
parent
323a8b9299
commit
9ce8d5171a
BIN
spine-godot/example-v4/assets/footstep.ogg
Normal file
BIN
spine-godot/example-v4/assets/footstep.ogg
Normal file
Binary file not shown.
16
spine-godot/example-v4/assets/footstep.ogg.import
Normal file
16
spine-godot/example-v4/assets/footstep.ogg.import
Normal file
@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOGGVorbis"
|
||||
uid="uid://btqvnw8fgej4l"
|
||||
path="res://.godot/imported/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/footstep.ogg"
|
||||
dest_files=["res://.godot/imported/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
@ -0,0 +1,10 @@
|
||||
[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://assets/mix-and-match/mix-and-match.atlas" type="SpineAtlasResource" id=1]
|
||||
[ext_resource path="res://assets/mix-and-match/mix-and-match-pro.json" type="SpineSkeletonFileResource" id=2]
|
||||
|
||||
[resource]
|
||||
atlas_res = ExtResource( 1 )
|
||||
skeleton_file_res = ExtResource( 2 )
|
||||
animations = null
|
||||
skins = null
|
||||
8001
spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json
Normal file
8001
spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.json"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://t7fk7pe11l3b"
|
||||
path="res://.godot/imported/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/mix-and-match/mix-and-match-pro.json"
|
||||
dest_files=["res://.godot/imported/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson"]
|
||||
|
||||
[params]
|
||||
|
||||
362
spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas
Normal file
362
spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas
Normal file
@ -0,0 +1,362 @@
|
||||
mix-and-match.png
|
||||
size: 1024, 512
|
||||
filter: Linear, Linear
|
||||
scale: 0.5
|
||||
base-head
|
||||
bounds: 587, 2, 95, 73
|
||||
boy/arm-front
|
||||
bounds: 558, 271, 36, 115
|
||||
boy/backpack
|
||||
bounds: 235, 109, 119, 153
|
||||
boy/backpack-pocket
|
||||
bounds: 328, 73, 34, 62
|
||||
rotate: 90
|
||||
boy/backpack-strap-front
|
||||
bounds: 665, 79, 38, 88
|
||||
boy/backpack-up
|
||||
bounds: 395, 364, 21, 70
|
||||
rotate: 90
|
||||
boy/body
|
||||
bounds: 251, 264, 97, 132
|
||||
rotate: 90
|
||||
boy/boot-ribbon-front
|
||||
bounds: 648, 131, 9, 11
|
||||
boy/collar
|
||||
bounds: 744, 4, 73, 29
|
||||
rotate: 90
|
||||
boy/ear
|
||||
bounds: 383, 109, 19, 23
|
||||
rotate: 90
|
||||
boy/eye-back-low-eyelid
|
||||
bounds: 739, 284, 17, 6
|
||||
rotate: 90
|
||||
boy/eye-back-pupil
|
||||
bounds: 832, 443, 8, 9
|
||||
rotate: 90
|
||||
boy/eye-back-up-eyelid
|
||||
bounds: 558, 264, 23, 5
|
||||
boy/eye-back-up-eyelid-back
|
||||
bounds: 802, 491, 19, 10
|
||||
rotate: 90
|
||||
boy/eye-front-low-eyelid
|
||||
bounds: 386, 363, 22, 7
|
||||
rotate: 90
|
||||
boy/eye-front-pupil
|
||||
bounds: 816, 389, 9, 9
|
||||
boy/eye-front-up-eyelid
|
||||
bounds: 160, 71, 31, 6
|
||||
rotate: 90
|
||||
boy/eye-front-up-eyelid-back
|
||||
bounds: 801, 434, 26, 9
|
||||
rotate: 90
|
||||
boy/eye-iris-back
|
||||
bounds: 618, 264, 17, 17
|
||||
boy/eye-iris-front
|
||||
bounds: 727, 264, 18, 18
|
||||
boy/eye-white-back
|
||||
bounds: 580, 131, 20, 12
|
||||
boy/eye-white-front
|
||||
bounds: 510, 130, 27, 13
|
||||
boy/eyebrow-back
|
||||
bounds: 751, 88, 20, 11
|
||||
rotate: 90
|
||||
boy/eyebrow-front
|
||||
bounds: 483, 130, 25, 11
|
||||
boy/hair-back
|
||||
bounds: 494, 388, 122, 81
|
||||
rotate: 90
|
||||
boy/hair-bangs
|
||||
bounds: 667, 284, 70, 37
|
||||
boy/hair-side
|
||||
bounds: 789, 374, 25, 43
|
||||
boy/hand-backfingers
|
||||
bounds: 467, 364, 19, 21
|
||||
boy/hand-front-fingers
|
||||
bounds: 488, 364, 19, 21
|
||||
boy/hat
|
||||
bounds: 615, 417, 93, 56
|
||||
rotate: 90
|
||||
boy/leg-front
|
||||
bounds: 138, 104, 31, 158
|
||||
boy/mouth-close
|
||||
bounds: 551, 365, 21, 5
|
||||
rotate: 90
|
||||
girl-blue-cape/mouth-close
|
||||
bounds: 551, 365, 21, 5
|
||||
rotate: 90
|
||||
girl-spring-dress/mouth-close
|
||||
bounds: 551, 365, 21, 5
|
||||
rotate: 90
|
||||
girl/mouth-close
|
||||
bounds: 551, 365, 21, 5
|
||||
rotate: 90
|
||||
boy/mouth-smile
|
||||
bounds: 705, 79, 29, 7
|
||||
boy/nose
|
||||
bounds: 836, 473, 17, 10
|
||||
rotate: 90
|
||||
boy/pompom
|
||||
bounds: 747, 273, 48, 43
|
||||
rotate: 90
|
||||
boy/zip
|
||||
bounds: 648, 144, 14, 23
|
||||
girl-blue-cape/back-eyebrow
|
||||
bounds: 602, 131, 18, 12
|
||||
girl-blue-cape/body-dress
|
||||
bounds: 2, 264, 109, 246
|
||||
girl-blue-cape/body-ribbon
|
||||
bounds: 615, 283, 50, 38
|
||||
girl-blue-cape/cape-back
|
||||
bounds: 2, 69, 134, 193
|
||||
girl-blue-cape/cape-back-up
|
||||
bounds: 386, 387, 123, 106
|
||||
rotate: 90
|
||||
girl-blue-cape/cape-ribbon
|
||||
bounds: 675, 264, 50, 18
|
||||
girl-blue-cape/cape-shoulder-back
|
||||
bounds: 751, 110, 49, 59
|
||||
girl-blue-cape/cape-shoulder-front
|
||||
bounds: 113, 264, 62, 76
|
||||
rotate: 90
|
||||
girl-blue-cape/cape-up-front
|
||||
bounds: 399, 264, 98, 117
|
||||
rotate: 90
|
||||
girl-blue-cape/ear
|
||||
bounds: 775, 2, 19, 23
|
||||
girl-spring-dress/ear
|
||||
bounds: 775, 2, 19, 23
|
||||
girl/ear
|
||||
bounds: 775, 2, 19, 23
|
||||
girl-blue-cape/eye-back-low-eyelid
|
||||
bounds: 802, 463, 17, 6
|
||||
girl-spring-dress/eye-back-low-eyelid
|
||||
bounds: 802, 463, 17, 6
|
||||
girl/eye-back-low-eyelid
|
||||
bounds: 802, 463, 17, 6
|
||||
girl-blue-cape/eye-back-pupil
|
||||
bounds: 816, 367, 8, 9
|
||||
girl-spring-dress/eye-back-pupil
|
||||
bounds: 816, 367, 8, 9
|
||||
girl/eye-back-pupil
|
||||
bounds: 816, 367, 8, 9
|
||||
girl-blue-cape/eye-back-up-eyelid
|
||||
bounds: 554, 131, 24, 12
|
||||
girl-spring-dress/eye-back-up-eyelid
|
||||
bounds: 554, 131, 24, 12
|
||||
girl/eye-back-up-eyelid
|
||||
bounds: 554, 131, 24, 12
|
||||
girl-blue-cape/eye-back-up-eyelid-back
|
||||
bounds: 832, 453, 17, 11
|
||||
rotate: 90
|
||||
girl-spring-dress/eye-back-up-eyelid-back
|
||||
bounds: 832, 453, 17, 11
|
||||
rotate: 90
|
||||
girl/eye-back-up-eyelid-back
|
||||
bounds: 832, 453, 17, 11
|
||||
rotate: 90
|
||||
girl-blue-cape/eye-front-low-eyelid
|
||||
bounds: 739, 303, 18, 6
|
||||
rotate: 90
|
||||
girl-spring-dress/eye-front-low-eyelid
|
||||
bounds: 739, 303, 18, 6
|
||||
rotate: 90
|
||||
girl/eye-front-low-eyelid
|
||||
bounds: 739, 303, 18, 6
|
||||
rotate: 90
|
||||
girl-blue-cape/eye-front-pupil
|
||||
bounds: 816, 378, 9, 9
|
||||
girl-spring-dress/eye-front-pupil
|
||||
bounds: 816, 378, 9, 9
|
||||
girl/eye-front-pupil
|
||||
bounds: 816, 378, 9, 9
|
||||
girl-blue-cape/eye-front-up-eyelid
|
||||
bounds: 392, 77, 30, 14
|
||||
rotate: 90
|
||||
girl-spring-dress/eye-front-up-eyelid
|
||||
bounds: 392, 77, 30, 14
|
||||
rotate: 90
|
||||
girl/eye-front-up-eyelid
|
||||
bounds: 392, 77, 30, 14
|
||||
rotate: 90
|
||||
girl-blue-cape/eye-front-up-eyelid-back
|
||||
bounds: 455, 130, 26, 11
|
||||
girl-spring-dress/eye-front-up-eyelid-back
|
||||
bounds: 455, 130, 26, 11
|
||||
girl/eye-front-up-eyelid-back
|
||||
bounds: 455, 130, 26, 11
|
||||
girl-blue-cape/eye-iris-back
|
||||
bounds: 637, 264, 17, 17
|
||||
girl-blue-cape/eye-iris-front
|
||||
bounds: 802, 471, 18, 18
|
||||
girl-blue-cape/eye-white-back
|
||||
bounds: 596, 264, 20, 16
|
||||
girl-spring-dress/eye-white-back
|
||||
bounds: 596, 264, 20, 16
|
||||
girl-blue-cape/eye-white-front
|
||||
bounds: 796, 5, 20, 16
|
||||
rotate: 90
|
||||
girl-spring-dress/eye-white-front
|
||||
bounds: 796, 5, 20, 16
|
||||
rotate: 90
|
||||
girl/eye-white-front
|
||||
bounds: 796, 5, 20, 16
|
||||
rotate: 90
|
||||
girl-blue-cape/front-eyebrow
|
||||
bounds: 608, 149, 18, 12
|
||||
rotate: 90
|
||||
girl-blue-cape/hair-back
|
||||
bounds: 508, 145, 117, 98
|
||||
rotate: 90
|
||||
girl-blue-cape/hair-bangs
|
||||
bounds: 673, 419, 91, 40
|
||||
rotate: 90
|
||||
girl-blue-cape/hair-head-side-back
|
||||
bounds: 196, 331, 30, 52
|
||||
rotate: 90
|
||||
girl-blue-cape/hair-head-side-front
|
||||
bounds: 738, 323, 41, 42
|
||||
girl-blue-cape/hair-side
|
||||
bounds: 473, 3, 36, 71
|
||||
girl-blue-cape/hand-front-fingers
|
||||
bounds: 509, 365, 19, 21
|
||||
girl-spring-dress/hand-front-fingers
|
||||
bounds: 509, 365, 19, 21
|
||||
girl-blue-cape/leg-front
|
||||
bounds: 168, 72, 30, 158
|
||||
rotate: 90
|
||||
girl-blue-cape/mouth-smile
|
||||
bounds: 736, 79, 29, 7
|
||||
girl-spring-dress/mouth-smile
|
||||
bounds: 736, 79, 29, 7
|
||||
girl/mouth-smile
|
||||
bounds: 736, 79, 29, 7
|
||||
girl-blue-cape/nose
|
||||
bounds: 747, 264, 11, 7
|
||||
girl-spring-dress/nose
|
||||
bounds: 747, 264, 11, 7
|
||||
girl/nose
|
||||
bounds: 747, 264, 11, 7
|
||||
girl-blue-cape/sleeve-back
|
||||
bounds: 767, 79, 42, 29
|
||||
girl-blue-cape/sleeve-front
|
||||
bounds: 408, 76, 52, 119
|
||||
rotate: 90
|
||||
girl-spring-dress/arm-front
|
||||
bounds: 596, 282, 17, 111
|
||||
girl-spring-dress/back-eyebrow
|
||||
bounds: 801, 420, 18, 12
|
||||
girl-spring-dress/body-up
|
||||
bounds: 179, 4, 64, 66
|
||||
girl-spring-dress/cloak-down
|
||||
bounds: 775, 27, 50, 50
|
||||
girl-spring-dress/cloak-up
|
||||
bounds: 360, 7, 64, 58
|
||||
rotate: 90
|
||||
girl-spring-dress/eye-iris-back
|
||||
bounds: 656, 264, 17, 17
|
||||
girl-spring-dress/eye-iris-front
|
||||
bounds: 814, 492, 18, 18
|
||||
girl-spring-dress/front-eyebrow
|
||||
bounds: 822, 472, 18, 12
|
||||
rotate: 90
|
||||
girl-spring-dress/hair-back
|
||||
bounds: 196, 363, 147, 93
|
||||
rotate: 90
|
||||
girl-spring-dress/hair-bangs
|
||||
bounds: 696, 326, 91, 40
|
||||
rotate: 90
|
||||
girl-spring-dress/hair-head-side-back
|
||||
bounds: 529, 76, 30, 52
|
||||
girl-spring-dress/hair-head-side-front
|
||||
bounds: 781, 323, 41, 42
|
||||
girl-spring-dress/hair-side
|
||||
bounds: 511, 3, 36, 71
|
||||
girl-spring-dress/leg-front
|
||||
bounds: 171, 104, 30, 158
|
||||
girl-spring-dress/neck
|
||||
bounds: 138, 70, 20, 32
|
||||
girl-spring-dress/shoulder-ribbon
|
||||
bounds: 622, 131, 36, 24
|
||||
rotate: 90
|
||||
girl-spring-dress/skirt
|
||||
bounds: 113, 328, 182, 81
|
||||
rotate: 90
|
||||
girl-spring-dress/underskirt
|
||||
bounds: 2, 2, 175, 65
|
||||
girl/arm-front
|
||||
bounds: 577, 395, 36, 115
|
||||
girl/back-eyebrow
|
||||
bounds: 834, 492, 18, 12
|
||||
rotate: 90
|
||||
girl/bag-base
|
||||
bounds: 191, 264, 62, 58
|
||||
rotate: 90
|
||||
girl/bag-strap-front
|
||||
bounds: 385, 265, 12, 96
|
||||
girl/bag-top
|
||||
bounds: 738, 367, 49, 50
|
||||
girl/body
|
||||
bounds: 356, 130, 97, 132
|
||||
girl/boot-ribbon-front
|
||||
bounds: 539, 130, 13, 13
|
||||
girl/eye-iris-back
|
||||
bounds: 821, 424, 17, 17
|
||||
girl/eye-iris-front
|
||||
bounds: 812, 443, 18, 18
|
||||
girl/eye-white-back
|
||||
bounds: 814, 5, 20, 16
|
||||
rotate: 90
|
||||
girl/front-eyebrow
|
||||
bounds: 816, 400, 18, 12
|
||||
rotate: 90
|
||||
girl/hair-back
|
||||
bounds: 291, 363, 147, 93
|
||||
rotate: 90
|
||||
girl/hair-bangs
|
||||
bounds: 715, 419, 91, 40
|
||||
rotate: 90
|
||||
girl/hair-flap-down-front
|
||||
bounds: 288, 5, 70, 65
|
||||
girl/hair-head-side-back
|
||||
bounds: 561, 77, 30, 52
|
||||
girl/hair-head-side-front
|
||||
bounds: 757, 419, 41, 42
|
||||
rotate: 90
|
||||
girl/hair-patch
|
||||
bounds: 245, 4, 66, 41
|
||||
rotate: 90
|
||||
girl/hair-side
|
||||
bounds: 549, 3, 36, 71
|
||||
girl/hair-strand-back-1
|
||||
bounds: 684, 3, 58, 74
|
||||
girl/hair-strand-back-2
|
||||
bounds: 692, 171, 91, 58
|
||||
rotate: 90
|
||||
girl/hair-strand-back-3
|
||||
bounds: 615, 323, 92, 79
|
||||
rotate: 90
|
||||
girl/hair-strand-front-1
|
||||
bounds: 518, 269, 38, 94
|
||||
girl/hair-strand-front-2
|
||||
bounds: 593, 79, 70, 50
|
||||
girl/hair-strand-front-3
|
||||
bounds: 705, 88, 44, 81
|
||||
girl/hand-front-fingers
|
||||
bounds: 530, 365, 19, 21
|
||||
girl/hat
|
||||
bounds: 608, 169, 93, 82
|
||||
rotate: 90
|
||||
girl/leg-front
|
||||
bounds: 203, 104, 30, 158
|
||||
girl/pompom
|
||||
bounds: 757, 462, 48, 43
|
||||
rotate: 90
|
||||
girl/scarf
|
||||
bounds: 455, 143, 119, 51
|
||||
rotate: 90
|
||||
girl/scarf-back
|
||||
bounds: 420, 2, 72, 51
|
||||
rotate: 90
|
||||
girl/zip
|
||||
bounds: 356, 109, 19, 25
|
||||
rotate: 90
|
||||
@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.atlas"
|
||||
type="SpineAtlasResource"
|
||||
uid="uid://c2hb88h3y512b"
|
||||
path="res://.godot/imported/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/mix-and-match/mix-and-match.atlas"
|
||||
dest_files=["res://.godot/imported/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas"]
|
||||
|
||||
[params]
|
||||
|
||||
normal_map_prefix="n"
|
||||
BIN
spine-godot/example-v4/assets/mix-and-match/mix-and-match.png
Normal file
BIN
spine-godot/example-v4/assets/mix-and-match/mix-and-match.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 340 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dsodn1w3yva6f"
|
||||
path="res://.godot/imported/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/mix-and-match/mix-and-match.png"
|
||||
dest_files=["res://.godot/imported/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.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
|
||||
9
spine-godot/example-v4/assets/raptor/raprot-data.tres
Normal file
9
spine-godot/example-v4/assets/raptor/raprot-data.tres
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://assets/raptor/raptor.atlas" type="SpineAtlasResource" id=1]
|
||||
[ext_resource path="res://assets/raptor/raptor-pro.skel" type="SpineSkeletonFileResource" id=2]
|
||||
|
||||
[resource]
|
||||
atlas_res = ExtResource( 1 )
|
||||
skeleton_file_res = ExtResource( 2 )
|
||||
default_mix = 0.2
|
||||
BIN
spine-godot/example-v4/assets/raptor/raptor-pro.skel
Normal file
BIN
spine-godot/example-v4/assets/raptor/raptor-pro.skel
Normal file
Binary file not shown.
14
spine-godot/example-v4/assets/raptor/raptor-pro.skel.import
Normal file
14
spine-godot/example-v4/assets/raptor/raptor-pro.skel.import
Normal file
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.skel"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://do8aw2r36b6qk"
|
||||
path="res://.godot/imported/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/raptor/raptor-pro.skel"
|
||||
dest_files=["res://.godot/imported/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel"]
|
||||
|
||||
[params]
|
||||
|
||||
100
spine-godot/example-v4/assets/raptor/raptor.atlas
Normal file
100
spine-godot/example-v4/assets/raptor/raptor.atlas
Normal file
@ -0,0 +1,100 @@
|
||||
raptor.png
|
||||
size: 1024, 512
|
||||
filter: Linear, Linear
|
||||
scale: 0.5
|
||||
back-arm
|
||||
bounds: 829, 88, 46, 25
|
||||
rotate: 90
|
||||
back-bracer
|
||||
bounds: 195, 238, 39, 28
|
||||
rotate: 90
|
||||
back-hand
|
||||
bounds: 724, 140, 36, 34
|
||||
rotate: 90
|
||||
back-knee
|
||||
bounds: 760, 131, 49, 67
|
||||
rotate: 90
|
||||
back-thigh
|
||||
bounds: 225, 238, 39, 24
|
||||
rotate: 90
|
||||
eyes-open
|
||||
bounds: 975, 204, 47, 45
|
||||
front-arm
|
||||
bounds: 969, 112, 48, 26
|
||||
front-bracer
|
||||
bounds: 724, 97, 41, 29
|
||||
rotate: 90
|
||||
front-hand
|
||||
bounds: 251, 239, 41, 38
|
||||
front-open-hand
|
||||
bounds: 856, 76, 43, 44
|
||||
rotate: 90
|
||||
front-thigh
|
||||
bounds: 729, 178, 57, 29
|
||||
rotate: 90
|
||||
gun
|
||||
bounds: 894, 251, 107, 103
|
||||
gun-nohand
|
||||
bounds: 764, 241, 105, 102
|
||||
head
|
||||
bounds: 756, 345, 136, 149
|
||||
lower-leg
|
||||
bounds: 475, 237, 73, 98
|
||||
rotate: 90
|
||||
mouth-grind
|
||||
bounds: 975, 172, 47, 30
|
||||
mouth-smile
|
||||
bounds: 975, 140, 47, 30
|
||||
neck
|
||||
bounds: 366, 282, 18, 21
|
||||
raptor-back-arm
|
||||
bounds: 636, 97, 82, 86
|
||||
rotate: 90
|
||||
raptor-body
|
||||
bounds: 2, 2, 632, 233
|
||||
raptor-front-arm
|
||||
bounds: 871, 168, 81, 102
|
||||
rotate: 90
|
||||
raptor-front-leg
|
||||
bounds: 2, 237, 191, 257
|
||||
raptor-hindleg-back
|
||||
bounds: 195, 279, 169, 215
|
||||
raptor-horn
|
||||
bounds: 431, 312, 182, 80
|
||||
rotate: 90
|
||||
raptor-horn-back
|
||||
bounds: 513, 318, 176, 77
|
||||
rotate: 90
|
||||
raptor-jaw
|
||||
bounds: 894, 356, 126, 138
|
||||
raptor-jaw-tooth
|
||||
bounds: 294, 240, 37, 48
|
||||
rotate: 90
|
||||
raptor-mouth-inside
|
||||
bounds: 344, 241, 36, 41
|
||||
rotate: 90
|
||||
raptor-saddle-strap-back
|
||||
bounds: 575, 242, 54, 74
|
||||
raptor-saddle-strap-front
|
||||
bounds: 764, 182, 57, 95
|
||||
rotate: 90
|
||||
raptor-saddle-w-shadow
|
||||
bounds: 592, 323, 162, 171
|
||||
raptor-tail-shadow
|
||||
bounds: 366, 305, 189, 63
|
||||
rotate: 90
|
||||
raptor-tongue
|
||||
bounds: 387, 239, 86, 64
|
||||
stirrup-back
|
||||
bounds: 829, 136, 44, 35
|
||||
rotate: 90
|
||||
stirrup-front
|
||||
bounds: 866, 121, 45, 50
|
||||
rotate: 90
|
||||
stirrup-strap
|
||||
bounds: 918, 120, 49, 46
|
||||
torso
|
||||
bounds: 636, 181, 54, 91
|
||||
rotate: 90
|
||||
visor
|
||||
bounds: 631, 237, 131, 84
|
||||
15
spine-godot/example-v4/assets/raptor/raptor.atlas.import
Normal file
15
spine-godot/example-v4/assets/raptor/raptor.atlas.import
Normal file
@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.atlas"
|
||||
type="SpineAtlasResource"
|
||||
uid="uid://em5emiut17gv"
|
||||
path="res://.godot/imported/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/raptor/raptor.atlas"
|
||||
dest_files=["res://.godot/imported/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas"]
|
||||
|
||||
[params]
|
||||
|
||||
normal_map_prefix="n"
|
||||
BIN
spine-godot/example-v4/assets/raptor/raptor.png
Normal file
BIN
spine-godot/example-v4/assets/raptor/raptor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 411 KiB |
34
spine-godot/example-v4/assets/raptor/raptor.png.import
Normal file
34
spine-godot/example-v4/assets/raptor/raptor.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b173v4l5brfj"
|
||||
path="res://.godot/imported/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/raptor/raptor.png"
|
||||
dest_files=["res://.godot/imported/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.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
|
||||
@ -0,0 +1,20 @@
|
||||
[gd_resource type="SpineSkeletonDataResource" load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://assets/spineboy/spineboy.atlas" type="SpineAtlasResource" id=1]
|
||||
[ext_resource path="res://assets/spineboy/spineboy-pro.json" type="SpineSkeletonFileResource" id=2]
|
||||
|
||||
[sub_resource type="SpineAnimationMix" id=1]
|
||||
from = "idle"
|
||||
to = "run"
|
||||
mix = 0.2
|
||||
|
||||
[sub_resource type="SpineAnimationMix" id=2]
|
||||
from = "run"
|
||||
to = "idle"
|
||||
mix = 0.2
|
||||
|
||||
[resource]
|
||||
atlas_res = ExtResource( 1 )
|
||||
skeleton_file_res = ExtResource( 2 )
|
||||
default_mix = 0.1
|
||||
animation_mixes = [ SubResource( 1 ), SubResource( 2 ) ]
|
||||
23721
spine-godot/example-v4/assets/spineboy/spineboy-pro.json
Normal file
23721
spine-godot/example-v4/assets/spineboy/spineboy-pro.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.json"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://d0sh0yumfhw5k"
|
||||
path="res://.godot/imported/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/spineboy/spineboy-pro.json"
|
||||
dest_files=["res://.godot/imported/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
spine-godot/example-v4/assets/spineboy/spineboy-pro.skel
Normal file
BIN
spine-godot/example-v4/assets/spineboy/spineboy-pro.skel
Normal file
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.skel"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://c4ksiwem3sg21"
|
||||
path="res://.godot/imported/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/spineboy/spineboy-pro.skel"
|
||||
dest_files=["res://.godot/imported/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel"]
|
||||
|
||||
[params]
|
||||
|
||||
101
spine-godot/example-v4/assets/spineboy/spineboy.atlas
Normal file
101
spine-godot/example-v4/assets/spineboy/spineboy.atlas
Normal file
@ -0,0 +1,101 @@
|
||||
spineboy.png
|
||||
size: 1024, 256
|
||||
filter: Linear, Linear
|
||||
scale: 0.5
|
||||
crosshair
|
||||
bounds: 813, 160, 45, 45
|
||||
eye-indifferent
|
||||
bounds: 569, 2, 47, 45
|
||||
eye-surprised
|
||||
bounds: 643, 7, 47, 45
|
||||
rotate: 90
|
||||
front-bracer
|
||||
bounds: 811, 51, 29, 40
|
||||
front-fist-closed
|
||||
bounds: 807, 93, 38, 41
|
||||
front-fist-open
|
||||
bounds: 815, 210, 43, 44
|
||||
front-foot
|
||||
bounds: 706, 64, 63, 35
|
||||
rotate: 90
|
||||
front-shin
|
||||
bounds: 80, 11, 41, 92
|
||||
front-thigh
|
||||
bounds: 754, 12, 23, 56
|
||||
front-upper-arm
|
||||
bounds: 618, 5, 23, 49
|
||||
goggles
|
||||
bounds: 214, 20, 131, 83
|
||||
gun
|
||||
bounds: 347, 14, 105, 102
|
||||
rotate: 90
|
||||
head
|
||||
bounds: 80, 105, 136, 149
|
||||
hoverboard-board
|
||||
bounds: 2, 8, 246, 76
|
||||
rotate: 90
|
||||
hoverboard-thruster
|
||||
bounds: 478, 2, 30, 32
|
||||
hoverglow-small
|
||||
bounds: 218, 117, 137, 38
|
||||
rotate: 90
|
||||
mouth-grind
|
||||
bounds: 775, 80, 47, 30
|
||||
rotate: 90
|
||||
mouth-oooo
|
||||
bounds: 779, 31, 47, 30
|
||||
rotate: 90
|
||||
mouth-smile
|
||||
bounds: 783, 207, 47, 30
|
||||
rotate: 90
|
||||
muzzle-glow
|
||||
bounds: 779, 4, 25, 25
|
||||
muzzle-ring
|
||||
bounds: 451, 14, 25, 105
|
||||
muzzle01
|
||||
bounds: 664, 60, 67, 40
|
||||
rotate: 90
|
||||
muzzle02
|
||||
bounds: 580, 56, 68, 42
|
||||
rotate: 90
|
||||
muzzle03
|
||||
bounds: 478, 36, 83, 53
|
||||
rotate: 90
|
||||
muzzle04
|
||||
bounds: 533, 49, 75, 45
|
||||
rotate: 90
|
||||
muzzle05
|
||||
bounds: 624, 56, 68, 38
|
||||
rotate: 90
|
||||
neck
|
||||
bounds: 806, 8, 18, 21
|
||||
portal-bg
|
||||
bounds: 258, 121, 133, 133
|
||||
portal-flare1
|
||||
bounds: 690, 2, 56, 30
|
||||
rotate: 90
|
||||
portal-flare2
|
||||
bounds: 510, 3, 57, 31
|
||||
portal-flare3
|
||||
bounds: 722, 4, 58, 30
|
||||
rotate: 90
|
||||
portal-shade
|
||||
bounds: 393, 121, 133, 133
|
||||
portal-streaks1
|
||||
bounds: 528, 126, 126, 128
|
||||
portal-streaks2
|
||||
bounds: 656, 129, 125, 125
|
||||
rear-bracer
|
||||
bounds: 826, 13, 28, 36
|
||||
rear-foot
|
||||
bounds: 743, 70, 57, 30
|
||||
rotate: 90
|
||||
rear-shin
|
||||
bounds: 174, 14, 38, 89
|
||||
rear-thigh
|
||||
bounds: 783, 158, 28, 47
|
||||
rear-upper-arm
|
||||
bounds: 783, 136, 20, 44
|
||||
rotate: 90
|
||||
torso
|
||||
bounds: 123, 13, 49, 90
|
||||
15
spine-godot/example-v4/assets/spineboy/spineboy.atlas.import
Normal file
15
spine-godot/example-v4/assets/spineboy/spineboy.atlas.import
Normal file
@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.atlas"
|
||||
type="SpineAtlasResource"
|
||||
uid="uid://bcrd02k17qbt"
|
||||
path="res://.godot/imported/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/spineboy/spineboy.atlas"
|
||||
dest_files=["res://.godot/imported/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas"]
|
||||
|
||||
[params]
|
||||
|
||||
normal_map_prefix="n"
|
||||
BIN
spine-godot/example-v4/assets/spineboy/spineboy.png
Normal file
BIN
spine-godot/example-v4/assets/spineboy/spineboy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 238 KiB |
34
spine-godot/example-v4/assets/spineboy/spineboy.png.import
Normal file
34
spine-godot/example-v4/assets/spineboy/spineboy.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b8she3akx8ig"
|
||||
path="res://.godot/imported/spineboy.png-436dbd6da2b707b6828ede17b7871f43.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/spineboy/spineboy.png"
|
||||
dest_files=["res://.godot/imported/spineboy.png-436dbd6da2b707b6828ede17b7871f43.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
|
||||
7
spine-godot/example-v4/default_env.tres
Normal file
7
spine-godot/example-v4/default_env.tres
Normal file
@ -0,0 +1,7 @@
|
||||
[gd_resource type="Environment" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="ProceduralSky" id=1]
|
||||
|
||||
[resource]
|
||||
background_mode = 2
|
||||
background_sky = SubResource( 1 )
|
||||
@ -0,0 +1,4 @@
|
||||
extends SpineSprite
|
||||
|
||||
func _ready():
|
||||
get_animation_state().set_animation("walk", true, 0)
|
||||
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://covnpp5pbw5g7"]
|
||||
|
||||
[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"]
|
||||
|
||||
[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( "2_hkbn2" )
|
||||
@ -0,0 +1,12 @@
|
||||
[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" )
|
||||
@ -0,0 +1,38 @@
|
||||
extends Node2D
|
||||
|
||||
@onready var footstep_audio: AudioStreamPlayer = $FootstepAudio
|
||||
|
||||
func _animation_started(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry):
|
||||
print("Animation started: " + track_entry.get_animation().get_name())
|
||||
|
||||
func _animation_interrupted(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry):
|
||||
print("Animation interrupted: " + track_entry.get_animation().get_name())
|
||||
|
||||
func _animation_ended(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry):
|
||||
print("Animation ended: " + track_entry.get_animation().get_name())
|
||||
|
||||
func _animation_completed(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry):
|
||||
print("Animation completed: " + track_entry.get_animation().get_name())
|
||||
|
||||
func _animation_disposed(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry):
|
||||
print("Animation disposed: " + track_entry.get_animation().get_name())
|
||||
|
||||
func _animation_event(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry, event: SpineEvent):
|
||||
print("Animation event: " + track_entry.get_animation().get_name() + ", " + event.get_data().get_event_name())
|
||||
if (event.get_data().get_event_name() == "footstep"):
|
||||
footstep_audio.play()
|
||||
|
||||
func _ready():
|
||||
var spineboy = $Spineboy
|
||||
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)
|
||||
|
||||
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"))
|
||||
pass
|
||||
@ -0,0 +1,16 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://pybgwkgp2y7o"]
|
||||
|
||||
[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"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource( "1" )
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(473, 487)
|
||||
scale = Vector2(0.575051, 0.575051)
|
||||
skeleton_data_res = ExtResource( "2" )
|
||||
|
||||
[node name="FootstepAudio" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( "3" )
|
||||
@ -0,0 +1,22 @@
|
||||
extends SpineSprite
|
||||
|
||||
func _ready():
|
||||
var data = get_skeleton().get_data()
|
||||
var custom_skin = new_skin("custom-skin")
|
||||
var skin_base = data.find_skin("skin-base")
|
||||
custom_skin.add_skin(skin_base)
|
||||
custom_skin.add_skin(data.find_skin("nose/short"))
|
||||
custom_skin.add_skin(data.find_skin("eyelids/girly"))
|
||||
custom_skin.add_skin(data.find_skin("eyes/violet"))
|
||||
custom_skin.add_skin(data.find_skin("hair/brown"))
|
||||
custom_skin.add_skin(data.find_skin("clothes/hoodie-orange"))
|
||||
custom_skin.add_skin(data.find_skin("legs/pants-jeans"))
|
||||
custom_skin.add_skin(data.find_skin("accessories/bag"))
|
||||
custom_skin.add_skin(data.find_skin("accessories/hat-red-yellow"))
|
||||
get_skeleton().set_skin(custom_skin);
|
||||
|
||||
for el in custom_skin.get_attachments():
|
||||
var entry: SpineSkinEntry = el
|
||||
print(str(entry.get_slot_index()) + " " + entry.get_name())
|
||||
|
||||
get_animation_state().set_animation("dance", true, 0)
|
||||
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://2y54bey2t35l"]
|
||||
|
||||
[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"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="MixAndMatch" type="SpineSprite" parent="."]
|
||||
position = Vector2(532.982, 480.287)
|
||||
scale = Vector2(0.441932, 0.441932)
|
||||
skeleton_data_res = ExtResource( "1" )
|
||||
script = ExtResource( "2" )
|
||||
@ -0,0 +1,19 @@
|
||||
extends SpineSprite
|
||||
|
||||
func _ready():
|
||||
get_animation_state().set_animation("idle", true, 0)
|
||||
|
||||
func _process(_delta):
|
||||
if Input.is_action_just_pressed("ui_left"):
|
||||
get_animation_state().set_animation("run", true, 0)
|
||||
get_skeleton().set_scale_x(-1)
|
||||
|
||||
if Input.is_action_just_released("ui_left"):
|
||||
get_animation_state().set_animation("idle", true, 0)
|
||||
|
||||
if (Input.is_action_just_pressed("ui_right")):
|
||||
get_animation_state().set_animation("run", true, 0)
|
||||
get_skeleton().set_scale_x(1)
|
||||
|
||||
if Input.is_action_just_released("ui_right"):
|
||||
get_animation_state().set_animation("idle", true, 0)
|
||||
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ca3tp7fuv1i77"]
|
||||
|
||||
[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"]
|
||||
|
||||
[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_lsf60" )
|
||||
@ -0,0 +1,12 @@
|
||||
[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 )
|
||||
@ -0,0 +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()))
|
||||
|
||||
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"))
|
||||
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bfkgc16yqcdyi"]
|
||||
|
||||
[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"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource( "1" )
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(481, 457)
|
||||
scale = Vector2(0.457952, 0.457952)
|
||||
skeleton_data_res = ExtResource( "2" )
|
||||
@ -0,0 +1,11 @@
|
||||
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"))
|
||||
@ -0,0 +1,17 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dm0y2i1jdd28x"]
|
||||
|
||||
[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spinebody-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"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource( "2" )
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(478, 483)
|
||||
scale = Vector2(0.58461, 0.58461)
|
||||
skeleton_data_res = ExtResource( "1" )
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="Spineboy"]
|
||||
position = Vector2(20, 20)
|
||||
texture = ExtResource( "3" )
|
||||
11
spine-godot/example-v4/examples/07-slot-node/slot-node.gd
Normal file
11
spine-godot/example-v4/examples/07-slot-node/slot-node.gd
Normal file
@ -0,0 +1,11 @@
|
||||
extends Node2D
|
||||
|
||||
@onready var spineboy: SpineSprite = $Spineboy
|
||||
@onready var raptor: SpineSprite = $Spineboy/SlotNodeGun/Raptor
|
||||
@onready var tiny_spineboy: SpineSprite = $Spineboy/SlotNodeFrontFist/TinySpineboy
|
||||
|
||||
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)
|
||||
tiny_spineboy.get_animation_state().set_animation("walk", true, 0)
|
||||
35
spine-godot/example-v4/examples/07-slot-node/slot-node.tscn
Normal file
35
spine-godot/example-v4/examples/07-slot-node/slot-node.tscn
Normal file
@ -0,0 +1,35 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://ca6sxv2ecmfue"]
|
||||
|
||||
[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"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource( "1" )
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(506, 480)
|
||||
scale = Vector2(0.560712, 0.560712)
|
||||
skeleton_data_res = ExtResource( "2" )
|
||||
|
||||
[node name="SlotNodeGun" type="SpineSlotNode" parent="Spineboy"]
|
||||
position = Vector2(40.8752, -276.036)
|
||||
rotation = 0.837234
|
||||
scale = Vector2(1, 1)
|
||||
slot_name = "gun"
|
||||
|
||||
[node name="Raptor" type="SpineSprite" parent="Spineboy/SlotNodeGun"]
|
||||
position = Vector2(84.6909, -67.9174)
|
||||
scale = Vector2(0.193472, 0.193472)
|
||||
skeleton_data_res = ExtResource( "3" )
|
||||
|
||||
[node name="SlotNodeFrontFist" type="SpineSlotNode" parent="Spineboy"]
|
||||
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"]
|
||||
position = Vector2(-2.64624, -10.8111)
|
||||
scale = Vector2(0.193389, 0.193389)
|
||||
skeleton_data_res = ExtResource( "2" )
|
||||
@ -0,0 +1,33 @@
|
||||
extends Node2D
|
||||
|
||||
@onready var player = $AnimationPlayer
|
||||
@onready var spineboy = $Spineboy
|
||||
|
||||
var speed = 400;
|
||||
var velocity_x = 0;
|
||||
|
||||
func _ready():
|
||||
player.play("cutscene")
|
||||
pass
|
||||
|
||||
func _process(delta):
|
||||
if (!player.is_playing()):
|
||||
if Input.is_action_just_released("ui_left"):
|
||||
spineboy.get_animation_state().set_animation("idle", true, 0)
|
||||
velocity_x = 0
|
||||
|
||||
if Input.is_action_just_released("ui_right"):
|
||||
spineboy.get_animation_state().set_animation("idle", true, 0)
|
||||
velocity_x = 0
|
||||
|
||||
if (Input.is_action_just_pressed("ui_right")):
|
||||
spineboy.get_animation_state().set_animation("run", true, 0)
|
||||
spineboy.get_skeleton().set_scale_x(1)
|
||||
velocity_x = 1
|
||||
|
||||
if Input.is_action_just_pressed("ui_left"):
|
||||
spineboy.get_animation_state().set_animation("run", true, 0)
|
||||
spineboy.get_skeleton().set_scale_x(-1)
|
||||
velocity_x = -1
|
||||
|
||||
spineboy.position.x += velocity_x * speed * delta
|
||||
File diff suppressed because it is too large
Load Diff
BIN
spine-godot/example-v4/icon.png
Normal file
BIN
spine-godot/example-v4/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
34
spine-godot/example-v4/icon.png.import
Normal file
34
spine-godot/example-v4/icon.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://8ud5n2ywp5ba"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.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
|
||||
35
spine-godot/example-v4/project.godot
Normal file
35
spine-godot/example-v4/project.godot
Normal file
@ -0,0 +1,35 @@
|
||||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="spine-godot-examples"
|
||||
run/main_scene="res://examples/08-animation-player/animation-player.tscn"
|
||||
run/low_processor_mode=true
|
||||
config/icon="res://icon.png"
|
||||
config/features=PackedStringArray("4.0")
|
||||
|
||||
[global]
|
||||
|
||||
batch=false
|
||||
|
||||
[physics]
|
||||
|
||||
common/enable_pause_aware_picking=true
|
||||
|
||||
[rendering]
|
||||
|
||||
batching/parameters/max_join_item_commands=100
|
||||
batching/parameters/batch_buffer_size=65535
|
||||
batching/parameters/item_reordering_lookahead=100
|
||||
quality/driver/driver_name="GLES2"
|
||||
vram_compression/import_etc=true
|
||||
vram_compression/import_etc2=false
|
||||
environment/default_environment="res://default_env.tres"
|
||||
4
spine-godot/example-v4/tests/batch-test.gd
Normal file
4
spine-godot/example-v4/tests/batch-test.gd
Normal file
@ -0,0 +1,4 @@
|
||||
extends SpineSprite
|
||||
|
||||
func _ready():
|
||||
get_animation_state().set_animation("walk", true)
|
||||
583
spine-godot/example-v4/tests/batch-test.tscn
Normal file
583
spine-godot/example-v4/tests/batch-test.tscn
Normal file
@ -0,0 +1,583 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://b2hntkowlhaxt"]
|
||||
|
||||
[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"]
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
|
||||
[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" )
|
||||
39
spine-godot/example-v4/tests/unit-tests.gd
Normal file
39
spine-godot/example-v4/tests/unit-tests.gd
Normal file
@ -0,0 +1,39 @@
|
||||
extends SpineSprite
|
||||
|
||||
func test_spine_animation():
|
||||
var walkAnim: SpineAnimation = get_skeleton().get_data().find_animation("walk")
|
||||
assert(walkAnim.get_name() == "walk")
|
||||
var duration = walkAnim.get_duration()
|
||||
walkAnim.set_duration(duration + 1)
|
||||
assert(walkAnim.get_duration() == duration + 1)
|
||||
assert(walkAnim.get_timelines().size() == 39)
|
||||
var timeline: SpineTimeline = walkAnim.get_timelines()[0]
|
||||
var propertyIds = timeline.get_property_ids()
|
||||
assert(walkAnim.has_timeline(propertyIds))
|
||||
assert(!walkAnim.has_timeline([0]))
|
||||
|
||||
func test_spine_timeline():
|
||||
var walkAnim: SpineAnimation = get_skeleton().get_data().find_animation("walk")
|
||||
var timeline: SpineTimeline = walkAnim.get_timelines()[0]
|
||||
assert(timeline.get_duration() == 1)
|
||||
assert(timeline.get_property_ids() == [4294967300])
|
||||
assert(timeline.get_type() == "RotateTimeline")
|
||||
|
||||
func test_spine_object_invalidation():
|
||||
var skeleton_data = get_skeleton().get_data()
|
||||
var bone_data = skeleton_data.find_bone("gun");
|
||||
var old_bone_data_x = bone_data.get_x();
|
||||
var bone = get_skeleton().find_bone("gun")
|
||||
var old_bone_x = bone.get_x()
|
||||
skeleton_data_res = null
|
||||
assert(old_bone_x != bone.get_x())
|
||||
assert(old_bone_data_x == bone_data.get_x())
|
||||
skeleton_data.atlas_res = null;
|
||||
assert(old_bone_data_x != bone_data.get_x())
|
||||
|
||||
func _ready():
|
||||
|
||||
test_spine_animation()
|
||||
test_spine_timeline()
|
||||
test_spine_object_invalidation()
|
||||
print("All tests passed")
|
||||
12
spine-godot/example-v4/tests/unit-tests.tscn
Normal file
12
spine-godot/example-v4/tests/unit-tests.tscn
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://32p13eo7undk"]
|
||||
|
||||
[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"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
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" )
|
||||
Loading…
x
Reference in New Issue
Block a user