Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.2 physics example for the spine-godot and the spine-ue runtime #2497

Merged
merged 5 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=3 uid="uid://ivqmuytdfvde"]

[ext_resource type="SpineAtlasResource" uid="uid://cybfgp4juu2hn" path="res://assets/celestial-circus/celestial-circus.atlas" id="1_fivh8"]
[ext_resource type="SpineSkeletonFileResource" uid="uid://rr3h7cd7a3d5" path="res://assets/celestial-circus/celestial-circus.skel" id="2_gq3wo"]

[resource]
atlas_res = ExtResource("1_fivh8")
skeleton_file_res = ExtResource("2_gq3wo")
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
celestial-circus.png
size:984,1032
filter:Linear,Linear
scale:0.4
arm-back-down
bounds:774,7,38,82
rotate:90
arm-back-up
bounds:819,437,83,116
rotate:90
arm-front-down
bounds:863,49,36,78
arm-front-up
bounds:784,47,77,116
bench
bounds:798,668,189,48
rotate:90
body-bottom
bounds:724,165,154,124
rotate:90
body-top
bounds:819,522,126,132
offsets:0,0,126,133
chest
bounds:848,656,104,93
rotate:90
cloud-back
bounds:520,154,202,165
cloud-front
bounds:492,411,325,196
collar
bounds:935,108,47,26
ear
bounds:462,789,20,28
rotate:90
eye-back-shadow
bounds:947,522,14,10
rotate:90
eye-front-shadow
bounds:819,411,24,14
rotate:90
eye-reflex-back
bounds:774,55,8,7
eye-reflex-front
bounds:841,321,10,7
rotate:90
eye-white-back
bounds:214,322,13,16
rotate:90
eye-white-front
bounds:348,2,22,17
rotate:90
eyelashes-down-back
bounds:214,314,11,6
eyelashes-down-front
bounds:943,721,15,6
rotate:90
eyelashes-top-back
bounds:816,656,18,10
eyelashes-top-front
bounds:798,636,30,16
rotate:90
face
bounds:841,333,91,102
offsets:2,0,93,102
feathers-back
bounds:444,811,46,46
feathers-front
bounds:767,323,72,86
fringe-middle-back
bounds:929,54,33,52
fringe-middle-front
bounds:575,2,60,50
rotate:90
fringe-side-back
bounds:848,763,27,94
fringe-side-front
bounds:901,34,26,93
glove-bottom-back
bounds:941,403,51,41
rotate:90
glove-bottom-front
bounds:935,136,47,48
hair-back-1
bounds:214,6,132,306
hair-back-2
bounds:438,27,80,285
hair-back-3
bounds:879,762,70,268
hair-back-4
bounds:520,64,88,262
rotate:90
hair-back-5
bounds:486,321,88,279
rotate:90
hair-back-6
bounds:348,26,88,286
hair-hat-shadow
bounds:850,186,89,41
offsets:1,0,90,41
hand-back
bounds:627,2,60,47
rotate:90
hand-front
bounds:520,2,53,60
hat-back
bounds:937,456,64,45
rotate:90
hat-front
bounds:676,6,96,56
head-back
bounds:850,229,102,86
rotate:90
jabot
bounds:863,129,70,55
leg-back
bounds:2,2,210,333
leg-front
bounds:232,462,258,320
logo-brooch
bounds:444,784,16,25
mouth
bounds:943,738,22,6
rotate:90
neck
bounds:938,278,39,56
nose
bounds:943,712,6,7
nose-highlight
bounds:486,456,4,4
nose-shadow
bounds:724,155,7,8
pupil-back
bounds:972,228,10,14
pupil-front
bounds:964,94,12,18
rotate:90
rope-back
bounds:951,538,10,492
rope-front
bounds:951,538,10,492
rope-front-bottom
bounds:934,336,42,65
skirt
bounds:2,784,440,246
sock-bow
bounds:938,244,33,32
spine-logo-body
bounds:938,229,13,32
rotate:90
star-big
bounds:963,1007,17,23
offsets:1,0,18,24
star-medium
bounds:774,47,6,8
rotate:90
star-small
bounds:462,784,3,4
rotate:90
underskirt
bounds:2,337,445,228
rotate:90
underskirt-back
bounds:444,859,433,171
wing-back
bounds:232,314,146,252
rotate:90
wing-front
bounds:492,609,304,248
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[remap]

importer="spine.atlas"
type="SpineAtlasResource"
uid="uid://cybfgp4juu2hn"
path="res://.godot/imported/celestial-circus.atlas-8277f39286d729eed930dc8584632c9d.spatlas"

[deps]

source_file="res://assets/celestial-circus/celestial-circus.atlas"
dest_files=["res://.godot/imported/celestial-circus.atlas-8277f39286d729eed930dc8584632c9d.spatlas"]

[params]

normal_map_prefix="n"
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://clhc1actm0381"
path="res://.godot/imported/celestial-circus.png-362082edc9ee92c57423ee448ab8be8a.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/celestial-circus/celestial-circus.png"
dest_files=["res://.godot/imported/celestial-circus.png-362082edc9ee92c57423ee448ab8be8a.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
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[remap]

importer="spine.skel"
type="SpineSkeletonFileResource"
uid="uid://rr3h7cd7a3d5"
path="res://.godot/imported/celestial-circus.skel-57e15df02c4ab2ec1bbb6a38273235f3.spskel"

[deps]

source_file="res://assets/celestial-circus/celestial-circus.skel"
dest_files=["res://.godot/imported/celestial-circus.skel-57e15df02c4ab2ec1bbb6a38273235f3.spskel"]

[params]

48 changes: 48 additions & 0 deletions spine-godot/example-v4-csharp/examples/12-physics/physics.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
using Godot;
using System;

public partial class physics : Node2D
{
private SpineSprite celestial_circus;

private float last_x = -1;
private float last_y = -1;
private bool isMouseOver = false;

public override void _Ready()
{
celestial_circus = GetNode<SpineSprite>("celestial-circus");
celestial_circus.GetAnimationState().SetAnimation("wind-idle", true, 0);
celestial_circus.GetAnimationState().SetAnimation("eyeblink-long", true, 1);
celestial_circus.GetAnimationState().SetAnimation("stars", true, 2);
}

public override void _Process(double delta)
{
if (Input.IsMouseButtonPressed(MouseButton.Left) && isMouseOver){
var pos = GetViewport().GetMousePosition();
if(last_x != -1){
var dx = pos.X - last_x;
var dy = pos.Y - last_y;
celestial_circus.GlobalPosition += new Vector2(dx, dy);
celestial_circus.GetSkeleton().PhysicsTranslate(dx * 1 / celestial_circus.Scale.X, dy * 1 / celestial_circus.Scale.Y);
}
last_x = pos.X;
last_y = pos.Y;
}
else{
last_x = -1;
last_y = -1;
}
}

private void _on_area_2d_mouse_entered()
{
isMouseOver = true;
}

private void _on_area_2d_mouse_exited()
{
isMouseOver = false;
}
}
31 changes: 31 additions & 0 deletions spine-godot/example-v4-csharp/examples/12-physics/physics.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[gd_scene load_steps=4 format=3 uid="uid://re2mg31p3vln"]

[ext_resource type="Script" path="res://examples/12-physics/physics.cs" id="1_t1cxt"]
[ext_resource type="SpineSkeletonDataResource" uid="uid://ivqmuytdfvde" path="res://assets/celestial-circus/celestial-circus-data.tres" id="2_t2blj"]

[sub_resource type="RectangleShape2D" id="RectangleShape2D_do8w3"]
size = Vector2(270, 573)

[node name="Node2D" type="Node2D"]
script = ExtResource("1_t1cxt")

[node name="celestial-circus" type="SpineSprite" parent="."]
position = Vector2(600, 485)
scale = Vector2(0.25, 0.25)
skeleton_data_res = ExtResource("2_t2blj")
preview_skin = "Default"
preview_animation = "-- Empty --"
preview_frame = false
preview_time = 0.0

[node name="Area2D" type="Area2D" parent="celestial-circus"]
show_behind_parent = true
scale = Vector2(4, 4)

[node name="CollisionShape2D" type="CollisionShape2D" parent="celestial-circus/Area2D"]
show_behind_parent = true
position = Vector2(0, -158.5)
shape = SubResource("RectangleShape2D_do8w3")

[connection signal="mouse_entered" from="celestial-circus/Area2D" to="." method="_on_area_2d_mouse_entered"]
[connection signal="mouse_exited" from="celestial-circus/Area2D" to="." method="_on_area_2d_mouse_exited"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=3 uid="uid://d1ordmjpe5kt7"]

[ext_resource type="SpineAtlasResource" uid="uid://syvy0bxbnwgi" path="res://assets/celestial-circus/celestial-circus.atlas" id="1_fs1an"]
[ext_resource type="SpineSkeletonFileResource" uid="uid://doan7yl2by7vm" path="res://assets/celestial-circus/celestial-circus.skel" id="2_sbom4"]

[resource]
atlas_res = ExtResource("1_fs1an")
skeleton_file_res = ExtResource("2_sbom4")
Loading
Loading