Files
project-rr/characters/sister/sister_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

312 lines
14 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/sister/spine/sister_portrait_combat.png" id="1_hjan1"]
[sub_resource type="Animation" id="Animation_ce77q"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_20x5u"]
_data = {
&"animation": SubResource("Animation_ce77q")
}
[node name="Native" type="Node2D" unique_id=1556338561]
[node name="SpineRoot" type="Node2D" parent="." unique_id=1819560753]
position = Vector2(640, 358.0671)
scale = Vector2(3.8657718, -3.8657718)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1188146359]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1210522400]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="C_hairclothE_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2102438444]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(28.000004, -75, -57.999996, -75, -58.000004, 51, 27.999998, 51)
uv = PackedVector2Array(88, 152, 2, 152, 2, 26, 88, 26)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairclothD_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=571785355]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
z_index = 1
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -14, -55, -14, -55.000004, 74, 32.999996, 74)
uv = PackedVector2Array(244, 398, 156, 398, 156, 310, 244, 310)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairclothC_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=883468764]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
z_index = 2
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(41.000004, -75, -16.999996, -75, -17.000004, 66, 40.999996, 66)
uv = PackedVector2Array(154, 398, 96, 398, 96, 257, 154, 257)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairH_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=611442944]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 3
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(34.000004, -75, -57.999996, -75, -58.000004, 46, 33.999996, 46)
uv = PackedVector2Array(94, 398, 2, 398, 2, 277, 94, 277)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairG_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1270504597]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 4
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(46.000004, -64, 12.000003, -64, 11.999998, 35, 46, 35)
uv = PackedVector2Array(264, 263, 230, 263, 230, 164, 264, 164)
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=924125579]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 5
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(-28.999998, -60, -57.999996, -60, -58, 30, -29.000002, 30)
uv = PackedVector2Array(334, 270, 305, 270, 305, 180, 334, 180)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1297912531]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
z_index = 6
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 6.0000033, -75, 6.000001, -21, 58, -21)
uv = PackedVector2Array(142, 80, 90, 80, 90, 26, 142, 26)
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=191921962]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 7
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(30.000004, -75, -42.999996, -75, -43, 7, 30, 7)
uv = PackedVector2Array(319, 398, 246, 398, 246, 316, 319, 316)
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=573333907]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 8
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(19.000004, -75, -1.9999967, -75, -1.9999968, -73, 19.000004, -73)
uv = PackedVector2Array(69, 4, 48, 4, 48, 2, 69, 2)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1718908373]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
z_index = 9
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(-21.999996, -75, -57.999996, -75, -58, -18, -22, -18)
uv = PackedVector2Array(384, 329, 348, 329, 348, 272, 384, 272)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_tits_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1920813317]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 10
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, -41.999996, -75, -42, -33, 58, -33)
uv = PackedVector2Array(346, 314, 246, 314, 246, 272, 346, 272)
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=1237495342]
z_index = 11
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(14.000003, -75, -38.999996, -75, -39, -38, 14.000002, -38)
uv = PackedVector2Array(272, 103, 219, 103, 219, 66, 272, 66)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothC2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1503072157]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
z_index = 12
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, -29.999996, -75, -29.999998, -32, 58, -32)
uv = PackedVector2Array(244, 308, 156, 308, 156, 265, 244, 265)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothC1_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2000524296]
z_index = 13
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(-23.999996, -75, -27.999996, -75, -27.999998, -39, -23.999998, -39)
uv = PackedVector2Array(393, 398, 389, 398, 389, 362, 393, 362)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothB_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1810566598]
z_index = 14
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(30.000002, -45, -44.999996, -45, -45, -16, 30, -16)
uv = PackedVector2Array(204, 117, 129, 117, 129, 88, 204, 88)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothA_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1608806570]
z_index = 15
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(14.000002, -41, -27.999998, -41, -28, -11, 14.000001, -11)
uv = PackedVector2Array(378, 194, 336, 194, 336, 164, 378, 164)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairE_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1337488368]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 16
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(37, -28, 2.0000012, -28, 1.999998, 46, 36.999996, 46)
uv = PackedVector2Array(371, 270, 336, 270, 336, 196, 371, 196)
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=1136530542]
modulate = Color(1, 0.9411765, 0.9019608, 1)
z_index = 17
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(26, -12, -40, -12, -40.000004, 55, 25.999998, 55)
uv = PackedVector2Array(387, 398, 321, 398, 321, 331, 387, 331)
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=1461731562]
z_index = 18
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(23, 11, -17, 11, -17.000002, 25, 22.999998, 25)
uv = PackedVector2Array(306, 178, 266, 178, 266, 164, 306, 164)
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=1963633760]
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
z_index = 19
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(24, 11, -20, 11, -20.000002, 30, 23.999998, 30)
uv = PackedVector2Array(323, 115, 279, 115, 279, 96, 323, 96)
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=1536422442]
z_index = 20
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(25, -2, -17, -2, -17.000002, 42, 24.999998, 42)
uv = PackedVector2Array(305, 64, 263, 64, 263, 20, 305, 20)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairD_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1905729335]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 21
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(-7.9999986, -29, -45, -29, -45.000004, 55, -8.000003, 55)
uv = PackedVector2Array(303, 270, 266, 270, 266, 186, 303, 186)
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=2039525917]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 22
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, 8, 17, 8, 16.999998, 58, 32.999996, 58)
uv = PackedVector2Array(334, 178, 318, 178, 318, 128, 334, 128)
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=645794637]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 23
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(10.999999, 12, -25, 12, -25.000002, 61, 10.999997, 61)
uv = PackedVector2Array(217, 86, 181, 86, 181, 37, 217, 37)
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=1180252770]
modulate = Color(0.9647059, 0.91764706, 1, 1)
z_index = 24
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(25, 16, 0.9999993, 16, 0.9999973, 62, 24.999998, 62)
uv = PackedVector2Array(230, 156, 206, 156, 206, 110, 230, 110)
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=772220038]
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
z_index = 25
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(24, 11, -20, 11, -20.000002, 30, 23.999998, 30)
uv = PackedVector2Array(46, 24, 2, 24, 2, 5, 46, 5)
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=2007526199]
z_index = 26
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(25, -2, -17, -2, -17.000002, 42, 24.999998, 42)
uv = PackedVector2Array(261, 64, 219, 64, 219, 20, 261, 20)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairclothB_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1374714566]
z_index = 27
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(35, 30, -40, 30, -40.000004, 63, 34.999996, 63)
uv = PackedVector2Array(204, 152, 129, 152, 129, 119, 204, 119)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairclothA_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1576143417]
modulate = Color(0.26666668, 0.22745098, 0.3019608, 1)
z_index = 28
texture = ExtResource("1_hjan1")
skeleton = NodePath("..")
polygon = PackedVector2Array(7.000001, -25, -58, -25, -58.000004, 66, 6.999997, 66)
uv = PackedVector2Array(160, 255, 95, 255, 95, 164, 160, 164)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=390385016]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_20x5u")