Files
project-rr/characters/goblin/goblin_portrait_combat0_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

212 lines
9.3 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/goblin/spine/goblin_portrait_combat0.png" id="1_tudnx"]
[sub_resource type="Animation" id="Animation_hdkgr"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2ojbx"]
_data = {
&"animation": SubResource("Animation_hdkgr")
}
[node name="Native" type="Node2D" unique_id=779546882]
[node name="SpineRoot" type="Node2D" parent="." unique_id=55218164]
position = Vector2(644.2985, 325.61194)
scale = Vector2(4.2985077, -4.2985077)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=943320803]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1977834432]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="M_armB2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1542690415]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(23.000004, -75, -13.999997, -75, -13.999999, -23, 23.000002, -23)
uv = PackedVector2Array(192, 206, 155, 206, 155, 154, 192, 154)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armB1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1873907462]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 1
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(16.000004, -75, -0.9999967, -75, -0.9999968, -73, 16.000004, -73)
uv = PackedVector2Array(112.00001, 17, 95, 17, 95, 15, 112.00001, 15)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_bodyB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=963258588]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 2
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(2.0000033, -75, -57.999996, -75, -58, -24, 2.000001, -24)
uv = PackedVector2Array(143, 152, 83, 152, 83, 101, 143, 101)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_bodyA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=543164059]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 3
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(16.000004, -73, -57.999996, -73, -58, 5, 16, 5)
uv = PackedVector2Array(76, 128, 2, 128, 2, 50, 76, 50)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armA2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2089774448]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 4
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(-31.999998, -58, -57.999996, -58, -58, -15, -32, -15)
uv = PackedVector2Array(78, 48, 52, 48, 52, 5, 78, 5)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armA2_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1478771833]
z_index = 5
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(-45, -23, -58, -23, -58, -17, -45, -17)
uv = PackedVector2Array(93, 17, 80, 17, 80, 11, 93, 11)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_earB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1831241007]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 6
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(56, -17, 8.000001, -17, 7.9999995, 10, 56, 10)
uv = PackedVector2Array(193, 152, 145, 152, 145, 125.00001, 193, 125.00001)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headE" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1740954793]
z_index = 7
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(29.000002, -33, -4.9999986, -33, -5, -1, 29, -1)
uv = PackedVector2Array(176, 71, 142, 71, 142, 39, 176, 39)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headD_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2045328392]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 8
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(30.000002, -39, -17.999998, -39, -18, 4, 30, 4)
uv = PackedVector2Array(50, 48, 2, 48, 2, 5, 50, 5)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headC" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1576840493]
z_index = 9
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(22.000002, -34, 1.0000014, -34, 1.0000001, -3, 22, -3)
uv = PackedVector2Array(140, 49, 118.99999, 49, 118.99999, 18, 140, 18)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headB" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1159621897]
z_index = 10
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(31, -18, 2.0000007, -18, 2, 0, 31, 0)
uv = PackedVector2Array(171, 37, 142, 37, 142, 19, 171, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1418537515]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 11
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, -17, -33, -17, -33.000004, 59, 45.999996, 59)
uv = PackedVector2Array(81, 206, 2, 206, 2, 130, 81, 130)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=576570919]
z_index = 12
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(44, 5, -26, 5, -26.000002, 57, 43.999996, 57)
uv = PackedVector2Array(153, 206, 83, 206, 83, 154, 153, 154)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceC_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1248322959]
z_index = 13
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, 1, -2, 1, -2.0000007, 18, 46, 18)
uv = PackedVector2Array(125.99999, 68, 78, 68, 78, 51, 125.99999, 51)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1811724541]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 14
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(49, 0, -5, 0, -5.0000014, 29, 49, 29)
uv = PackedVector2Array(132, 99, 78, 99, 78, 70, 132, 70)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceB_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=659329013]
z_index = 15
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(47, 8, 10, 8, 9.999999, 28, 47, 28)
uv = PackedVector2Array(171, 93, 134, 93, 134, 73, 171, 73)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1838440688]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 16
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(47, -16, 10.000001, -16, 9.999999, 14, 47, 14)
uv = PackedVector2Array(117, 49, 80, 49, 80, 19, 117, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1940032442]
z_index = 17
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, -13, 34, -13, 34, 12, 46, 12)
uv = PackedVector2Array(206, 206, 194, 206, 194, 181, 206, 181)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_earA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2133502245]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 18
texture = ExtResource("1_tudnx")
skeleton = NodePath("..")
polygon = PackedVector2Array(-14, -8, -58, -8, -58, 20, -14.000001, 20)
uv = PackedVector2Array(189, 123, 145, 123, 145, 95, 189, 95)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1228820173]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_2ojbx")