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

273 lines
12 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/knight/spine/knight_portrait_combat.png" id="1_8nkk0"]
[sub_resource type="Animation" id="Animation_3g1fh"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_whiuo"]
_data = {
&"animation": SubResource("Animation_3g1fh")
}
[node name="Native" type="Node2D" unique_id=411470684]
[node name="SpineRoot" type="Node2D" parent="." unique_id=2132419803]
position = Vector2(643.84, 352.32)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=2049418222]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1312726396]
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=1788102600]
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(30.000004, -77, -42.999996, -77, -43.000004, 55, 29.999998, 55)
uv = PackedVector2Array(75, 398, 2, 398, 2, 266, 75, 266)
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=2003278426]
z_index = 1
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(57, -20, -5.999999, -20, -6.000003, 66, 56.999996, 66)
uv = PackedVector2Array(153, 283, 90, 283, 90, 197, 153, 197)
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=1157805081]
z_index = 2
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(36, -17, -49, -17, -49.000004, 73, 35.999996, 73)
uv = PackedVector2Array(230, 398, 145, 398, 145, 308, 230, 308)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothB4_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=549525615]
z_index = 3
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -77, 3.0000033, -77, 3.000001, -22, 57, -22)
uv = PackedVector2Array(144, 195, 90, 195, 90, 140, 144, 140)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothB3" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=771963951]
z_index = 4
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(56.000004, -65, -0.99999714, -65, -1, 1, 56, 1)
uv = PackedVector2Array(394, 321, 337, 321, 337, 255, 394, 255)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_weaponB" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=126281712]
z_index = 5
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(1.0000033, -77, -58.999996, -77, -59, -37, 1.0000017, -37)
uv = PackedVector2Array(206, 159, 146, 159, 146, 119, 206, 119)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_weaponA" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=600507010]
z_index = 6
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -44, 54.000004, -44, 54, -38, 57, -38)
uv = PackedVector2Array(340, 253, 337, 253, 337, 247, 340, 247)
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=489284705]
z_index = 7
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(-10.999996, -77, -58.999996, -77, -59.000004, 55, -11.000003, 55)
uv = PackedVector2Array(50, 264, 2, 264, 2, 132, 50, 132)
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=1567604821]
z_index = 8
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(-4.999999, -17, -59, -17, -59.000004, 67, -5.000003, 67)
uv = PackedVector2Array(209, 306, 155, 306, 155, 222, 209, 222)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyB_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1154635250]
z_index = 9
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(35.000004, -77, -37.999996, -77, -38, 4, 35, 4)
uv = PackedVector2Array(305, 398, 232, 398, 232, 317, 305, 317)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1828926835]
z_index = 10
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(22.000004, -77, 4.0000033, -77, 4.0000033, -76, 22.000004, -76)
uv = PackedVector2Array(20, 10, 2, 10, 2, 9, 20, 9)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyA2_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=494657565]
z_index = 11
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(22.000004, -77, 4.0000033, -77, 4.0000033, -76, 22.000004, -76)
uv = PackedVector2Array(20, 10, 2, 10, 2, 9, 20, 9)
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=878413815]
z_index = 12
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(54.000004, -63, 14.000003, -63, 13.999997, 55, 53.999996, 55)
uv = PackedVector2Array(96, 137, 56, 137, 56, 19, 96, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothA4_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=20400898]
z_index = 13
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(-20.999996, -77, -58.999996, -77, -59, -21, -21, -21)
uv = PackedVector2Array(397, 253, 359, 253, 359, 197, 397, 197)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsB_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=399733793]
z_index = 14
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -77, 13.000004, -77, 13.000002, -35, 57, -35)
uv = PackedVector2Array(358, 135, 314, 135, 314, 93, 358, 93)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsA_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1822885562]
z_index = 15
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(25.000004, -77, -33.999996, -77, -34, -36, 25.000002, -36)
uv = PackedVector2Array(344, 197, 285, 197, 285, 156, 344, 156)
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=1378747290]
z_index = 16
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(32, -17, -36, -17, -36.000004, 51, 31.999998, 51)
uv = PackedVector2Array(335, 315, 267, 315, 267, 247, 335, 247)
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=1709334828]
z_index = 17
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(27, 6, -13, 6, -13.000001, 19, 27, 19)
uv = PackedVector2Array(138, 54, 98, 54, 98, 41, 138, 41)
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=1451463099]
z_index = 18
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, 6, -23, 6, -23.000002, 23, 33, 23)
uv = PackedVector2Array(341, 154, 285, 154, 285, 137, 341, 137)
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=272089093]
z_index = 19
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(31, -6, -15, -6, -15.000002, 33, 30.999998, 33)
uv = PackedVector2Array(337, 51, 291, 51, 291, 12, 337, 12)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothA" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1880736686]
z_index = 20
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -57, -32.999996, -57, -33, -11, 57, -11)
uv = PackedVector2Array(357, 245, 267, 245, 267, 199, 357, 199)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothA3" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1823710590]
z_index = 21
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(-9.999997, -62, -58.999996, -62, -59, 1, -10, 1)
uv = PackedVector2Array(194, 117, 145, 117, 145, 54, 194, 54)
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=732394526]
z_index = 22
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(-11.999997, -66, -47.999996, -66, -48.000004, 59, -12.000003, 59)
uv = PackedVector2Array(88, 264, 52, 264, 52, 139, 88, 139)
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=1180966773]
z_index = 23
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(40, -9, -29, -9, -29.000004, 66, 39.999996, 66)
uv = PackedVector2Array(376, 398, 307, 398, 307, 323, 376, 323)
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=897183090]
z_index = 24
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, 6, -22, 6, -22.000002, 23, 33, 23)
uv = PackedVector2Array(398, 154, 343, 154, 343, 137, 398, 137)
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=435625662]
z_index = 25
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(31, -6, -15, -6, -15.000002, 33, 30.999998, 33)
uv = PackedVector2Array(392, 195, 346, 195, 346, 156, 392, 156)
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=1977058833]
z_index = 26
texture = ExtResource("1_8nkk0")
skeleton = NodePath("..")
polygon = PackedVector2Array(45, 9, -37, 9, -37.000004, 68, 44.999996, 68)
uv = PackedVector2Array(237, 220, 155, 220, 155, 161, 237, 161)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1493291832]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_whiuo")