Files
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

120 lines
7.1 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/goblin/spine/goblin_dead.png" id="1_sl006"]
[sub_resource type="Animation" id="Animation_43tri"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_db263"]
_data = {
&"animation": SubResource("Animation_43tri")
}
[node name="Native" type="Node2D" unique_id=1964378025]
[node name="SpineRoot" type="Node2D" parent="." unique_id=1017960355]
position = Vector2(640.41486, 436.2892)
scale = Vector2(2.6393538, -2.6393538)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1597036669]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=379001517]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="shadow" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=157781556]
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(63.0683, 22.07513, 123.10071, 9.68713, 133.2088, -3.44836, 109.90753, -15.14221, 53.14954, -23.00897, -51.20703, -23.04657, -97.94235, -16.04987, -128.59637, -6.78906, -123.12354, 7.79218, -74.3616, 19.89484, -70.73181, 21.99036)
uv = PackedVector2Array(194.06836, 230.92477, 254.10071, 243.31277, 264.2088, 256.44833, 240.90755, 268.14218, 184.14957, 276.0089, 79.793015, 276.0465, 33.057667, 269.0498, 2.4036598, 259.78897, 7.876482, 245.20775, 56.638412, 233.10513, 60.268204, 231.00955)
polygons = [PackedInt32Array(3, 0, 1), PackedInt32Array(3, 1, 2), PackedInt32Array(6, 8, 9), PackedInt32Array(7, 8, 6), PackedInt32Array(0, 5, 10), PackedInt32Array(4, 0, 3), PackedInt32Array(4, 5, 0), PackedInt32Array(9, 10, 5), PackedInt32Array(6, 9, 5)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)]
[node name="M_bodyA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1710932227]
z_index = 1
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(-4.9290233, 80.85559, 75.53302, 28.37317, 74.87939, -9.04932, -113.86621, -9.03918, -133.52316, 7.04034, -46.228035, 72.23212)
uv = PackedVector2Array(131.07098, 137.14445, 211.53305, 189.6269, 210.87943, 227.0494, 22.133785, 227.03925, 2.476859, 210.9597, 89.77198, 145.76796)
polygons = [PackedInt32Array(3, 4, 5), PackedInt32Array(2, 0, 1), PackedInt32Array(5, 0, 2), PackedInt32Array(3, 5, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="M_bodyclothA_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2073778863]
z_index = 2
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(23.443539, 51.04504, 34.824276, 56.96265, -20.287231, 27.11987, -41.564793, 76.93036, -3.4594734, 77.15137)
uv = PackedVector2Array(213.44354, 33.95505, 224.82423, 28.037424, 169.71278, 57.880165, 148.43524, 8.069677, 186.54054, 7.848711)
polygons = [PackedInt32Array(2, 3, 4), PackedInt32Array(2, 4, 0), PackedInt32Array(2, 0, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="M_armA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=245786660]
z_index = 3
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(59.82031, 4.61597, 48.08795, -19.08398, -81.49683, -20.94342, -83.77521, 9.80328, -82.00201, 9.06281, 28.54974, 15.33014)
uv = PackedVector2Array(145.82109, 13.384018, 134.08871, 37.083958, 4.503908, 38.943413, 2.2255182, 8.196716, 3.998723, 8.937187, 114.55048, 2.6698208)
polygons = [PackedInt32Array(1, 5, 0), PackedInt32Array(2, 4, 5), PackedInt32Array(2, 5, 1), PackedInt32Array(3, 4, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="M_armclothA1_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=630522570]
z_index = 4
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(-12.971069, -20.00055, -66.06607, -20.10333, -61.63541, 6.09088, -12.782711, 16.29486)
uv = PackedVector2Array(268.0289, 227.00052, 214.93393, 227.10332, 219.36458, 200.90907, 268.21725, 190.70517)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armclothA2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=440601828]
z_index = 5
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(21.24359, 16.12598, 19.95471, -17.7865, 8.895691, -21.24109, 6.56616, -2.93457, 9.268679, 15.94183)
uv = PackedVector2Array(236.24359, 98.873955, 234.95471, 132.78642, 223.89568, 136.2411, 221.56616, 117.93455, 224.26865, 99.05814)
polygons = [PackedInt32Array(0, 3, 4), PackedInt32Array(1, 3, 0), PackedInt32Array(2, 3, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="M_faceC_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1078263666]
z_index = 6
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(119.13208, 26.68994, 119.17102, 15.13397, 90.2359, 12.9906, 68.901, 12.9671, 68.86279, 34.24298)
uv = PackedVector2Array(265.13202, 173.31004, 265.17096, 184.86598, 236.23592, 187.00935, 214.90099, 187.03287, 214.8628, 165.757)
polygons = [PackedInt32Array(2, 4, 0), PackedInt32Array(2, 0, 1), PackedInt32Array(3, 4, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="M_headA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1079222310]
z_index = 7
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(109.93298, 69.91882, 129.55927, 9.93555, 107.99988, -17.39636, -8.4245, -2.84894, 0.6591202, -3.94836, 60.989437, 75.59558)
uv = PackedVector2Array(120.932976, 47.081184, 140.55927, 107.06447, 118.999886, 134.3964, 2.5755262, 119.84894, 11.659145, 120.948364, 71.98946, 41.40442)
polygons = [PackedInt32Array(1, 2, 5), PackedInt32Array(1, 5, 0), PackedInt32Array(4, 5, 2), PackedInt32Array(3, 4, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="M_headA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1879232019]
z_index = 8
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(83.81171, 72.30133, 121.09491, 33.86609, 121.12415, 27.28711, 118.72723, -1.43182, 46.295715, 56.00952, 62.580315, 69.1532)
uv = PackedVector2Array(180.81175, 60.69865, 218.09491, 99.13384, 218.12415, 105.71283, 215.72723, 134.43178, 143.29575, 76.99041, 159.58029, 63.846786)
polygons = [PackedInt32Array(5, 1, 2), PackedInt32Array(1, 5, 0), PackedInt32Array(2, 4, 5), PackedInt32Array(3, 4, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="M_headC" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1885741754]
z_index = 9
texture = ExtResource("1_sl006")
skeleton = NodePath("..")
polygon = PackedVector2Array(89.51343, -20.78076, 79.60657, -2.61566, 109.2135, 2.8009)
uv = PackedVector2Array(224.51341, 162.78076, 214.60658, 144.61566, 244.21353, 139.19905)
polygons = [PackedInt32Array(0, 1, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=156203680]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_db263")