Files
project-rr/characters/knight/knight_portrait_stand_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

282 lines
13 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/knight/spine/knight_portrait_stand.png" id="1_hqx18"]
[sub_resource type="Animation" id="Animation_57xay"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cstm2"]
_data = {
&"animation": SubResource("Animation_57xay")
}
[node name="Native" type="Node2D" unique_id=1212221993]
[node name="SpineRoot" type="Node2D" parent="." unique_id=552587174]
position = Vector2(643.84, 352.32)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=352364690]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1029095570]
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=1897537009]
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(31.000004, -77, -41.999996, -77, -42.000004, 54, 30.999998, 54)
uv = PackedVector2Array(75, 366, 2, 366, 2, 235, 75, 235)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairE_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=795141369]
z_index = 1
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(57, -20, -4.999999, -20, -5.000003, 66, 56.999996, 66)
uv = PackedVector2Array(64, 100, 2, 100, 2, 14, 64, 14)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headB_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1153959099]
z_index = 2
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(36, -17, -48, -17, -48.000004, 73, 35.999996, 73)
uv = PackedVector2Array(229, 366, 145, 366, 145, 276, 229, 276)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairF_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1929307567]
z_index = 3
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(-9.999996, -77, -58.999996, -77, -59.000004, 54, -10.000002, 54)
uv = PackedVector2Array(50.999996, 233.00002, 2, 233.00002, 2, 101.99999, 50.999996, 101.99999)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairD_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=494105560]
z_index = 4
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(-3.9999993, -18, -59, -18, -59.000004, 66, -4.000003, 66)
uv = PackedVector2Array(241, 274, 186, 274, 186, 190.00002, 241, 190.00002)
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=1217364920]
z_index = 5
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(39.000004, -77, 7.0000033, -77, 7.000001, -23, 39, -23)
uv = PackedVector2Array(306, 71, 274, 71, 274, 17, 306, 17)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1818779628]
z_index = 6
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(35.000004, -77, -37.999996, -77, -38, 4, 35, 4)
uv = PackedVector2Array(304, 366, 231, 366, 231, 285, 304, 285)
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=453427172]
z_index = 7
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(-17.999996, -77, -47.999996, -77, -48, -21, -18, -21)
uv = PackedVector2Array(166, 72, 136, 72, 136, 16, 166, 16)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1650044014]
z_index = 8
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(18.000004, -77, 9.000004, -77, 9.000003, -76, 18.000004, -76)
uv = PackedVector2Array(86, 252, 77, 252, 77, 251, 86, 251)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairC_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1416291422]
z_index = 9
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(55.000004, -64, 15.000003, -64, 14.999998, 54, 54.999996, 54)
uv = PackedVector2Array(184, 252, 144, 252, 144, 134, 184, 134)
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=900125014]
z_index = 10
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -77, 11.000004, -77, 11.000002, -36, 57, -36)
uv = PackedVector2Array(214, 69, 168, 69, 168, 27.999998, 214, 27.999998)
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=1100876626]
z_index = 11
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -77, 35.000004, -77, 35.000004, -46, 57.000004, -46)
uv = PackedVector2Array(88, 106, 66, 106, 66, 75, 88, 75)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_nippleB_nipple$0_#09" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1379836799]
z_index = 12
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -77, 35.000004, -77, 35.000004, -46, 57.000004, -46)
uv = PackedVector2Array(88, 106, 66, 106, 66, 75, 88, 75)
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=1902176395]
z_index = 13
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -70, 26.000004, -70, 26.000002, -39, 57, -39)
uv = PackedVector2Array(302, 104, 271, 104, 271, 73, 302, 73)
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=1828398534]
z_index = 14
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(23.000004, -77, -36.999996, -77, -37, -37, 23.000002, -37)
uv = PackedVector2Array(366, 366, 306, 366, 306, 326, 366, 326)
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=74878084]
z_index = 15
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(16.000004, -77, -31.999996, -77, -31.999998, -47, 16.000002, -47)
uv = PackedVector2Array(291, 136, 242.99998, 136, 242.99998, 106, 291, 106)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_nippleA_nipple$0_#09" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=55283032]
z_index = 16
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(16.000004, -77, -31.999996, -77, -31.999998, -47, 16.000002, -47)
uv = PackedVector2Array(291, 136, 242.99998, 136, 242.99998, 106, 291, 106)
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=1838168867]
z_index = 17
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(19.000004, -77, -33.999996, -77, -34, -41, 19.000002, -41)
uv = PackedVector2Array(359, 324, 306, 324, 306, 288, 359, 288)
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=1297407367]
z_index = 18
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(-5.9999967, -77, -9.999996, -77, -9.999997, -70, -5.999997, -70)
uv = PackedVector2Array(235, 283, 231, 283, 231, 276, 235, 276)
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=1296401364]
z_index = 19
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -17, -35, -17, -35.000004, 51, 32.999996, 51)
uv = PackedVector2Array(311, 206, 242.99998, 206, 242.99998, 138, 311, 138)
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=807613248]
z_index = 20
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(28, 5, -12, 5, -12.000001, 18, 28, 18)
uv = PackedVector2Array(208, 25.999998, 168, 25.999998, 168, 13, 208, 13)
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=1717815907]
z_index = 21
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, 5, -22, 5, -22.000002, 22, 34, 22)
uv = PackedVector2Array(272, 46, 215.99998, 46, 215.99998, 29, 272, 29)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceB" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1976155092]
z_index = 22
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(32, -7, -15, -7, -15.000001, 30, 31.999998, 30)
uv = PackedVector2Array(269, 104, 222.00002, 104, 222.00002, 67, 269, 67)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairB_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=489575425]
z_index = 23
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(-11.999997, -66, -46.999996, -66, -47.000004, 59, -12.000003, 59)
uv = PackedVector2Array(88, 233.00002, 52.999996, 233.00002, 52.999996, 107.99999, 88, 107.99999)
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=241041283]
z_index = 24
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(40, -9, -28, -9, -28.000004, 66, 39.999996, 66)
uv = PackedVector2Array(311, 283, 242.99998, 283, 242.99998, 208, 311, 208)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeA1_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=384311364]
z_index = 25
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, 5, -22, 5, -22.000002, 22, 34, 22)
uv = PackedVector2Array(272, 65, 215.99998, 65, 215.99998, 48, 272, 48)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceA" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1764282203]
z_index = 26
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(32, -7, -15, -7, -15.000001, 30, 31.999998, 30)
uv = PackedVector2Array(219.99998, 107.99999, 173, 107.99999, 173, 71, 219.99998, 71)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headcloth" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=129116899]
z_index = 27
texture = ExtResource("1_hqx18")
skeleton = NodePath("..")
polygon = PackedVector2Array(45, 9, -36, 9, -36.000004, 67, 44.999996, 67)
uv = PackedVector2Array(171, 132, 90, 132, 90, 74, 171, 74)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=468058072]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_cstm2")