Files
project-rr/characters/human/woman_portrait_stand_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

272 lines
12 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/human/spine/woman_portrait_stand.png" id="1_ybptp"]
[sub_resource type="Animation" id="Animation_howry"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6qtcl"]
_data = {
&"animation": SubResource("Animation_howry")
}
[node name="Native" type="Node2D" unique_id=474857922]
[node name="SpineRoot" type="Node2D" parent="." unique_id=2058526479]
position = Vector2(645.76, 352.32)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=2100613830]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1633132040]
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=1480566320]
modulate = Color(0.9647059, 0.91764706, 1, 1)
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(-18.999996, -77, -46.999996, -77, -47, -35, -18.999998, -35)
uv = PackedVector2Array(382, 235.00002, 354, 235.00002, 354, 193.00002, 382, 193.00002)
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=1821336845]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 1
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(-25.999998, -24, -59, -24, -59.000004, 64, -26.000002, 64)
uv = PackedVector2Array(271, 156, 238.00002, 156, 238.00002, 68, 271, 68)
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=196490574]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 2
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(39, -15, -45, -15, -45.000004, 73, 38.999996, 73)
uv = PackedVector2Array(290, 382, 205.99998, 382, 205.99998, 294, 290, 294)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=726801867]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 3
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(36.000004, -77, 3.3657768e-06, -77, 9.1793913e-07, -21, 36, -21)
uv = PackedVector2Array(340, 156, 304, 156, 304, 100, 340, 100)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_body_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=711434484]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 4
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(33.000004, -77, -34.999996, -77, -35, 4, 33, 4)
uv = PackedVector2Array(360, 382, 292, 382, 292, 301, 360, 301)
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=1985467496]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 5
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(48.000004, -50, 21.000002, -50, 20.999998, 55, 47.999996, 55)
uv = PackedVector2Array(235.99998, 156, 208.99998, 156, 208.99998, 51, 235.99998, 51)
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=132116076]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 6
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(53.000004, -77, 17.000004, -77, 17.000002, -40, 53, -40)
uv = PackedVector2Array(173, 56, 137, 56, 137, 19, 173, 19)
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=1361109985]
modulate = Color(1, 0.6784314, 0.6117647, 1)
z_index = 7
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(56.000004, -77, 35.000004, -77, 35.000004, -54, 56.000004, -54)
uv = PackedVector2Array(363, 131, 342, 131, 342, 108, 363, 108)
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=1680920778]
z_index = 8
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(52.000004, -65, 25.000002, -65, 25.000002, -44, 52.000004, -44)
uv = PackedVector2Array(129, 266, 102, 266, 102, 244.99998, 129, 244.99998)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_milkB_milk$0" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=356203005]
z_index = 9
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(56.000004, -77, 51.000004, -77, 51.000004, -68, 56.000004, -68)
uv = PackedVector2Array(367, 329, 362, 329, 362, 320, 367, 320)
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=499239618]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 10
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(-18.999996, -77, -54.999996, -77, -55, -19, -19, -19)
uv = PackedVector2Array(352, 235.00002, 316, 235.00002, 316, 177, 352, 177)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA2_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=541948068]
z_index = 11
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(-25.999996, -77, -43.999996, -77, -44, -26, -25.999998, -26)
uv = PackedVector2Array(380, 382, 362, 382, 362, 331, 380, 331)
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=1345705749]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 12
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(20.000004, -77, -24.999996, -77, -24.999998, -42, 20.000002, -42)
uv = PackedVector2Array(360, 57, 315, 57, 315, 22, 360, 22)
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=1539995389]
modulate = Color(1, 0.6784314, 0.6117647, 1)
z_index = 13
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(13.000004, -77, -17.999996, -77, -17.999998, -54, 13.000002, -54)
uv = PackedVector2Array(373, 156, 342, 156, 342, 133, 373, 133)
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=41422811]
z_index = 14
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(-0.9999972, -64, -7.999997, -64, -7.999998, -44, -0.9999981, -44)
uv = PackedVector2Array(213, 292, 205.99998, 292, 205.99998, 272, 213, 272)
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=1914811250]
z_index = 15
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(-1.9999967, -77, -5.9999967, -77, -5.999997, -67, -1.999997, -67)
uv = PackedVector2Array(296, 235.00002, 292, 235.00002, 292, 225, 296, 225)
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=2122978396]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 16
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(39, -19, -34, -19, -34.000004, 48, 38.999996, 48)
uv = PackedVector2Array(290, 292, 217.00002, 292, 217.00002, 225, 290, 225)
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=1994546350]
z_index = 17
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, 5, -8, 5, -8.000001, 19, 33, 19)
uv = PackedVector2Array(143, 16, 102, 16, 102, 2, 143, 2)
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=953212515]
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
z_index = 18
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, 4, -10, 4, -10.000001, 21, 34, 21)
uv = PackedVector2Array(359, 20, 315, 20, 315, 3, 359, 3)
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=967080581]
z_index = 19
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(36, -8, -7.9999995, -8, -8.000001, 31, 36, 31)
uv = PackedVector2Array(348, 98, 304, 98, 304, 59, 348, 59)
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=1694752896]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 20
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(41, 13, -19, 13, -19.000002, 61, 40.999996, 61)
uv = PackedVector2Array(313, 57, 253.00002, 57, 253.00002, 9, 313, 9)
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=213056576]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 21
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(42, 9, 12, 9, 11.999997, 62, 41.999996, 62)
uv = PackedVector2Array(205.00002, 59, 175, 59, 175, 6, 205.00002, 6)
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=564047413]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 22
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(8.000002, -52, -27.999998, -52, -28.000002, 58, 7.9999976, 58)
uv = PackedVector2Array(132, 229.99998, 96, 229.99998, 96, 120, 132, 120)
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=1552697489]
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
z_index = 23
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(34, 4, -10, 4, -10.000001, 21, 34, 21)
uv = PackedVector2Array(360, 175, 316, 175, 316, 158, 360, 158)
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=847009700]
z_index = 24
texture = ExtResource("1_ybptp")
skeleton = NodePath("..")
polygon = PackedVector2Array(36, -8, -7.9999995, -8, -8.000001, 31, 36, 31)
uv = PackedVector2Array(250.99998, 49, 207, 49, 207, 10, 250.99998, 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=597490749]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_6qtcl")