Files
project-rr/characters/human/woman_portrait_combat0_native.tscn
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

202 lines
9.1 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/human/spine/woman_portrait_combat0.png" id="1_wk5es"]
[sub_resource type="Animation" id="Animation_hwcdj"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_eb6yi"]
_data = {
&"animation": SubResource("Animation_hwcdj")
}
[node name="Native" type="Node2D" unique_id=1018203995]
[node name="SpineRoot" type="Node2D" parent="." unique_id=1382330074]
position = Vector2(651.52, 352.32)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1286013762]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=637290563]
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=336485576]
modulate = Color(0.9647059, 0.91764706, 1, 1)
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(-18.999996, -77, -46.999996, -77, -47, -35, -18.999998, -35)
uv = PackedVector2Array(345, 136, 317, 136, 317, 94, 345, 94)
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=1233852454]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 1
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(-25.999998, -24, -59, -24, -59.000004, 64, -26.000002, 64)
uv = PackedVector2Array(241, 180, 208.00002, 180, 208.00002, 92, 241, 92)
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=201681360]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 2
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(39, -15, -45, -15, -45.000004, 73, 38.999996, 73)
uv = PackedVector2Array(290, 406, 206, 406, 206, 318, 290, 318)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=109300670]
z_index = 3
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(47.000004, -77, 3.3657768e-06, -77, 6.993822e-07, -16, 47, -16)
uv = PackedVector2Array(215, 83, 168, 83, 168, 22, 215, 22)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyA" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1311840842]
z_index = 4
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(33.000004, -77, -34.999996, -77, -35, 4, 33, 4)
uv = PackedVector2Array(70, 141, 2, 141, 2, 60.000004, 70, 60.000004)
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=476151200]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 5
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(48.000004, -50, 21.000002, -50, 20.999998, 55, 47.999996, 55)
uv = PackedVector2Array(99, 141, 72.00001, 141, 72.00001, 36.000004, 99, 36.000004)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_cloth_bodyA3" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=175449421]
z_index = 6
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(53.000004, -77, -25.999996, -77, -25.999998, -38, 53, -38)
uv = PackedVector2Array(355, 223, 276, 223, 276, 184, 355, 184)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_cloth_bodyA1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1710215888]
z_index = 7
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(27.000002, -58, -35.999996, -58, -36, -11, 27, -11)
uv = PackedVector2Array(65, 58.000004, 2, 58.000004, 2, 11, 65, 11)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=308074720]
z_index = 8
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(-11.999996, -77, -58.999996, -77, -59, -13, -11.999999, -13)
uv = PackedVector2Array(404, 224.00002, 357, 224.00002, 357, 160, 404, 160)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headA_ear$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1509436694]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 9
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(39, -19, -34, -19, -34.000004, 48, 38.999996, 48)
uv = PackedVector2Array(290, 316, 217, 316, 217, 249, 290, 249)
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=875153737]
z_index = 10
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, 5, -8, 5, -8.000001, 19, 33, 19)
uv = PackedVector2Array(388, 139, 347, 139, 347, 125, 388, 125)
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=51673085]
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
z_index = 11
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, 4, -10, 4, -10.000001, 21, 34, 21)
uv = PackedVector2Array(110.99999, 34, 67, 34, 67, 17, 110.99999, 17)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceB1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=568947379]
z_index = 12
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(37, -9, -2.9999995, -9, -3.0000012, 29, 37, 29)
uv = PackedVector2Array(340, 92, 300, 92, 300, 54.000004, 340, 54.000004)
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=2135239753]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 13
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(41, 13, -19, 13, -19.000002, 61, 40.999996, 61)
uv = PackedVector2Array(352, 272.99997, 292, 272.99997, 292, 225, 352, 225)
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=490474412]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 14
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(42, 9, 12, 9, 11.999997, 62, 41.999996, 62)
uv = PackedVector2Array(166, 84, 136, 84, 136, 31.000002, 166, 31.000002)
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=1801800616]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 15
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(8.000002, -52, -27.999998, -52, -28.000002, 58, 7.9999976, 58)
uv = PackedVector2Array(132, 253.99998, 96, 253.99998, 96, 144.00002, 132, 144.00002)
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=745255164]
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
z_index = 16
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, 4, -10, 4, -10.000001, 21, 34, 21)
uv = PackedVector2Array(346, 52.000004, 302, 52.000004, 302, 35, 346, 35)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceA1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=792850263]
z_index = 17
texture = ExtResource("1_wk5es")
skeleton = NodePath("..")
polygon = PackedVector2Array(37, -9, -2.9999995, -9, -3.0000012, 29, 37, 29)
uv = PackedVector2Array(300, 48, 260, 48, 260, 10, 300, 10)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1627405370]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_eb6yi")