Files
project-rr/characters/shortstack/shortstack_portrait_combat_native.tscn
T
Leonid PershinandClaude Opus 4.8 04cf5f90b0 ProjectRR — нативный прототип на ассетах ProjectR
- Все 189 скелетов Spine сконвертированы в нативные Godot Skeleton2D (.tscn), без Spine в рантайме
- Меню + сцены: подземелье (карта комнат), просмотр спрайтов, нативные анимации
- Кастомизация цвета (кожа/волосы/глаза) через шейдер
- Вытащенные текстуры/UI/шрифты + нарезка спрайтов из атласа
- Датасет комнат для LoRA, офлайн-инструменты конвертации в tools/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 16:29:21 +03:00

371 lines
17 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/shortstack/spine/shortstack_portrait_combat.png" id="1_yu3lk"]
[sub_resource type="Animation" id="Animation_cq36q"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cmqej"]
_data = {
&"animation": SubResource("Animation_cq36q")
}
[node name="Native" type="Node2D" unique_id=1011340010]
[node name="SpineRoot" type="Node2D" parent="." unique_id=552673941]
position = Vector2(640, 360)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=305609381]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=2135659537]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="C_hairG_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2124656212]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-6.9999995, -11, -58, -11, -58.000004, 75, -7.0000033, 75)
uv = PackedVector2Array(53, 162, 2, 162, 2, 76, 53, 76)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothC" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1812117605]
z_index = 1
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-22.999996, -75, -57.999996, -75, -58, -36, -22.999998, -36)
uv = PackedVector2Array(189, 81, 154, 81, 154, 42.000004, 189, 42.000004)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2108285997]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 2
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(41.000004, -75, -4.9999967, -75, -4.9999986, -29, 41, -29)
uv = PackedVector2Array(235, 135, 189, 135, 189, 89, 235, 89)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1850364892]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 3
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(43.000004, -75, 28.000004, -75, 28.000004, -73, 43.000004, -73)
uv = PackedVector2Array(212.99998, 204, 198, 204, 198, 202, 212.99998, 202)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_body_tits$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=436402259]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 4
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(23.000004, -75, -51.999996, -75, -52, -7, 23, -7)
uv = PackedVector2Array(207, 314, 132, 314, 132, 246, 207, 246)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothB_pregnantsize$0_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=561085354]
z_index = 5
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-30.999996, -75, -42.999996, -75, -42.999996, -70, -30.999996, -70)
uv = PackedVector2Array(195, 7, 183, 7, 183, 2, 195, 2)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairF_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2090287713]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 6
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, -18, -39, -18, -39.000004, 57, 33.999996, 57)
uv = PackedVector2Array(130, 314, 57, 314, 57, 239, 130, 239)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_earB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1768975681]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 7
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(58, -20, 14.000001, -20, 14, 8, 58, 8)
uv = PackedVector2Array(275, 168.99998, 231, 168.99998, 231, 141, 275, 141)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairE_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1311948178]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 8
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(37, -13, 22, -13, 22, 20, 37, 20)
uv = PackedVector2Array(268, 204, 253, 204, 253, 171, 268, 171)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1849639154]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 9
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 7.0000033, -75, 7.0000014, -31, 58, -31)
uv = PackedVector2Array(155, 138, 104, 138, 104, 94, 155, 94)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_nippleB_nipple$0_#08" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1481809655]
modulate = Color(0.9411765, 0.5686275, 0.4627451, 1)
z_index = 10
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 46.000004, -75, 46.000004, -52, 58.000004, -52)
uv = PackedVector2Array(274, 53, 262, 53, 262, 30, 274, 30)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsB_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=768066538]
z_index = 11
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -67, 15.000003, -67, 15.000002, -36, 58, -36)
uv = PackedVector2Array(197, 40, 154, 40, 154, 9, 197, 9)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_pregnant_pregnantsize$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=721731551]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 12
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(17.000004, -75, -9.999997, -75, -9.999997, -70, 17.000004, -70)
uv = PackedVector2Array(181, 7, 154, 7, 154, 2, 181, 2)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_legA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1241233306]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 13
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-43.999996, -75, -44.999996, -75, -44.999996, -74, -43.999996, -74)
uv = PackedVector2Array(155, 92, 154, 92, 154, 91.00001, 155, 91.00001)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2118891318]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 14
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-17.999998, -51, -57.999996, -51, -58, -14, -18, -14)
uv = PackedVector2Array(231, 87, 191, 87, 191, 50, 231, 50)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothA2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=212300006]
modulate = Color(0.73333335, 0.6862745, 0.45882353, 1)
z_index = 15
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-36.999996, -49, -56.999996, -49, -57, -16, -37, -16)
uv = PackedVector2Array(251, 204, 231, 204, 231, 171, 251, 171)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=141222167]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 16
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-56.999996, -51, -57.999996, -51, -57.999996, -49, -56.999996, -49)
uv = PackedVector2Array(314, 314, 313, 314, 313, 313, 314, 313)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=902480029]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 17
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(17.000004, -75, -46.999996, -75, -47, -30, 17.000002, -30)
uv = PackedVector2Array(196, 244, 132, 244, 132, 199, 196, 199)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_nippleA_nipple$0_#08" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1882622142]
modulate = Color(0.9411765, 0.5686275, 0.4627451, 1)
z_index = 18
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(5.0000033, -75, -34.999996, -75, -35, -29, 5.0000014, -29)
uv = PackedVector2Array(99, 94, 59.000004, 94, 59.000004, 48, 99, 48)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2047783871]
z_index = 19
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(5.0000033, -75, -44.999996, -75, -45, -33, 5.0000014, -33)
uv = PackedVector2Array(152, 49, 102, 49, 102, 7, 152, 7)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_milkA_milk$0" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1499740297]
z_index = 20
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-13.999997, -75, -18.999996, -75, -18.999998, -65, -13.999997, -65)
uv = PackedVector2Array(270, 246, 265, 246, 265, 236.00002, 270, 236.00002)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothA_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=537184415]
z_index = 21
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(32.000004, -59, -18.999998, -59, -19, -18, 32, -18)
uv = PackedVector2Array(152, 92, 101, 92, 101, 51, 152, 51)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2033630938]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 22
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -25, -27.999998, -25, -28.000002, 41, 33, 41)
uv = PackedVector2Array(270, 314, 209, 314, 209, 247.99998, 270, 247.99998)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_earA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1493406862]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 23
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-14.999999, -20, -58, -20, -58, 9, -15, 9)
uv = PackedVector2Array(242, 48, 199, 48, 199, 19, 242, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeB2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1155368959]
z_index = 24
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(29, -6, -17, -6, -17, 11, 29, 11)
uv = PackedVector2Array(283, 119.99999, 237, 119.99999, 237, 103, 283, 103)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeB1_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=148759075]
modulate = Color(1, 0.58431375, 0.35686275, 1)
z_index = 25
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -6, -21, -6, -21, 13, 33, 13)
uv = PackedVector2Array(252, 225, 198, 225, 198, 206, 252, 206)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceB2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1664880401]
z_index = 26
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(17, -19, -6.999999, -19, -6.9999995, -8, 17, -8)
uv = PackedVector2Array(305, 148, 281, 148, 281, 137, 305, 137)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceB1_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=792235189]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 27
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(28, 10, -8, 10, -8.000001, 26, 27.999998, 26)
uv = PackedVector2Array(306, 198, 270, 198, 270, 182.00002, 306, 182.00002)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairD_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1087425808]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 28
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-19, -11, -35, -11, -35, 23, -19.000002, 23)
uv = PackedVector2Array(260, 53, 244, 53, 244, 19, 260, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairC_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=507964685]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 29
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(49, -6, 19, -6, 18.999998, 49, 48.999996, 49)
uv = PackedVector2Array(187, 138, 157, 138, 157, 83.00001, 187, 83.00001)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairB_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1448185266]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 30
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(10, -3, -51, -3, -51.000004, 54, 9.999998, 54)
uv = PackedVector2Array(187, 197, 126, 197, 126, 140.00002, 187, 140.00002)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairA_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=685348038]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 31
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(38, -1, -9, -1, -9.000003, 55, 37.999996, 55)
uv = PackedVector2Array(102, 152, 55, 152, 55, 95.99999, 102, 95.99999)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeA_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1416688432]
modulate = Color(1, 0.58431375, 0.35686275, 1)
z_index = 32
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -6, -21, -6, -21, 13, 33, 13)
uv = PackedVector2Array(263, 246, 209, 246, 209, 226.99998, 263, 226.99998)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceA2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=784639301]
z_index = 33
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(17, -19, -6.999999, -19, -6.9999995, -8, 17, -8)
uv = PackedVector2Array(300, 38, 276, 38, 276, 27, 300, 27)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceA1_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2081290364]
modulate = Color(0.18039216, 0.29803923, 0.19215687, 1)
z_index = 34
texture = ExtResource("1_yu3lk")
skeleton = NodePath("..")
polygon = PackedVector2Array(28, 10, -8, 10, -8.000001, 26, 27.999998, 26)
uv = PackedVector2Array(306, 216, 270, 216, 270, 200, 306, 200)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=167122549]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_cmqej")