mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 22:34:53 +08:00
Merge branch '4.1' into 4.2-beta
This commit is contained in:
commit
c99535ed85
4
.github/workflows/spine-godot-v4.yml
vendored
4
.github/workflows/spine-godot-v4.yml
vendored
@ -451,8 +451,8 @@ jobs:
|
||||
ls -lahR
|
||||
mv godot.windows.editor.x86_64.mono.exe godot-$BRANCH-$GODOT_TAG-mono.exe
|
||||
mv godot.linuxbsd.editor.x86_64.mono godot-$BRANCH-$GODOT_TAG-mono
|
||||
zip godot-editor-windows-mono.zip godot-$BRANCH-$GODOT_TAG-mono.exe GodotSharp
|
||||
zip godot-editor-linux-mono.zip godot-$BRANCH-$GODOT_TAG-mono GodotSharp
|
||||
zip -r godot-editor-windows-mono.zip godot-$BRANCH-$GODOT_TAG-mono.exe GodotSharp
|
||||
zip -r godot-editor-linux-mono.zip godot-$BRANCH-$GODOT_TAG-mono GodotSharp
|
||||
mv godot-editor-macos.zip godot-editor-macos-mono.zip
|
||||
aws s3 cp godot-editor-windows-mono.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
|
||||
aws s3 cp godot-editor-linux-mono.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -199,3 +199,4 @@ spine-godot/godot-nuget
|
||||
spine-godot/godot-spine-csharp
|
||||
spine-ue4/Plugins/Developer
|
||||
spine-haxe/export
|
||||
spine-godot/example-v4-csharp/.godot
|
||||
|
||||
7
spine-godot/.vscode/settings.json
vendored
7
spine-godot/.vscode/settings.json
vendored
@ -1,4 +1,5 @@
|
||||
{
|
||||
"cmake.configureOnOpen": false,
|
||||
"C_Cpp.intelliSenseEngine": "disabled",
|
||||
}
|
||||
"cmake.configureOnOpen": false,
|
||||
"C_Cpp.intelliSenseEngine": "disabled",
|
||||
"dotnet.defaultSolution": "disable"
|
||||
}
|
||||
|
||||
@ -29,10 +29,7 @@ fi
|
||||
|
||||
if [ -f "../godot/custom.py" ]; then
|
||||
dev="true"
|
||||
fi
|
||||
|
||||
if [ -f "../godot/custom.py" ]; then
|
||||
dev="true"
|
||||
echo "DEV build"
|
||||
fi
|
||||
|
||||
mono_module=""
|
||||
@ -55,7 +52,7 @@ cpus=2
|
||||
if [ "$OSTYPE" == "msys" ]; then
|
||||
os="windows"
|
||||
cpus=$NUMBER_OF_PROCESSORS
|
||||
target="vsproj=yes livepp=$LIVEPP"
|
||||
target="$target vsproj=yes livepp=$LIVEPP"
|
||||
godot_exe="godot.windows.editor$dev_extension.x86_64$mono_extension.exe"
|
||||
godot_exe_host=$godot_exe
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
|
||||
@ -2,7 +2,7 @@ set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
# Download and install the Vulkan SDK.
|
||||
curl -L "https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg" -o /tmp/vulkan-sdk.dmg
|
||||
curl -L "https://sdk.lunarg.com/sdk/download/1.3.250.1/mac/vulkansdk-macos-1.3.250.1.dmg" -o /tmp/vulkan-sdk.dmg
|
||||
hdiutil attach /tmp/vulkan-sdk.dmg -mountpoint /Volumes/vulkan-sdk
|
||||
/Volumes/vulkan-sdk/InstallVulkan.app/Contents/MacOS/InstallVulkan \
|
||||
--accept-licenses --default-answer --confirm-command install
|
||||
|
||||
@ -49,17 +49,17 @@ if [ $dev = "true" ]; then
|
||||
rm -rf example/.import
|
||||
rm -rf example/.godot
|
||||
|
||||
if [ "$OSTYPE" = "msys" ]; then
|
||||
pushd godot
|
||||
if [[ $branch == 3* ]]; then
|
||||
echo "Applying V3 Live++ patch"
|
||||
git apply ../build/livepp.patch
|
||||
else
|
||||
echo "Applying V4 Live++ patch"
|
||||
git apply ../build/livepp-v4.patch
|
||||
fi
|
||||
popd
|
||||
fi
|
||||
#if [ "$OSTYPE" = "msys" ]; then
|
||||
# pushd godot
|
||||
# if [[ $branch == 3* ]]; then
|
||||
# echo "Applying V3 Live++ patch"
|
||||
# git apply ../build/livepp.patch
|
||||
# else
|
||||
# echo "Applying V4 Live++ patch"
|
||||
# git apply ../build/livepp-v4.patch
|
||||
# fi
|
||||
# popd
|
||||
#fi
|
||||
|
||||
if [ `uname` == 'Darwin' ] && [ ! -d "$HOME/VulkanSDK" ]; then
|
||||
./build/install-macos-vulkan-sdk.sh
|
||||
|
||||
BIN
spine-godot/example-v4-csharp/assets/footstep.ogg
Normal file
BIN
spine-godot/example-v4-csharp/assets/footstep.ogg
Normal file
Binary file not shown.
19
spine-godot/example-v4-csharp/assets/footstep.ogg.import
Normal file
19
spine-godot/example-v4-csharp/assets/footstep.ogg.import
Normal file
@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://can7k84o8svum"
|
||||
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
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
@ -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.spine-json" type="SpineSkeletonFileResource" id=2]
|
||||
|
||||
[resource]
|
||||
atlas_res = ExtResource( 1 )
|
||||
skeleton_file_res = ExtResource( 2 )
|
||||
animations = null
|
||||
skins = null
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.json"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://ckitsrtfxmo2w"
|
||||
path="res://.godot/imported/mix-and-match-pro.spine-json-3655503b0d08b0b0590c6310da1ac47b.spjson"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/mix-and-match/mix-and-match-pro.spine-json"
|
||||
dest_files=["res://.godot/imported/mix-and-match-pro.spine-json-3655503b0d08b0b0590c6310da1ac47b.spjson"]
|
||||
|
||||
[params]
|
||||
|
||||
@ -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://cvu8lycjkd245"
|
||||
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"
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 340 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkpeve6qcxa70"
|
||||
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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/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,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"
|
||||
@ -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
|
||||
@ -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.spine-json" type="SpineSkeletonFileResource" id=2]
|
||||
|
||||
[resource]
|
||||
atlas_res = ExtResource( 1 )
|
||||
skeleton_file_res = ExtResource( 2 )
|
||||
@ -0,0 +1,304 @@
|
||||
{
|
||||
"skeleton": {
|
||||
"hash": "ukmbgK+14T0",
|
||||
"spine": "4.1.23-beta",
|
||||
"x": -78.45,
|
||||
"y": -9.66,
|
||||
"width": 157.48,
|
||||
"height": 364.98,
|
||||
"images": "./images/",
|
||||
"audio": ""
|
||||
},
|
||||
"bones": [
|
||||
{ "name": "root" },
|
||||
{ "name": "hip", "parent": "root", "x": -0.79, "y": 82.38 },
|
||||
{ "name": "abdomen", "parent": "hip", "length": 33.5, "rotation": 89.55, "y": -0.1 },
|
||||
{ "name": "chest", "parent": "abdomen", "length": 29.58, "x": 38.08, "y": 0.73 },
|
||||
{ "name": "L-arm", "parent": "chest", "length": 32.68, "rotation": -121.23, "x": 24.64, "y": -16.69 },
|
||||
{ "name": "L-thigh", "parent": "hip", "length": 29.76, "rotation": -81.94, "x": 17.32, "y": -5.2 },
|
||||
{ "name": "L-foot", "parent": "L-thigh", "length": 37.25, "rotation": -6.29, "x": 37.36, "y": -1.79 },
|
||||
{ "name": "L-forearm", "parent": "L-arm", "length": 33.69, "rotation": -12.09, "x": 39.1, "y": -2.35 },
|
||||
{ "name": "R-arm", "parent": "chest", "length": 36.76, "rotation": 133.38, "x": 26, "y": 13.63 },
|
||||
{ "name": "R-thigh", "parent": "hip", "length": 29.49, "rotation": -93.16, "x": -18.19, "y": -6.06 },
|
||||
{ "name": "R-foot", "parent": "R-thigh", "length": 39.99, "rotation": -1.8, "x": 36.41, "y": 0.27 },
|
||||
{ "name": "R-forearm", "parent": "R-arm", "length": 36.13, "rotation": 2.73, "x": 41.66, "y": 0.28 },
|
||||
{ "name": "head", "parent": "chest", "length": 94.23, "rotation": -2.25, "x": 41.02, "y": -0.11 },
|
||||
{ "name": "scalp", "parent": "head", "length": 31.95, "rotation": -29.89, "x": 129.34, "y": 15.1 },
|
||||
{ "name": "hair1", "parent": "scalp", "length": 23.01, "rotation": 68.49, "x": 36.51, "y": 4.13 },
|
||||
{ "name": "hair2", "parent": "hair1", "length": 23.5, "rotation": 59.56, "x": 29.03, "y": 1.58 }
|
||||
],
|
||||
"slots": [
|
||||
{ "name": "R-arm", "bone": "R-arm", "attachment": "arm" },
|
||||
{ "name": "L-arm", "bone": "L-arm", "attachment": "arm" },
|
||||
{ "name": "L-leg", "bone": "L-thigh", "attachment": "leg" },
|
||||
{ "name": "R-leg", "bone": "R-thigh", "attachment": "leg" },
|
||||
{ "name": "torso", "bone": "abdomen", "attachment": "torso" },
|
||||
{ "name": "head", "bone": "head", "attachment": "head" }
|
||||
],
|
||||
"skins": [
|
||||
{
|
||||
"name": "default",
|
||||
"attachments": {
|
||||
"head": {
|
||||
"head": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.60755, 0.01864, 0.64146, 0.03355, 0.70227, 0.06028, 0.76687, 0.08869, 0.80696, 0.14524, 0.84158, 0.19407, 1, 0.41294, 1, 0.78562, 0.67349, 1, 0.38214, 1, 0.13935, 0.8937, 0.07949, 0.78808, 0.05899, 0.7519, 0, 0.64781, 0, 0.40213, 0.15055, 0.27784, 0.25632, 0.21734, 0.28424, 0.20137, 0.31117, 0.18597, 0.32034, 0.16739, 0.32984, 0.14814, 0.3317, 0.12798, 0.33358, 0.1076, 0.29623, 0.08869, 0.21779, 0.06978, 0.2514, 0.03195, 0.32659, 0.01699, 0.37521, 0.00732, 0.41202, 0, 0.45684, 0, 0.49046, 0, 0.53155, 0, 0.56517, 0, 0.55023, 0.1049, 0.46058, 0.06437, 0.38587, 0.05086, 0.31117, 0.04816, 0.54649, 0.17516, 0.35973, 0.28865, 0.14308, 0.41294, 0.13188, 0.57777, 0.24767, 0.43186, 0.43817, 0.37511, 0.59878, 0.3616, 0.78181, 0.43726, 0.89761, 0.53994, 0.87616, 0.37787 ],
|
||||
"triangles": [ 36, 25, 26, 35, 27, 28, 23, 25, 36, 24, 25, 23, 26, 35, 36, 35, 26, 27, 22, 36, 35, 23, 36, 22, 28, 29, 34, 35, 28, 34, 21, 35, 34, 35, 21, 22, 37, 20, 34, 37, 38, 20, 19, 20, 38, 18, 19, 38, 17, 18, 38, 2, 4, 37, 4, 2, 3, 43, 4, 5, 43, 37, 4, 42, 38, 37, 43, 42, 37, 6, 46, 5, 44, 43, 5, 39, 14, 15, 41, 15, 16, 39, 15, 41, 16, 17, 38, 41, 16, 38, 41, 38, 42, 46, 44, 5, 45, 46, 6, 44, 46, 45, 40, 14, 39, 40, 39, 41, 13, 14, 40, 12, 13, 40, 45, 6, 7, 11, 12, 40, 9, 10, 40, 11, 40, 10, 9, 41, 42, 9, 40, 41, 8, 9, 42, 42, 43, 8, 44, 8, 43, 8, 44, 45, 8, 45, 7, 34, 29, 30, 33, 31, 32, 33, 32, 0, 31, 34, 30, 34, 20, 21, 31, 33, 34, 37, 34, 33, 1, 33, 0, 2, 33, 1, 33, 2, 37 ],
|
||||
"vertices": [ 1, 14, 17.04, -22.66, 1, 3, 14, 11.42, -25.02, 0.97438, 12, 187.6, -11.93, 0.00182, 13, 63.98, 5.58, 0.02381, 2, 14, 1.36, -29.25, 0.37005, 12, 182.37, -21.52, 0.62995, 3, 14, -9.34, -33.75, 0.09775, 12, 176.82, -31.71, 0.82289, 13, 64.49, -16.93, 0.07936, 3, 14, -22.66, -31.7, 0.05494, 12, 165.13, -38.42, 0.86351, 13, 57.7, -28.58, 0.08156, 3, 14, -34.17, -29.93, 0.01796, 12, 155.03, -44.22, 0.89858, 13, 51.83, -38.64, 0.08345, 1, 12, 109.81, -70.7, 1, 1, 12, 30.84, -74.45, 1, 1, 12, -16.96, -26.55, 1, 1, 12, -19.08, 18.11, 1, 1, 12, 1.68, 56.4, 1, 1, 12, 23.63, 66.63, 1, 1, 12, 31.14, 70.14, 1, 1, 12, 52.77, 80.23, 1, 2, 12, 104.83, 82.69, 0.99074, 13, -54.93, 46.39, 0.00926, 3, 12, 132.26, 60.87, 0.88784, 13, -20.27, 41.13, 0.11168, 15, 48.07, 46.13, 4.7E-4, 4, 14, 14.49, 45.72, 0.00833, 12, 145.85, 45.26, 0.85196, 13, -0.71, 34.37, 0.12365, 15, 30.69, 34.9, 0.01605, 4, 14, 14.72, 40.26, 0.01053, 12, 149.44, 41.14, 0.84249, 13, 4.45, 32.59, 0.12681, 15, 26.1, 31.94, 0.02016, 4, 14, 14.94, 35, 0.01266, 12, 152.9, 37.17, 0.83336, 13, 9.43, 30.87, 0.12986, 15, 21.68, 29.08, 0.02412, 4, 14, 17.31, 31.55, 0.05833, 12, 156.9, 35.95, 0.60487, 13, 13.51, 31.8, 0.21603, 15, 19.9, 25.29, 0.12077, 4, 14, 19.76, 27.97, 0.10569, 12, 161.05, 34.68, 0.368, 13, 17.74, 32.78, 0.30535, 15, 18.06, 21.36, 0.22096, 4, 14, 23.06, 25.24, 0.1279, 12, 165.34, 34.6, 0.18497, 13, 21.49, 34.84, 0.23674, 15, 17.37, 17.13, 0.45039, 3, 14, 26.39, 22.47, 0.15034, 13, 25.29, 36.92, 0.16741, 15, 16.67, 12.86, 0.68225, 3, 14, 33.01, 24.76, 0.02128, 13, 25.58, 43.92, 0.03309, 15, 22, 8.32, 0.94563, 1, 15, 33.6, 3.18, 1, 1, 15, 27.7, -4.32, 1, 1, 15, 15.91, -6.38, 1, 1, 15, 8.29, -7.71, 1, 1, 15, 2.52, -8.72, 1, 2, 14, 33.8, -6.24, 0.33703, 15, -4.33, -8.07, 0.66297, 2, 14, 30.77, -10.42, 0.58778, 15, -9.46, -7.58, 0.41222, 2, 14, 27.08, -15.53, 0.81447, 15, -15.74, -6.98, 0.18553, 2, 14, 24.05, -19.7, 0.97838, 15, -20.88, -6.49, 0.02162, 1, 14, 7.37, -4.8, 1, 1, 14, 22.4, 1.3, 1, 1, 15, 7.54, 1.64, 1, 3, 14, 38.63, 17.86, 0.0046, 13, 34.06, 46.62, 0.01618, 15, 18.9, -0.03, 0.97922, 1, 13, 30.82, 1.68, 1, 3, 14, -7.07, 41.74, 7.0E-5, 12, 131.49, 28.69, 0.99828, 15, 16.34, 51.47, 0.00165, 1, 12, 103.58, 60.65, 1, 1, 12, 68.57, 60.72, 1, 1, 12, 100.33, 44.43, 1, 1, 12, 113.74, 15.8, 1, 1, 12, 117.77, -8.69, 1, 1, 12, 103.07, -37.5, 1, 1, 12, 82.15, -56.28, 1, 3, 14, -68.87, -11.37, 0.00371, 12, 116.34, -51.37, 0.97904, 13, 21.84, -64.11, 0.01725 ],
|
||||
"hull": 33,
|
||||
"edges": [ 16, 14, 16, 18, 18, 20, 26, 28, 28, 30, 44, 46, 46, 48, 48, 50, 14, 12, 10, 12, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 2, 0, 0, 64, 2, 4, 4, 6, 20, 22, 22, 24, 24, 26, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 12, 80, 26, 34, 36, 30, 32, 32, 34, 36, 38, 38, 40, 40, 42, 42, 44, 12, 92, 6, 8, 8, 10 ],
|
||||
"width": 136,
|
||||
"height": 187
|
||||
}
|
||||
},
|
||||
"L-arm": {
|
||||
"arm": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 1, 0.16418, 0.90368, 0.30178, 0.80735, 0.43938, 0.75345, 0.50664, 0.71536, 0.55417, 0.66561, 0.61626, 0.63234, 0.65778, 0.59417, 0.7054, 0.45366, 0.8527, 0.31316, 1, 0.15658, 1, 0, 1, 0, 0.71458, 0.13235, 0.59074, 0.26471, 0.4669, 0.34675, 0.39836, 0.39153, 0.36096, 0.43008, 0.32876, 0.4689, 0.29633, 0.52302, 0.25113, 0.59417, 0.1917, 0.72983, 0.09585, 0.86549, 0, 1, 0, 0.15703, 0.83582, 0.46722, 0.51561, 0.78995, 0.22527, 0.34029, 0.70958, 0.62889, 0.3843 ],
|
||||
"triangles": [ 10, 24, 9, 9, 27, 8, 9, 24, 27, 10, 11, 24, 11, 12, 24, 8, 27, 7, 12, 13, 24, 24, 13, 27, 13, 14, 27, 27, 25, 7, 25, 27, 14, 7, 25, 6, 6, 25, 5, 18, 4, 17, 28, 4, 18, 4, 28, 3, 15, 16, 25, 16, 17, 25, 25, 17, 5, 17, 4, 5, 3, 28, 2, 28, 26, 2, 2, 26, 1, 18, 19, 28, 19, 20, 28, 28, 20, 26, 1, 26, 0, 20, 21, 26, 26, 22, 0, 26, 21, 22, 22, 23, 0, 25, 14, 15 ],
|
||||
"vertices": [ 1, 4, -11.38, 11.41, 1, 1, 4, 0.99, 11.79, 1, 1, 4, 13.36, 12.18, 1, 1, 4, 19.69, 11.97, 1, 2, 4, 24.16, 11.83, 0.91748, 7, -17.58, 10.73, 0.08252, 2, 4, 30, 11.64, 0.75238, 7, -11.83, 11.77, 0.24762, 2, 4, 33.91, 11.51, 0.44551, 7, -7.98, 12.46, 0.55449, 2, 4, 38.39, 11.36, 0.2127, 7, -3.57, 13.26, 0.7873, 2, 4, 53.17, 9.61, 0.07308, 7, 11.25, 14.65, 0.92692, 2, 4, 67.95, 7.86, 0.00873, 7, 26.07, 16.03, 0.99127, 1, 7, 34.26, 8.51, 1, 1, 7, 42.44, 0.99, 1, 1, 7, 27.96, -14.77, 1, 2, 4, 50.33, -20.36, 0.05494, 7, 14.76, -15.25, 0.94506, 2, 4, 37.32, -18.06, 0.23231, 7, 1.56, -15.74, 0.76769, 2, 4, 29.76, -16.28, 0.47868, 7, -6.21, -15.58, 0.52132, 2, 4, 25.63, -15.31, 0.71242, 7, -10.45, -15.5, 0.28758, 2, 4, 22.08, -14.47, 0.81876, 7, -14.1, -15.42, 0.18124, 2, 4, 18.5, -13.63, 0.9506, 7, -17.77, -15.35, 0.0494, 2, 4, 13.51, -12.45, 0.97879, 7, -22.9, -15.25, 0.02121, 2, 4, 6.96, -10.91, 0.99704, 7, -29.63, -15.11, 0.00296, 1, 4, -4.48, -7.2, 1, 1, 4, -15.91, -3.5, 1, 1, 4, -21.43, 4.29, 1, 1, 7, 25.9, -0.53, 1, 2, 4, 31.99, -4.22, 0.80128, 7, -6.56, -3.32, 0.19872, 1, 4, 0.98, 1.89, 1, 1, 7, 9.92, 1.3, 1, 1, 4, 17.32, -0.55, 1 ],
|
||||
"hull": 24,
|
||||
"edges": [ 0, 2, 2, 4, 4, 6, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 38, 40, 40, 42, 42, 44, 44, 46, 46, 0, 10, 34, 30, 32, 32, 34, 10, 12, 12, 14, 6, 8, 8, 10, 34, 36, 36, 38, 8, 36 ],
|
||||
"width": 71,
|
||||
"height": 75
|
||||
}
|
||||
},
|
||||
"L-leg": {
|
||||
"leg": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 1, 0.23129, 1, 0.29498, 1, 0.37025, 1, 0.44552, 1, 0.50921, 1, 0.65976, 1, 0.71766, 1, 0.87399, 0.73924, 1, 0.22971, 1, 0, 0.89715, 0, 0.64818, 0.01978, 0.59915, 0.08517, 0.43712, 0.10542, 0.38694, 0.13057, 0.32459, 0.15317, 0.26859, 0.178, 0.20707, 0.26155, 0, 1, 0, 0.61186, 0.12128, 0.51632, 0.54396 ],
|
||||
"triangles": [ 21, 13, 4, 21, 4, 5, 12, 13, 21, 12, 21, 5, 12, 5, 6, 11, 12, 6, 9, 10, 11, 11, 6, 9, 6, 8, 9, 7, 8, 6, 20, 18, 19, 20, 19, 0, 17, 18, 20, 17, 20, 0, 17, 0, 1, 16, 17, 1, 16, 1, 2, 15, 16, 2, 15, 2, 3, 14, 15, 3, 14, 3, 4, 13, 14, 4 ],
|
||||
"vertices": [ 1, 5, 11.02, 15.15, 1, 1, 5, 17.32, 14.75, 1, 2, 5, 24.75, 14.29, 0.95577, 6, -14.29, 14.6, 0.04423, 2, 5, 32.19, 13.83, 0.71874, 6, -6.84, 14.96, 0.28126, 2, 5, 38.49, 13.44, 0.37177, 6, -0.55, 15.26, 0.62823, 2, 5, 53.36, 12.51, 0.00736, 6, 14.34, 15.96, 0.99264, 1, 6, 20.07, 16.24, 1, 1, 6, 35.53, 16.97, 1, 1, 6, 48.43, 8.19, 1, 1, 6, 49.31, -10.13, 1, 1, 6, 39.53, -18.88, 1, 2, 5, 49.98, -23.35, 0.00313, 6, 14.91, -20.05, 0.99687, 2, 5, 45.18, -22.34, 0.02543, 6, 10.03, -19.57, 0.97457, 2, 5, 29.32, -18.99, 0.4709, 6, -6.11, -17.98, 0.5291, 2, 5, 24.4, -17.96, 0.69968, 6, -11.11, -17.49, 0.30032, 2, 5, 18.3, -16.67, 0.89625, 6, -17.32, -16.88, 0.10375, 2, 5, 12.82, -15.51, 0.9779, 6, -22.89, -16.33, 0.0221, 1, 5, 6.79, -14.24, 1, 1, 5, -13.48, -9.97, 1, 1, 5, -11.83, 16.57, 1, 1, 5, -0.72, 1.88, 1, 1, 6, 3.72, -1.97, 1 ],
|
||||
"hull": 20,
|
||||
"edges": [ 36, 38, 20, 22, 18, 20, 16, 18, 16, 14, 22, 24, 24, 10, 10, 12, 12, 14, 12, 22, 24, 26, 10, 8, 26, 8, 8, 6, 26, 28, 6, 28, 28, 30, 6, 4, 30, 4, 4, 2, 30, 32, 2, 32, 32, 34, 34, 36, 2, 0, 0, 38, 34, 0 ],
|
||||
"width": 36,
|
||||
"height": 99
|
||||
}
|
||||
},
|
||||
"R-arm": {
|
||||
"arm": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 1, 0.16418, 0.90368, 0.30178, 0.80735, 0.43938, 0.75345, 0.50664, 0.71536, 0.55417, 0.66561, 0.61626, 0.63234, 0.65778, 0.59417, 0.7054, 0.45366, 0.8527, 0.31316, 1, 0.15658, 1, 0, 1, 0, 0.71458, 0.13235, 0.59074, 0.26471, 0.4669, 0.34675, 0.39836, 0.39153, 0.36096, 0.43008, 0.32876, 0.4689, 0.29633, 0.52302, 0.25113, 0.59417, 0.1917, 0.72983, 0.09585, 0.86549, 0, 1, 0, 0.15703, 0.83582, 0.46722, 0.51561, 0.78995, 0.22527, 0.34029, 0.70958, 0.62889, 0.3843 ],
|
||||
"triangles": [ 10, 24, 9, 9, 27, 8, 9, 24, 27, 10, 11, 24, 11, 12, 24, 8, 27, 7, 12, 13, 24, 24, 13, 27, 13, 14, 27, 27, 25, 7, 25, 14, 15, 25, 27, 14, 7, 25, 6, 22, 23, 0, 26, 22, 0, 1, 26, 0, 6, 25, 5, 18, 4, 17, 28, 4, 18, 4, 28, 3, 15, 16, 25, 16, 17, 25, 25, 17, 5, 17, 4, 5, 3, 28, 2, 28, 26, 2, 2, 26, 1, 18, 19, 28, 19, 20, 28, 28, 20, 26, 20, 21, 26, 26, 21, 22 ],
|
||||
"vertices": [ 1, 8, -6.97, 5.03, 1, 1, 8, 5.06, 7.93, 1, 1, 8, 17.1, 10.83, 1, 2, 8, 23.34, 11.91, 0.99563, 11, -17.75, 12.49, 0.00437, 2, 8, 27.74, 12.68, 0.95467, 11, -13.31, 13.04, 0.04533, 2, 8, 33.5, 13.69, 0.75827, 11, -7.51, 13.77, 0.24173, 2, 8, 37.35, 14.36, 0.53963, 11, -3.63, 14.26, 0.46037, 2, 8, 41.77, 15.13, 0.29363, 11, 0.82, 14.82, 0.70637, 2, 8, 56.6, 16.42, 4.0E-4, 11, 15.69, 15.41, 0.9996, 1, 11, 30.56, 16, 1, 1, 11, 38.34, 8.05, 1, 1, 11, 46.11, 0.1, 1, 1, 11, 30.8, -14.86, 1, 2, 8, 59.92, -13.5, 4.8E-4, 11, 17.59, -14.64, 0.99952, 2, 8, 46.72, -13.9, 0.17385, 11, 4.38, -14.41, 0.82615, 2, 8, 38.95, -13.7, 0.5683, 11, -3.37, -13.84, 0.4317, 2, 8, 34.71, -13.59, 0.79613, 11, -7.6, -13.53, 0.20387, 2, 8, 31.06, -13.49, 0.92362, 11, -11.24, -13.26, 0.07638, 2, 8, 27.39, -13.4, 0.98278, 11, -14.9, -12.99, 0.01722, 1, 8, 22.26, -13.26, 1, 1, 8, 15.53, -13.09, 1, 1, 8, 3.58, -11.79, 1, 1, 8, -8.37, -10.49, 1, 1, 8, -15.36, -3.99, 1, 1, 11, 29.51, -0.54, 1, 2, 8, 38.68, -1.43, 0.57762, 11, -3.06, -1.58, 0.42238, 1, 8, 7.07, -1.77, 1, 1, 11, 13.64, 2.15, 1, 1, 8, 23.56, -0.83, 1 ],
|
||||
"hull": 24,
|
||||
"edges": [ 0, 2, 2, 4, 4, 6, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 38, 40, 40, 42, 42, 44, 44, 46, 46, 0, 10, 34, 30, 32, 32, 34, 10, 12, 12, 14, 6, 8, 8, 10, 34, 36, 36, 38, 8, 36 ],
|
||||
"width": 71,
|
||||
"height": 75
|
||||
}
|
||||
},
|
||||
"R-leg": {
|
||||
"leg": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 1, 0.23129, 1, 0.29498, 1, 0.37025, 1, 0.44552, 1, 0.50921, 1, 0.65976, 1, 0.71766, 1, 0.87399, 0.73924, 1, 0.22971, 1, 0, 0.89715, 0, 0.64818, 0.01978, 0.59915, 0.08517, 0.43712, 0.10542, 0.38694, 0.13057, 0.32459, 0.15317, 0.26859, 0.178, 0.20707, 0.26155, 0, 1, 0, 0.61186, 0.12128, 0.51632, 0.54396 ],
|
||||
"triangles": [ 21, 13, 4, 21, 4, 5, 12, 13, 21, 12, 21, 5, 12, 5, 6, 11, 12, 6, 9, 10, 11, 11, 6, 9, 6, 8, 9, 7, 8, 6, 20, 18, 19, 20, 19, 0, 17, 18, 20, 17, 20, 0, 17, 0, 1, 16, 17, 1, 16, 1, 2, 15, 16, 2, 15, 2, 3, 14, 15, 3, 14, 3, 4, 13, 14, 4 ],
|
||||
"vertices": [ 1, 9, 7.41, 14.89, 1, 2, 9, 13.71, 15.24, 0.99432, 10, -23.16, 14.24, 0.00568, 2, 9, 21.15, 15.65, 0.91831, 10, -15.74, 14.89, 0.08169, 2, 9, 28.59, 16.06, 0.65731, 10, -8.32, 15.53, 0.34269, 2, 9, 34.88, 16.4, 0.33128, 10, -2.03, 16.08, 0.66872, 2, 9, 49.77, 17.22, 0.00401, 10, 12.81, 17.36, 0.99599, 1, 10, 18.52, 17.86, 1, 1, 10, 33.94, 19.2, 1, 1, 10, 47.18, 10.92, 1, 1, 10, 48.77, -7.35, 1, 1, 10, 39.34, -16.47, 1, 2, 9, 50.6, -18.79, 0.01347, 10, 14.78, -18.6, 0.98653, 2, 9, 45.72, -18.34, 0.05687, 10, 9.88, -18.31, 0.94313, 2, 9, 29.57, -16.87, 0.66681, 10, -6.3, -17.35, 0.33319, 2, 9, 24.57, -16.42, 0.86313, 10, -11.31, -17.05, 0.13687, 2, 9, 18.36, -15.85, 0.97673, 10, -17.54, -16.68, 0.02327, 2, 9, 12.77, -15.35, 0.99935, 10, -23.13, -16.35, 6.5E-4, 1, 9, 6.64, -14.79, 1, 2, 9, -13.99, -12.91, 0.99999, 10, -49.96, -14.76, 1.0E-5, 1, 9, -15.45, 13.63, 1, 1, 9, -2.7, 0.34, 1, 2, 9, 39.28, -0.79, 0.02735, 10, 2.9, -0.97, 0.97265 ],
|
||||
"hull": 20,
|
||||
"edges": [ 36, 38, 20, 22, 18, 20, 16, 18, 16, 14, 22, 24, 24, 10, 10, 12, 12, 14, 12, 22, 24, 26, 10, 8, 26, 8, 8, 6, 26, 28, 6, 28, 28, 30, 6, 4, 30, 4, 4, 2, 30, 32, 2, 32, 32, 34, 34, 36, 2, 0, 0, 38, 34, 0 ],
|
||||
"width": 36,
|
||||
"height": 99
|
||||
}
|
||||
},
|
||||
"torso": {
|
||||
"torso": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.87097, 0.13351, 1, 0.26703, 1, 0.45027, 1, 0.63351, 1, 0.81676, 1, 1, 0.75, 1, 0.5, 1, 0.25, 1, 0, 1, 0, 0.72402, 0, 0.44805, 0.09823, 0.22402, 0.19646, 0, 0.4692, 0, 0.74195, 0, 0.58869, 0.13132, 0.401, 0.46063, 0.8354, 0.50156, 0.42394, 0.2675, 0.36228, 0.63166, 0.58839, 0.76773, 0.71972, 0.25773, 0.84058, 0.76485, 0.57726, 0.50305, 0.24069, 0.44016, 0.19158, 0.8008, 0.29695, 0.12289, 0.37843, 0.84006, 0.71037, 0.63433, 0.15889, 0.60896 ],
|
||||
"triangles": [ 8, 26, 28, 8, 28, 7, 9, 26, 8, 9, 10, 26, 23, 4, 5, 6, 23, 5, 7, 21, 6, 6, 21, 23, 23, 3, 4, 7, 28, 21, 26, 20, 28, 28, 20, 21, 10, 30, 26, 26, 30, 20, 20, 24, 21, 21, 29, 23, 21, 24, 29, 29, 18, 23, 23, 18, 3, 10, 11, 30, 29, 24, 18, 18, 2, 3, 30, 25, 20, 20, 17, 24, 20, 25, 17, 30, 11, 25, 2, 18, 1, 11, 12, 25, 22, 19, 16, 22, 0, 1, 19, 14, 16, 19, 27, 14, 22, 15, 0, 22, 16, 15, 12, 13, 27, 16, 14, 15, 27, 13, 14, 22, 24, 19, 1, 18, 22, 25, 27, 19, 25, 12, 27, 17, 19, 24, 24, 22, 18, 17, 25, 19 ],
|
||||
"vertices": [ 1, 3, 31.69, -23.15, 1, 2, 3, 19.07, -31.25, 0.60494, 2, 57.15, -30.53, 0.39506, 2, 3, 1.66, -31.39, 0.39506, 2, 39.74, -30.66, 0.60494, 2, 3, -15.75, -31.53, 0.20988, 2, 22.33, -30.8, 0.79012, 1, 5, -7.76, 14.89, 1, 1, 5, 9.48, 12.45, 1, 1, 5, 7.3, -2.9, 1, 2, 5, 5.13, -18.25, 0.488, 9, 5.77, 18.5, 0.512, 2, 5, 2.96, -33.59, 0.16267, 9, 6.62, 3.03, 0.83733, 3, 3, -51.05, 30.2, 0.06996, 2, -12.97, 30.92, 0.26337, 9, 7.46, -12.45, 0.66667, 1, 9, -18.72, -13.88, 1, 2, 3, 1.38, 30.61, 0.39506, 2, 39.46, 31.34, 0.60494, 2, 3, 22.71, 24.69, 0.60494, 2, 60.79, 25.41, 0.39506, 1, 3, 44.04, 18.76, 1, 1, 3, 44.18, 1.86, 1, 1, 3, 44.31, -15.05, 1, 1, 3, 31.76, -5.65, 1, 2, 3, 0.38, 5.74, 0.448, 2, 38.46, 6.47, 0.552, 2, 3, -3.29, -21.22, 0.448, 2, 34.79, -20.5, 0.552, 1, 3, 18.74, 4.46, 1, 1, 2, 22.2, 8.74, 1, 2, 2, 9.38, -5.38, 0.52, 5, -15.95, -9.73, 0.48, 1, 3, 19.82, -13.87, 1, 2, 2, 9.78, -21.01, 0.52, 5, -14.03, 5.79, 0.48, 2, 3, -3.56, -5.22, 0.448, 2, 34.52, -4.49, 0.552, 2, 3, 2.25, 15.69, 0.448, 2, 40.33, 16.42, 0.552, 2, 2, 6.04, 19.2, 0.584, 9, -12.08, -1.62, 0.416, 1, 3, 32.42, 12.44, 1, 2, 2, 2.41, 7.58, 0.584, 9, -8.99, 10.15, 0.416, 1, 2, 22.11, -12.84, 1, 1, 2, 24.25, 21.37, 1 ],
|
||||
"hull": 16,
|
||||
"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 0 ],
|
||||
"width": 62,
|
||||
"height": 95
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"animations": {
|
||||
"animation": {
|
||||
"bones": {
|
||||
"abdomen": {
|
||||
"rotate": [
|
||||
{
|
||||
"curve": [ 0.075, 0, 0.112, 6.52 ]
|
||||
},
|
||||
{ "time": 0.3, "value": 6.52 },
|
||||
{ "time": 1.3333 }
|
||||
]
|
||||
},
|
||||
"chest": {
|
||||
"rotate": [
|
||||
{
|
||||
"curve": [ 0.092, 0, 0.137, 13.73 ]
|
||||
},
|
||||
{
|
||||
"time": 0.3667,
|
||||
"value": 13.73,
|
||||
"curve": [ 0.469, 13.73, 0.562, 13.32 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"value": 12.78,
|
||||
"curve": [ 0.77, 12.78, 0.842, 9.11 ]
|
||||
},
|
||||
{
|
||||
"time": 0.9,
|
||||
"value": 9.11,
|
||||
"curve": [ 1.092, 9.11, 1.225, 0 ]
|
||||
},
|
||||
{ "time": 1.3333 }
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotate": [
|
||||
{
|
||||
"curve": [ 0.035, 0, 0.061, -5.44 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1,
|
||||
"value": -10.88,
|
||||
"curve": [ 0.183, -10.88, 0.35, 6.77 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4333,
|
||||
"value": 6.77,
|
||||
"curve": [ 1.157, 6.77, 0.966, 0.14 ]
|
||||
},
|
||||
{ "time": 1.3333 }
|
||||
]
|
||||
},
|
||||
"R-arm": {
|
||||
"rotate": [
|
||||
{
|
||||
"curve": [ 0.042, 0, 0.125, -26.35 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1667,
|
||||
"value": -26.35,
|
||||
"curve": [ 0.233, -26.35, 0.367, -6.09 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4333,
|
||||
"value": -6.09,
|
||||
"curve": [ 0.658, -6.09, 1.108, 0 ]
|
||||
},
|
||||
{ "time": 1.3333 }
|
||||
]
|
||||
},
|
||||
"L-arm": {
|
||||
"rotate": [
|
||||
{
|
||||
"curve": [ 0.083, 0, 0.125, 53.01 ]
|
||||
},
|
||||
{
|
||||
"time": 0.3333,
|
||||
"value": 53.01,
|
||||
"curve": [ 0.477, 52.83, 0.538, 35.12 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6,
|
||||
"value": 35.12,
|
||||
"curve": [ 0.682, 35.12, 0.754, 56.78 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8333,
|
||||
"value": 56.78,
|
||||
"curve": [ 1.128, 56.78, 1.181, 0 ]
|
||||
},
|
||||
{ "time": 1.3333 }
|
||||
]
|
||||
},
|
||||
"R-forearm": {
|
||||
"rotate": [
|
||||
{
|
||||
"curve": [ 0.116, 0, 0.203, 4.89 ]
|
||||
},
|
||||
{
|
||||
"time": 0.3333,
|
||||
"value": 9.78,
|
||||
"curve": [ 0.583, 9.78, 0.804, 0 ]
|
||||
},
|
||||
{ "time": 1.3333 }
|
||||
]
|
||||
},
|
||||
"L-forearm": {
|
||||
"rotate": [
|
||||
{
|
||||
"value": 14.9,
|
||||
"curve": [ 0.143, -80.79, 0.229, 32.08 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4333,
|
||||
"value": 32.08,
|
||||
"curve": [ 0.562, 32.08, 0.497, -11.74 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6333,
|
||||
"value": -11.74,
|
||||
"curve": [ 0.814, -11.74, 0.749, 58 ]
|
||||
},
|
||||
{
|
||||
"time": 0.9333,
|
||||
"value": 58,
|
||||
"curve": [ 1.033, 58, 1.185, 14.9 ]
|
||||
},
|
||||
{ "time": 1.3333, "value": 14.9 }
|
||||
]
|
||||
},
|
||||
"scalp": {
|
||||
"rotate": [
|
||||
{
|
||||
"value": -7.01,
|
||||
"curve": [ 0.095, -7.01, 0.171, -0.43 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2667,
|
||||
"value": 7.61,
|
||||
"curve": [ 0.35, 4.26, 0.458, 0 ]
|
||||
},
|
||||
{ "time": 0.6667 },
|
||||
{ "time": 1.3333, "value": -7.01 }
|
||||
]
|
||||
},
|
||||
"hair1": {
|
||||
"rotate": [
|
||||
{
|
||||
"value": -8.8,
|
||||
"curve": [ 0.067, -8.8, 0.1, -16.02 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2667,
|
||||
"value": -16.02,
|
||||
"curve": [ 0.333, -16.02, 0.41, 29.39 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5333,
|
||||
"value": 29.39,
|
||||
"curve": [ 0.733, 29.39, 0.885, -8.8 ]
|
||||
},
|
||||
{ "time": 1.3333, "value": -8.8 }
|
||||
]
|
||||
},
|
||||
"hair2": {
|
||||
"rotate": [
|
||||
{
|
||||
"value": 4.65,
|
||||
"curve": [ 0.141, 4.65, 0.125, -17.96 ]
|
||||
},
|
||||
{
|
||||
"time": 0.3333,
|
||||
"value": -17.96,
|
||||
"curve": [ 0.408, -17.96, 0.494, 6.63 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6333,
|
||||
"value": 6.63,
|
||||
"curve": [ 0.808, 6.63, 0.941, 4.65 ]
|
||||
},
|
||||
{ "time": 1.3333, "value": 4.65 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.json"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://2iqykoiop2tc"
|
||||
path="res://.godot/imported/raggedy spineboy.spine-json-d90ee4b829503274afa3dbf64c369460.spjson"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/raggedyspineboy/raggedy spineboy.spine-json"
|
||||
dest_files=["res://.godot/imported/raggedy spineboy.spine-json-d90ee4b829503274afa3dbf64c369460.spjson"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
spine-godot/example-v4-csharp/assets/raptor/light-sprite.png
Normal file
BIN
spine-godot/example-v4-csharp/assets/raptor/light-sprite.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@ -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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
spine-godot/example-v4-csharp/assets/raptor/n_raptor.png
Normal file
BIN
spine-godot/example-v4-csharp/assets/raptor/n_raptor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 518 KiB |
@ -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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/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,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-csharp/assets/raptor/raptor-pro.skel
Normal file
BIN
spine-godot/example-v4-csharp/assets/raptor/raptor-pro.skel
Normal file
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.skel"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://dor8huwld4f84"
|
||||
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-csharp/assets/raptor/raptor.atlas
Normal file
100
spine-godot/example-v4-csharp/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
|
||||
@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.atlas"
|
||||
type="SpineAtlasResource"
|
||||
uid="uid://dhtyf5vltqsjg"
|
||||
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-csharp/assets/raptor/raptor.png
Normal file
BIN
spine-godot/example-v4-csharp/assets/raptor/raptor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 411 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ucvdpil67hul"
|
||||
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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/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=3 uid="uid://cb6rn6vonqbx0"]
|
||||
|
||||
[ext_resource type="SpineAtlasResource" uid="uid://dt2kctrit34y0" path="res://assets/spineboy/spineboy.atlas" id="1"]
|
||||
[ext_resource type="SpineSkeletonFileResource" uid="uid://bngulrxfavqyn" path="res://assets/spineboy/spineboy-pro.spine-json" 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")]
|
||||
BIN
spine-godot/example-v4-csharp/assets/spineboy/spineboy-pro.skel
Normal file
BIN
spine-godot/example-v4-csharp/assets/spineboy/spineboy-pro.skel
Normal file
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.skel"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://cth0eypg16cgi"
|
||||
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]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.json"
|
||||
type="SpineSkeletonFileResource"
|
||||
uid="uid://bngulrxfavqyn"
|
||||
path="res://.godot/imported/spineboy-pro.spine-json-f9f3900b0187b1b6e5b1abca50f5f02a.spjson"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/spineboy/spineboy-pro.spine-json"
|
||||
dest_files=["res://.godot/imported/spineboy-pro.spine-json-f9f3900b0187b1b6e5b1abca50f5f02a.spjson"]
|
||||
|
||||
[params]
|
||||
|
||||
101
spine-godot/example-v4-csharp/assets/spineboy/spineboy.atlas
Normal file
101
spine-godot/example-v4-csharp/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
|
||||
@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="spine.atlas"
|
||||
type="SpineAtlasResource"
|
||||
uid="uid://dt2kctrit34y0"
|
||||
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-csharp/assets/spineboy/spineboy.png
Normal file
BIN
spine-godot/example-v4-csharp/assets/spineboy/spineboy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 238 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bh5imhdfuc6m0"
|
||||
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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/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-csharp/default_env.tres
Normal file
7
spine-godot/example-v4-csharp/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,8 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class Spineboy : SpineSprite {
|
||||
public override void _Ready() {
|
||||
GetAnimationState().SetAnimation("run", true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://d0v5rhv2ysej8"]
|
||||
|
||||
[ext_resource type="Script" path="res://examples/01-helloworld/Spineboy.cs" id="2_2c2a7"]
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" path="res://assets/spineboy/spineboy-data-res.tres" id="3"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(505, 466)
|
||||
scale = Vector2(0.466832, 0.466832)
|
||||
skeleton_data_res = ExtResource("3")
|
||||
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_skin = "Default"
|
||||
preview_animation = "run"
|
||||
preview_frame = true
|
||||
preview_time = 0.24
|
||||
script = ExtResource("2_2c2a7")
|
||||
@ -0,0 +1,43 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class AnimationStateListener : Node2D
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
var footStepAudio = GetNode<AudioStreamPlayer>("FootstepAudio");
|
||||
var spineboy = GetNode<SpineSprite>("Spineboy");
|
||||
spineboy.AnimationStarted += (sprite, animationState, trackEntry) =>
|
||||
{
|
||||
var spineTrackEntry = trackEntry as SpineTrackEntry;
|
||||
Console.WriteLine("Animation started: " + spineTrackEntry.GetAnimation().GetName());
|
||||
};
|
||||
spineboy.AnimationInterrupted += (sprite, animationState, trackEntry) =>
|
||||
{
|
||||
var spineTrackEntry = trackEntry as SpineTrackEntry;
|
||||
Console.WriteLine("Animation interrupted: " + spineTrackEntry.GetAnimation().GetName());
|
||||
};
|
||||
spineboy.AnimationCompleted += (sprite, animationState, trackEntry) =>
|
||||
{
|
||||
var spineTrackEntry = trackEntry as SpineTrackEntry;
|
||||
Console.WriteLine("Animation completed: " + spineTrackEntry.GetAnimation().GetName());
|
||||
};
|
||||
spineboy.AnimationDisposed += (sprite, animationState, trackEntry) =>
|
||||
{
|
||||
var spineTrackEntry = trackEntry as SpineTrackEntry;
|
||||
Console.WriteLine("Animation disposed: " + spineTrackEntry.GetAnimation().GetName());
|
||||
};
|
||||
spineboy.AnimationEvent += (sprite, animationState, trackEntry, eventObject) =>
|
||||
{
|
||||
var spineTrackEntry = trackEntry as SpineTrackEntry;
|
||||
var spineEvent = eventObject as SpineEvent;
|
||||
Console.WriteLine("Animation event: " + spineTrackEntry.GetAnimation().GetName() + ", " + spineEvent.GetData().GetEventName());
|
||||
if (spineEvent.GetData().GetEventName() == "footstep")
|
||||
footStepAudio.Play();
|
||||
};
|
||||
var animationState = spineboy.GetAnimationState();
|
||||
animationState.SetAnimation("jump", false, 0);
|
||||
animationState.AddAnimation("walk", 0, true, 0);
|
||||
animationState.AddAnimation("run", 2, true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://c738i3nbdkn0h"]
|
||||
|
||||
[ext_resource type="Script" path="res://examples/02-animation-state-listeners/AnimationStateListener.cs" id="1_cedgs"]
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" 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_cedgs")
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(473, 487)
|
||||
scale = Vector2(0.575051, 0.575051)
|
||||
skeleton_data_res = ExtResource("2")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
|
||||
[node name="FootstepAudio" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("3")
|
||||
@ -0,0 +1,29 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class MixAndMatch : SpineSprite
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
var data = GetSkeleton().GetData();
|
||||
var custom_skin = NewSkin("custom-skin");
|
||||
var skin_base = data.FindSkin("skin-base");
|
||||
custom_skin.AddSkin(skin_base);
|
||||
custom_skin.AddSkin(data.FindSkin("nose/short"));
|
||||
custom_skin.AddSkin(data.FindSkin("eyelids/girly"));
|
||||
custom_skin.AddSkin(data.FindSkin("eyes/violet"));
|
||||
custom_skin.AddSkin(data.FindSkin("hair/brown"));
|
||||
custom_skin.AddSkin(data.FindSkin("clothes/hoodie-orange"));
|
||||
custom_skin.AddSkin(data.FindSkin("legs/pants-jeans"));
|
||||
custom_skin.AddSkin(data.FindSkin("accessories/bag"));
|
||||
custom_skin.AddSkin(data.FindSkin("accessories/hat-red-yellow"));
|
||||
GetSkeleton().SetSkin(custom_skin);
|
||||
|
||||
foreach (SpineSkinEntry entry in custom_skin.GetAttachments())
|
||||
{
|
||||
Console.WriteLine(entry.GetSlotIndex() + " " + entry.GetName());
|
||||
}
|
||||
|
||||
GetAnimationState().SetAnimation("dance", true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
[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/MixAndMatch.cs" id="2_80tsf"]
|
||||
|
||||
[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")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
script = ExtResource("2_80tsf")
|
||||
@ -0,0 +1,33 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class SpineboyInput : SpineSprite
|
||||
{
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
GetAnimationState().SetAnimation("idle", true, 0);
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (Input.IsActionJustPressed("ui_left"))
|
||||
{
|
||||
GetAnimationState().SetAnimation("run", true, 0);
|
||||
GetSkeleton().SetScaleX(-1);
|
||||
}
|
||||
|
||||
if (Input.IsActionJustReleased("ui_left"))
|
||||
GetAnimationState().SetAnimation("idle", true, 0);
|
||||
|
||||
if (Input.IsActionJustPressed("ui_right"))
|
||||
{
|
||||
GetAnimationState().SetAnimation("run", true, 0);
|
||||
GetSkeleton().SetScaleX(1);
|
||||
}
|
||||
|
||||
if (Input.IsActionJustReleased("ui_right"))
|
||||
GetAnimationState().SetAnimation("idle", true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bgdpghp11j3kg"]
|
||||
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" path="res://assets/spineboy/spineboy-data-res.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://examples/04-simple-input/SpineboyInput.cs" id="2_4ryek"]
|
||||
|
||||
[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")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
script = ExtResource("2_4ryek")
|
||||
@ -0,0 +1,22 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class MouseFollowing : Node2D
|
||||
{
|
||||
private SpineSprite spineboy;
|
||||
|
||||
private SpineBoneNode crosshairBonne;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
spineboy = GetNode<SpineSprite>("Spineboy");
|
||||
crosshairBonne = spineboy.GetNode<SpineBoneNode>("CrosshairBone");
|
||||
spineboy.GetAnimationState().SetAnimation("walk", true, 0);
|
||||
spineboy.GetAnimationState().SetAnimation("aim", true, 1);
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
crosshairBonne.GlobalPosition = GetViewport().GetMousePosition();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://borp2l17n5xw1"]
|
||||
|
||||
[ext_resource type="Script" path="res://examples/05-mouse-following/MouseFollowing.cs" id="1_sgiuf"]
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" path="res://assets/spineboy/spineboy-data-res.tres" id="2"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource("1_sgiuf")
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(481, 457)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
skeleton_data_res = ExtResource("2")
|
||||
preview_skin = "Default"
|
||||
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
|
||||
@ -0,0 +1,10 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class BoneFollowing : Node2D
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
GetNode<SpineSprite>("Spineboy").GetAnimationState().SetAnimation("walk", true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bir7yvf0qwdge"]
|
||||
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" path="res://assets/spineboy/spineboy-data-res.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://examples/06-bone-following/BoneFollowing.cs" id="1_2vlen"]
|
||||
[ext_resource type="Texture2D" uid="uid://8ud5n2ywp5ba" path="res://icon.png" id="3"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource("1_2vlen")
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(478, 483)
|
||||
scale = Vector2(0.58461, 0.58461)
|
||||
skeleton_data_res = ExtResource("1")
|
||||
preview_skin = "Default"
|
||||
preview_animation = ""
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
|
||||
[node name="GunTipBone" type="SpineBoneNode" parent="Spineboy"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(214.298, -162.047)
|
||||
rotation = 0.713316
|
||||
scale = Vector2(1, 1)
|
||||
bone_name = "gun-tip"
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="Spineboy/GunTipBone"]
|
||||
texture = ExtResource("3")
|
||||
@ -0,0 +1,17 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class SlotNode : Node2D
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
SpineSprite spineboy = GetNode<SpineSprite>("Spineboy");
|
||||
SpineSprite raptor = GetNode<SpineSprite>("Spineboy/GunSlot/Raptor");
|
||||
SpineSprite tinySpineboy = GetNode<SpineSprite>("Spineboy/FrontFirstSlot/TinySpineboy");
|
||||
|
||||
var entry = spineboy.GetAnimationState().SetAnimation("run", true, 0);
|
||||
entry.SetTimeScale(0.1f);
|
||||
raptor.GetAnimationState().SetAnimation("walk", true, 0);
|
||||
tinySpineboy.GetAnimationState().SetAnimation("walk", true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bhht8dees2pyq"]
|
||||
|
||||
[ext_resource type="Script" path="res://examples/07-slot-node/SlotNode.cs" id="1_8cn0r"]
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" 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_8cn0r")
|
||||
|
||||
[node name="Spineboy" type="SpineSprite" parent="."]
|
||||
position = Vector2(474, 506)
|
||||
scale = Vector2(0.560712, 0.560712)
|
||||
skeleton_data_res = ExtResource("2")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
|
||||
[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/GunSlot"]
|
||||
position = Vector2(84.6909, -67.9174)
|
||||
scale = Vector2(0.193472, 0.193472)
|
||||
skeleton_data_res = ExtResource("3")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
|
||||
[node name="EyeSlot" type="SpineSlotNode" parent="Spineboy"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(-23.4598, -402.301)
|
||||
rotation = -1.71793
|
||||
scale = Vector2(1, 1)
|
||||
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/FrontFistSlot"]
|
||||
position = Vector2(-2.64624, -10.8111)
|
||||
scale = Vector2(0.193389, 0.193389)
|
||||
skeleton_data_res = ExtResource("2")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
@ -0,0 +1,52 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class PlayCutscene : Node2D
|
||||
{
|
||||
AnimationPlayer player;
|
||||
SpineSprite spineboy;
|
||||
float speed = 400;
|
||||
float velocityX = 0;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
player = GetNode<AnimationPlayer>("AnimationPlayer");
|
||||
player.Play("cutscene");
|
||||
spineboy = GetNode<SpineSprite>("Spineboy");
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (player.IsPlaying()) return;
|
||||
|
||||
if (Input.IsActionJustPressed("ui_left"))
|
||||
{
|
||||
spineboy.GetAnimationState().SetAnimation("run", true, 0);
|
||||
spineboy.GetSkeleton().SetScaleX(-1);
|
||||
velocityX = -1;
|
||||
}
|
||||
|
||||
if (Input.IsActionJustReleased("ui_left"))
|
||||
{
|
||||
spineboy.GetAnimationState().SetAnimation("idle", true, 0);
|
||||
velocityX = 0;
|
||||
}
|
||||
|
||||
if (Input.IsActionJustPressed("ui_right"))
|
||||
{
|
||||
spineboy.GetAnimationState().SetAnimation("run", true, 0);
|
||||
spineboy.GetSkeleton().SetScaleX(1);
|
||||
velocityX = 1;
|
||||
}
|
||||
|
||||
if (Input.IsActionJustReleased("ui_right"))
|
||||
{
|
||||
spineboy.GetAnimationState().SetAnimation("idle", true, 0);
|
||||
velocityX = 0;
|
||||
}
|
||||
|
||||
var newPosition = spineboy.Position;
|
||||
newPosition.X += velocityX * speed * (float)delta;
|
||||
spineboy.Position = newPosition;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,45 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://b4p2vn7bwm52a"]
|
||||
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" 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_skin = "Default"
|
||||
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
|
||||
scale = Vector2(1, 1)
|
||||
slot_name = "gun"
|
||||
normal_material = SubResource("4")
|
||||
@ -0,0 +1,27 @@
|
||||
[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="Script" path="res://examples/10-2d-lighting/Lighting.cs" id="1_cdnty"]
|
||||
[ext_resource type="Texture2D" uid="uid://cggfs567rn1ay" path="res://assets/raptor/light-sprite.png" id="2"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource("1_cdnty")
|
||||
|
||||
[node name="SpineSprite" type="SpineSprite" parent="."]
|
||||
position = Vector2(576, 506)
|
||||
scale = Vector2(0.458967, 0.458967)
|
||||
skeleton_data_res = ExtResource("1")
|
||||
preview_skin = "Default"
|
||||
preview_animation = "-- Empty --"
|
||||
preview_frame = false
|
||||
preview_time = 0.0
|
||||
|
||||
[node name="Light2D" type="PointLight2D" parent="."]
|
||||
position = Vector2(691, 283)
|
||||
scale = Vector2(1.51563, 1.51563)
|
||||
color = Color(1, 0.0117647, 0.0117647, 1)
|
||||
texture = ExtResource("2")
|
||||
height = 100.0
|
||||
|
||||
[node name="CanvasModulate" type="CanvasModulate" parent="."]
|
||||
color = Color(0.223529, 0.160784, 0.160784, 1)
|
||||
@ -0,0 +1,10 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class Lighting : Node2D
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
GetNode<SpineSprite>("SpineSprite").GetAnimationState().SetAnimation("walk", true, 0);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class BoneNode : Node2D
|
||||
{
|
||||
private SpineSprite spineboy;
|
||||
private SpineBoneNode centerBone;
|
||||
private RayCast2D centerRay;
|
||||
private SpineBoneNode targetBone;
|
||||
private RayCast2D targetRay;
|
||||
private SpineBoneNode hipBone;
|
||||
private float centerHipDistance = 0;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
spineboy = GetNode<SpineSprite>("SpineSprite");
|
||||
centerBone = GetNode<SpineBoneNode>("SpineSprite/HoverboardCenterBone");
|
||||
centerRay = GetNode<RayCast2D>("SpineSprite/HoverboardCenterBone/CenterRay");
|
||||
targetBone = GetNode<SpineBoneNode>("SpineSprite/HoverboardTargetBone");
|
||||
targetRay = GetNode<RayCast2D>("SpineSprite/HoverboardTargetBone/TargetRay");
|
||||
hipBone = GetNode<SpineBoneNode>("SpineSprite/HipBone");
|
||||
spineboy.GetAnimationState().SetAnimation("hoverboard", true, 0);
|
||||
spineboy.UpdateSkeleton(0);
|
||||
centerHipDistance = hipBone.GlobalPosition.Y - centerBone.GlobalPosition.Y;
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (targetRay.IsColliding())
|
||||
{
|
||||
var newPosition = targetBone.GlobalPosition;
|
||||
newPosition.Y = targetRay.GetCollisionPoint().Y - 30;
|
||||
targetBone.Position = newPosition;
|
||||
}
|
||||
|
||||
if (centerRay.IsColliding())
|
||||
{
|
||||
var newPosition = centerBone.GlobalPosition;
|
||||
newPosition.Y = centerRay.GetCollisionPoint().Y - 30;
|
||||
centerBone.Position = newPosition;
|
||||
}
|
||||
|
||||
if (Math.Abs(hipBone.GlobalPosition.Y - centerBone.GlobalPosition.Y) - Math.Abs(centerHipDistance) < 20)
|
||||
{
|
||||
var newPosition = hipBone.GlobalPosition;
|
||||
newPosition.Y = centerBone.GlobalPosition.Y + centerHipDistance;
|
||||
hipBone.Position = newPosition;
|
||||
}
|
||||
|
||||
var position = spineboy.GlobalPosition;
|
||||
position.X += (float)delta * 150;
|
||||
spineboy.GlobalPosition = position;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://chrw4i0nksphn"]
|
||||
|
||||
[ext_resource type="Script" path="res://examples/11-bone-node/BoneNode.cs" id="1_sspn4"]
|
||||
[ext_resource type="SpineSkeletonDataResource" uid="uid://cb6rn6vonqbx0" path="res://assets/spineboy/spineboy-data-res.tres" id="2"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource("1_sspn4")
|
||||
|
||||
[node name="SpineSprite" type="SpineSprite" parent="."]
|
||||
position = Vector2(13, 569)
|
||||
scale = Vector2(0.278096, 0.278096)
|
||||
skeleton_data_res = ExtResource("2")
|
||||
update_mode = 1
|
||||
preview_skin = "Default"
|
||||
preview_animation = "hoverboard"
|
||||
preview_frame = true
|
||||
preview_time = 0.0
|
||||
|
||||
[node name="HoverboardCenterBone" type="SpineBoneNode" parent="SpineSprite"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(-10.1996, -68.2213)
|
||||
rotation = -0.00403465
|
||||
bone_name = "hoverboard-controller"
|
||||
bone_mode = 1
|
||||
|
||||
[node name="CenterRay" type="RayCast2D" parent="SpineSprite/HoverboardCenterBone"]
|
||||
target_position = Vector2(0, 10000)
|
||||
|
||||
[node name="HoverboardTargetBone" type="SpineBoneNode" parent="SpineSprite"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(258.903, -71.9176)
|
||||
rotation = -0.000872665
|
||||
bone_name = "board-ik"
|
||||
bone_mode = 1
|
||||
|
||||
[node name="TargetRay" type="RayCast2D" parent="SpineSprite/HoverboardTargetBone"]
|
||||
position = Vector2(-3.59872, 3.59277)
|
||||
target_position = Vector2(0, 10000)
|
||||
|
||||
[node name="HipBone" type="SpineBoneNode" parent="SpineSprite"]
|
||||
show_behind_parent = true
|
||||
position = Vector2(-53.7338, -279.363)
|
||||
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)
|
||||
Binary file not shown.
Binary file not shown.
BIN
spine-godot/example-v4-csharp/godot-nuget/GodotSharp.4.1.1.nupkg
Normal file
BIN
spine-godot/example-v4-csharp/godot-nuget/GodotSharp.4.1.1.nupkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
spine-godot/example-v4-csharp/icon.png
Normal file
BIN
spine-godot/example-v4-csharp/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
34
spine-godot/example-v4-csharp/icon.png.import
Normal file
34
spine-godot/example-v4-csharp/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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
6
spine-godot/example-v4-csharp/nuget.config
Normal file
6
spine-godot/example-v4-csharp/nuget.config
Normal file
@ -0,0 +1,6 @@
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<!-- package source is additive -->
|
||||
<add key="godot-nuget" value="./godot-nuget" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
39
spine-godot/example-v4-csharp/project.godot
Normal file
39
spine-godot/example-v4-csharp/project.godot
Normal file
@ -0,0 +1,39 @@
|
||||
; 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/04-simple-input/simple-input.tscn"
|
||||
config/features=PackedStringArray("4.1", "C#")
|
||||
run/low_processor_mode=true
|
||||
config/icon="res://icon.png"
|
||||
|
||||
[dotnet]
|
||||
|
||||
project/assembly_name="spine-godot-examples"
|
||||
|
||||
[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"
|
||||
@ -0,0 +1,7 @@
|
||||
<Project Sdk="Godot.NET.Sdk/4.1.1">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
<RootNamespace>spinegodotexamples</RootNamespace>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
19
spine-godot/example-v4-csharp/spine-godot-examples.sln
Normal file
19
spine-godot/example-v4-csharp/spine-godot-examples.sln
Normal file
@ -0,0 +1,19 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2012
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spine-godot-examples", "spine-godot-examples.csproj", "{B21498ED-66AD-4BA6-9E10-71D7C93549C9}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
ExportDebug|Any CPU = ExportDebug|Any CPU
|
||||
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B21498ED-66AD-4BA6-9E10-71D7C93549C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B21498ED-66AD-4BA6-9E10-71D7C93549C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B21498ED-66AD-4BA6-9E10-71D7C93549C9}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||
{B21498ED-66AD-4BA6-9E10-71D7C93549C9}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||
{B21498ED-66AD-4BA6-9E10-71D7C93549C9}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||
{B21498ED-66AD-4BA6-9E10-71D7C93549C9}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@ -831,6 +831,24 @@ void SpineSprite::update_meshes(Ref<SpineSkeleton> skeleton_ref) {
|
||||
skeleton_clipper->clipEnd();
|
||||
}
|
||||
|
||||
void createLinesFromMesh(Vector<Vector2> &scratch_points, spine::Vector<unsigned short> &triangles, spine::Vector<float> *vertices) {
|
||||
scratch_points.resize(0);
|
||||
for (int i = 0; i < triangles.size(); i += 3) {
|
||||
int i1 = triangles[i];
|
||||
int i2 = triangles[i + 1];
|
||||
int i3 = triangles[i + 2];
|
||||
Vector2 v1(vertices->buffer()[i1 * 2], vertices->buffer()[i1 * 2 + 1]);
|
||||
Vector2 v2(vertices->buffer()[i2 * 2], vertices->buffer()[i2 * 2 + 1]);
|
||||
Vector2 v3(vertices->buffer()[i3 * 2], vertices->buffer()[i3 * 2 + 1]);
|
||||
scratch_points.push_back(v1);
|
||||
scratch_points.push_back(v2);
|
||||
scratch_points.push_back(v2);
|
||||
scratch_points.push_back(v3);
|
||||
scratch_points.push_back(v3);
|
||||
scratch_points.push_back(v1);
|
||||
}
|
||||
}
|
||||
|
||||
void SpineSprite::draw() {
|
||||
if (!animation_state.is_valid() && !skeleton.is_valid()) return;
|
||||
if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) return;
|
||||
@ -857,6 +875,12 @@ void SpineSprite::draw() {
|
||||
auto *vertices = &scratch_vertices;
|
||||
vertices->setSize(8, 0);
|
||||
region->computeWorldVertices(*slot, *vertices, 0);
|
||||
|
||||
// Render triangles.
|
||||
createLinesFromMesh(scratch_points, quad_indices, vertices);
|
||||
draw_polyline(scratch_points, debug_regions_color);
|
||||
|
||||
// Render hull.
|
||||
scratch_points.resize(0);
|
||||
for (int i = 0, j = 0; i < 4; i++, j += 2) {
|
||||
float x = vertices->buffer()[j];
|
||||
@ -888,6 +912,12 @@ void SpineSprite::draw() {
|
||||
auto *vertices = &scratch_vertices;
|
||||
vertices->setSize(mesh->getWorldVerticesLength(), 0);
|
||||
mesh->computeWorldVertices(*slot, *vertices);
|
||||
|
||||
// Render triangles.
|
||||
createLinesFromMesh(scratch_points, mesh->getTriangles(), vertices);
|
||||
draw_polyline(scratch_points, debug_meshes_color);
|
||||
|
||||
// Render hull
|
||||
scratch_points.resize(0);
|
||||
for (int i = 0, j = 0; i < mesh->getHullLength(); i++, j += 2) {
|
||||
float x = vertices->buffer()[j];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user