Files
project-rr/characters/elf1/elf1_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

338 lines
15 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/elf1/spine/elf1_portrait_stand.png" id="1_prwpm"]
[sub_resource type="Animation" id="Animation_lc6is"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_oqpub"]
_data = {
&"animation": SubResource("Animation_lc6is")
}
[node name="Native" type="Node2D" unique_id=1220992787]
[node name="SpineRoot" type="Node2D" parent="." unique_id=1920296582]
position = Vector2(643.84, 352.32)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1660298436]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=601217204]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="C_hairbackB3_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=345115260]
modulate = Color(1, 1, 0.5411765, 1)
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-17.999996, -77, -37.999996, -77, -38, -43, -17.999998, -43)
uv = PackedVector2Array(70, 53, 50, 53, 50, 19, 70, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairbackB2_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1344331413]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 1
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-12.999996, -77, -58.999996, -77, -59.000004, 73, -13.000003, 73)
uv = PackedVector2Array(48, 318, 2, 318, 2, 168, 48, 168)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairbackB1_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1362316693]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 2
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-56.999996, -77, -58.999996, -77, -59, -31, -57, -31)
uv = PackedVector2Array(48, 48, 46, 48, 46, 2, 48, 2)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairclothA2_hairback$0_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=890438423]
z_index = 3
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(21.000002, -56, -22.999998, -56, -23.000002, 60, 20.999998, 60)
uv = PackedVector2Array(46, 166, 2, 166, 2, 50, 46, 50)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairclothA1_hairback$0_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=65673998]
z_index = 4
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-21.999998, -51, -58.999996, -51, -59.000004, 60, -22.000002, 60)
uv = PackedVector2Array(85, 166, 48, 166, 48, 55, 85, 55)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairbackA_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=492414665]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 5
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(35, -19, -42, -19, -42.000004, 68, 34.999996, 68)
uv = PackedVector2Array(127, 318, 50, 318, 50, 231, 127, 231)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1200635891]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 6
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(53.000004, -77, 5.0000033, -77, 5.000001, -22, 53, -22)
uv = PackedVector2Array(318, 247, 270, 247, 270, 192, 318, 192)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothB_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1714894476]
z_index = 7
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(53.000004, -77, 24.000004, -77, 24.000002, -56, 53.000004, -56)
uv = PackedVector2Array(318, 60, 289, 60, 289, 39, 318, 39)
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=2027313611]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 8
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(41.000004, -77, -29.999996, -77, -30, 8, 41, 8)
uv = PackedVector2Array(200, 318, 129, 318, 129, 233, 200, 233)
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=206672017]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 9
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-12.999996, -77, -58.999996, -77, -59, -20, -12.999999, -20)
uv = PackedVector2Array(184, 129, 138, 129, 138, 72, 184, 72)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothA_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1255864564]
z_index = 10
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-37.999996, -77, -58.999996, -77, -58.999996, -50, -37.999996, -50)
uv = PackedVector2Array(136, 229, 115, 229, 115, 202, 136, 202)
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=655500703]
z_index = 11
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-37.999996, -77, -50.999996, -77, -50.999996, -50, -37.999996, -50)
uv = PackedVector2Array(278, 37, 265, 37, 265, 10, 278, 10)
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=1347849754]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 12
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -77, 15.000004, -77, 15.000002, -35, 57, -35)
uv = PackedVector2Array(44, 48, 2, 48, 2, 6, 44, 6)
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=625952813]
z_index = 13
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.000004, -51, 35.000004, -51, 35, -39, 57, -39)
uv = PackedVector2Array(282, 51, 260, 51, 260, 39, 282, 39)
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=1809673665]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 14
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(31.000004, -77, -31.999996, -77, -31.999998, -35, 31.000002, -35)
uv = PackedVector2Array(113, 229, 50, 229, 50, 187, 113, 187)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_nippleA_#08" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1026633933]
z_index = 15
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(26.000004, -77, -25.999996, -77, -25.999998, -43, 26.000002, -43)
uv = PackedVector2Array(169, 45, 117, 45, 117, 11, 169, 11)
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=1607977192]
z_index = 16
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(3.0000029, -68, -8.999997, -68, -8.999998, -39, 3.0000017, -39)
uv = PackedVector2Array(292, 37, 280, 37, 280, 8, 292, 8)
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=727718283]
z_index = 17
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(1.0000033, -77, -1.9999967, -77, -1.9999969, -72, 1.0000031, -72)
uv = PackedVector2Array(287, 51, 284, 51, 284, 46, 287, 46)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_clothbodyA1_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1750404352]
modulate = Color(0.9764706, 1, 0.7137255, 1)
z_index = 18
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(25.000002, -39, -20.999998, -39, -21, -16, 25, -16)
uv = PackedVector2Array(184, 70, 138, 70, 138, 47, 184, 47)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_clothbodyA2_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=724872721]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 19
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(13.000002, -40, 1.7484556e-06, -40, 1.136496e-06, -26, 13.000001, -26)
uv = PackedVector2Array(85, 53, 72, 53, 72, 39, 85, 39)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headA2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1068942226]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 20
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(57, -2, 14, -2, 13.999999, 16, 57, 16)
uv = PackedVector2Array(115, 37, 72, 37, 72, 19, 115, 19)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairfrontA4_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1502584300]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 21
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(43, -28, 16.000002, -28, 15.999997, 61, 42.999996, 61)
uv = PackedVector2Array(316, 151, 289, 151, 289, 62, 316, 62)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairfrontB_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=336340261]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 22
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, 27, -16.000002, 27, -16.000002, 56, 32.999996, 56)
uv = PackedVector2Array(136, 76, 87, 76, 87, 47, 136, 47)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2006352454]
modulate = Color(1, 0.9529412, 0.89411765, 1)
z_index = 23
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -15, -59, -15, -59.000004, 48, 32.999996, 48)
uv = PackedVector2Array(294, 318, 202, 318, 202, 255, 294, 255)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeC" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=259836557]
z_index = 24
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(30, 10, -13, 10, -13.000001, 21, 30, 21)
uv = PackedVector2Array(263, 37, 220, 37, 220, 26, 263, 26)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeB_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=133951465]
modulate = Color(0.6156863, 1, 0.42352942, 1)
z_index = 25
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(39, 10, -23, 10, -23.000002, 25, 39, 25)
uv = PackedVector2Array(112, 17, 50, 17, 50, 2, 112, 2)
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=1726146023]
z_index = 26
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, -4, -13, -4, -13.000002, 33, 34, 33)
uv = PackedVector2Array(218, 45, 171, 45, 171, 8, 218, 8)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairfrontA3_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1768382710]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 27
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(40, -12, 18, -12, 17.999998, 57, 39.999996, 57)
uv = PackedVector2Array(318, 318, 296, 318, 296, 249, 318, 249)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairfrontA2_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=391711971]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 28
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(-4.9999986, -29, -40, -29, -40.000004, 61, -5.000003, 61)
uv = PackedVector2Array(258, 129, 223, 129, 223, 39, 258, 39)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairfrontA1_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1570999831]
modulate = Color(1, 1, 0.5411765, 1)
z_index = 29
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(14.000001, -11, -21, -11, -21.000002, 61, 13.999997, 61)
uv = PackedVector2Array(221, 129, 186, 129, 186, 57, 221, 57)
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=1959981469]
modulate = Color(0.6156863, 1, 0.42352942, 1)
z_index = 30
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(39, 10, -23, 10, -23.000002, 25, 39, 25)
uv = PackedVector2Array(112, 17, 50, 17, 50, 2, 112, 2)
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=783762111]
z_index = 31
texture = ExtResource("1_prwpm")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, -4, -13, -4, -13.000002, 33, 34, 33)
uv = PackedVector2Array(317, 190, 270, 190, 270, 153, 317, 153)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1766003454]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_oqpub")