Files
project-rr/characters/satyress/satyress_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

283 lines
16 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/satyress/spine/satyress_portrait_stand.png" id="1_pxsif"]
[sub_resource type="Animation" id="Animation_aog3o"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1cgru"]
_data = {
&"animation": SubResource("Animation_aog3o")
}
[node name="Native" type="Node2D" unique_id=1382465911]
[node name="SpineRoot" type="Node2D" parent="." unique_id=2083628869]
position = Vector2(642.881, 299.3021)
scale = Vector2(3.0616126, -3.0616126)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=2111848982]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1585487970]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="C_hairbackB2_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=895022934]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-16.486631, 50.08705, -59.042686, -113.89355, -59.043526, 73.39282, -26.427614, 73.52817)
uv = PackedVector2Array(45.514503, 38.913315, 2.958653, 202.89403, 2.9575992, 15.607576, 35.573547, 15.472202)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(0, 1, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_earB_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1438626725]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 1
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(27.985409, 24.5636, 5.994629, 25.02167, 5.959717, 73.07251, 28.082577, 73.23132)
uv = PackedVector2Array(70.98538, 54.436344, 48.99459, 53.978344, 48.959694, 5.92752, 71.08257, 5.7687187)
polygons = [PackedInt32Array(1, 2, 3), PackedInt32Array(0, 1, 3)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairbackB1_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1161611018]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 2
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(35.032227, 50.19489, 35.06042, -8.04193, -13.835569, -31.47949, -52.18311, -6.58289, -57.61243, 40.97021, -15.457093, 74.24261)
uv = PackedVector2Array(276.03223, 255.80507, 276.0604, 314.04193, 227.16441, 337.4795, 188.81682, 312.58282, 183.38753, 265.0298, 225.5429, 231.75735)
polygons = [PackedInt32Array(0, 3, 4), PackedInt32Array(0, 4, 5), PackedInt32Array(3, 0, 1), PackedInt32Array(2, 3, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="C_earA_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=934920539]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 3
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-1.3530933, 73.29041, -15.8026705, 19.75281, -35.60822, 39.61047, -27.320194, 73.08759)
uv = PackedVector2Array(225.64688, 22.709608, 211.19733, 76.247215, 191.39178, 56.389458, 199.6798, 22.912426)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=581025036]
modulate = Color(0.99215686, 0.9254902, 0.8784314, 1)
z_index = 4
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(39.028755, -77.13574, 6.0547533, -77.01672, -11.467899, -32.59216, 25.229061, -35.47809)
uv = PackedVector2Array(188.0287, 76.13576, 155.05475, 76.016754, 137.5321, 31.592175, 174.22905, 34.478073)
polygons = [PackedInt32Array(1, 2, 3), PackedInt32Array(1, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=33697230]
modulate = Color(0.99215686, 0.9254902, 0.8784314, 1)
z_index = 5
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-16.81201, -6.30219, -2.6555195, -11.11438, 40.464233, -77.00769, -38.591457, -77.04297, -40.047546, -74.38202, -40.322018, -48.07483)
uv = PackedVector2Array(123.18797, 116.302216, 137.34445, 121.114395, 180.46422, 187.00769, 101.408516, 187.04303, 99.95243, 184.382, 99.677956, 158.07484)
polygons = [PackedInt32Array(3, 4, 5), PackedInt32Array(3, 5, 2), PackedInt32Array(1, 5, 0), PackedInt32Array(2, 5, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="C_titsB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=648530357]
modulate = Color(0.99215686, 0.9254902, 0.8784314, 1)
z_index = 6
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.423035, -56.87378, 57.026123, -77.01379, 11.9017935, -77.0993, 11.974552, -41.52979)
uv = PackedVector2Array(322.42307, 77.873726, 322.02612, 98.01375, 276.90182, 98.099266, 276.97455, 62.52977)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsB_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=669167851]
z_index = 7
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.034122, -59.38367, 57.031254, -73.73901, 31.715702, -60.68787, 32.039673, -50.87146)
uv = PackedVector2Array(160.03416, 14.3836975, 160.03133, 28.739023, 134.71571, 15.687909, 135.03973, 5.8714247)
polygons = [PackedInt32Array(2, 3, 0), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1222604264]
modulate = Color(0.99215686, 0.9254902, 0.8784314, 1)
z_index = 8
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-32.795746, -77.12952, -59.305046, -77.14044, -58.89664, -35.09778, -14.796688, -34.81775)
uv = PackedVector2Array(255.20424, 82.1295, 228.69495, 82.14045, 229.10336, 40.0978, 273.2033, 39.81773)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothA1_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1521587420]
modulate = Color(0.49019608, 0.43137255, 0.4, 1)
z_index = 9
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-30.709686, -77.05737, -59.178215, -77.01196, -58.982697, -64.00519, -29.259699, -63.92426)
uv = PackedVector2Array(305.29028, 41.057335, 276.82178, 41.01194, 277.0173, 28.005165, 306.7403, 27.924185)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1183678438]
modulate = Color(0.99215686, 0.9254902, 0.8784314, 1)
z_index = 10
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(7.5559726, -49.31578, 32.595955, -77.02203, -46.877747, -77.0598, -13.917718, -43.62681)
uv = PackedVector2Array(133.55069, 85.31396, 158.59064, 113.02024, 79.11694, 113.05785, 112.07708, 79.624916)
polygons = [PackedInt32Array(2, 3, 0), PackedInt32Array(2, 0, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_nippleA_nipple$0_#08" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1760819111]
z_index = 11
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(15.143254, -77.02521, -21.407837, -77.02393, -20.056267, -73.00958, -2.6749272, -67.1839)
uv = PackedVector2Array(39.14325, 12.025108, 2.5921702, 12.023811, 3.9437222, 8.009443, 21.325064, 2.1838188)
polygons = [PackedInt32Array(1, 2, 3), PackedInt32Array(0, 1, 3)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_titsA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=867596616]
z_index = 12
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(2.1181033, -77.0177, -18.054867, -77.14368, -17.999208, -49.96521, 1.9564822, -49.93298)
uv = PackedVector2Array(242.1181, 113.01765, 221.94513, 113.14371, 222.0008, 85.96521, 241.95647, 85.93303)
polygons = [PackedInt32Array(2, 3, 0), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairB_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1533094272]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 13
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(29.599607, 33.43988, -25.37213, 17.07855, -8.646972, 47.03418, 22.812988, 53.47675)
uv = PackedVector2Array(134.59964, 60.560116, 79.62788, 76.92149, 96.353065, 46.965805, 127.81298, 40.523216)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(0, 2, 3)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairA3_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1111794938]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 14
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(43.17389, -3.21173, 34.50287, -36.12445, 3.7105114, -33.84296, 28.097467, 39.34369, 41.57208, 29.47943)
uv = PackedVector2Array(319.17386, 304.2117, 310.5028, 337.12448, 279.71048, 334.843, 304.09744, 261.65634, 317.57202, 271.52066)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(0, 3, 4), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="C_headA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1355263865]
modulate = Color(0.99215686, 0.9254902, 0.8784314, 1)
z_index = 15
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(32.005486, 48.54736, 32.03174, -10.02051, 5.8156114, -36.34332, -31.47565, -14.79803, -19.947882, 31.53802)
uv = PackedVector2Array(323.0055, 143.45265, 323.03177, 202.02051, 296.81558, 228.3433, 259.52435, 206.79799, 271.0521, 160.46196)
polygons = [PackedInt32Array(4, 0, 1), PackedInt32Array(3, 4, 1), PackedInt32Array(2, 3, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="C_eyeB2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=231908724]
z_index = 16
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(28.2699, 2.87099, 25.84473, -5.33751, -16.66803, -3.68822, -15.55542, 7.76033)
uv = PackedVector2Array(119.269905, 13.129015, 116.84473, 21.337465, 74.331955, 19.688173, 75.44457, 8.23966)
polygons = [PackedInt32Array(1, 2, 3), PackedInt32Array(0, 1, 3)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_eyeB1_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1121758835]
modulate = Color(0.9411765, 0.5176471, 0.30980393, 1)
z_index = 17
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(33.04852, 4.04486, 29.97839, -5.09949, -7.86499, -5.0249, -23.32574, 4.4978, -5.7404804, 7.81934)
uv = PackedVector2Array(131.04855, 27.955233, 127.97839, 37.09955, 90.13501, 37.02497, 74.67424, 27.502256, 92.25954, 24.180727)
polygons = [PackedInt32Array(2, 3, 4), PackedInt32Array(1, 4, 0), PackedInt32Array(2, 4, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="C_faceB1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=616818263]
z_index = 18
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(21.28424, 4.69489, 7.0953393, 5.88715, -11.405641, 19.13373, 31.33203, 12.87543)
uv = PackedVector2Array(309.2842, 59.30511, 295.09528, 58.112843, 276.59436, 44.86629, 319.33197, 51.124542)
polygons = [PackedInt32Array(1, 2, 3), PackedInt32Array(0, 1, 3)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headclothB2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1084847626]
modulate = Color(0.49019608, 0.43137255, 0.4, 1)
z_index = 19
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-7.7908316, 36.19635, 12.070499, 30.34827, 33.09033, 28.78497, 32.92999, -2.99573, 32.83813, 3.98401, -21.72656, 20.49677, -22.084661, 22.01727)
uv = PackedVector2Array(278.2091, 101.80365, 298.0705, 107.651726, 319.09027, 109.21502, 318.93, 140.99574, 318.8381, 134.01595, 264.2734, 117.503235, 263.9153, 115.98267)
polygons = [PackedInt32Array(5, 6, 0), PackedInt32Array(4, 1, 2), PackedInt32Array(3, 4, 2), PackedInt32Array(5, 0, 1), PackedInt32Array(4, 5, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1, 1)]
[node name="C_headclothB1_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=973100635]
modulate = Color(0.9254902, 0.70980394, 0.4117647, 1)
z_index = 20
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(57.05988, 21.83313, 14.82715, 9.47784, 9.061649, 24.71967, 57.29346, 29.19379)
uv = PackedVector2Array(327.0598, 246.16698, 284.82712, 258.52222, 279.06165, 243.28041, 327.29346, 238.80626)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_headclothA" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=788285553]
z_index = 21
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(28.3299, -14.39117, 28.252872, -22.61261, -21.131588, -31.36951, -28.88596, 1.54712, -27.38013, 2.75989)
uv = PackedVector2Array(218.32988, 96.3912, 218.2528, 104.61262, 168.86833, 113.369545, 161.11398, 80.45289, 162.6198, 79.24012)
polygons = [PackedInt32Array(0, 2, 4), PackedInt32Array(1, 2, 0), PackedInt32Array(3, 4, 2)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="C_hairA2_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=434612409]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 22
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(-6.194342, 40.19165, -23.866638, -28.54211, -50.73596, -31.54913, -54.07343, 1.1637, -6.1848817, 44.62292)
uv = PackedVector2Array(96.80563, 130.8084, 79.133316, 199.54219, 52.264038, 202.54912, 48.92654, 169.83633, 96.81512, 126.37713)
polygons = [PackedInt32Array(0, 3, 4), PackedInt32Array(1, 3, 0), PackedInt32Array(2, 3, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="C_hairA1_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1091993503]
modulate = Color(0.49019608, 0.34509805, 0.27450982, 1)
z_index = 23
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(23.396849, 54.44763, 5.821782, -43.25018, -35.523647, -70.09644, -52.668606, -92.07129, -32.45169, 25.29523, -15.566592, 53.79388)
uv = PackedVector2Array(180.3968, 190.55229, 162.82178, 288.25015, 121.47638, 315.09644, 104.33138, 337.07123, 124.54832, 219.70474, 141.4334, 191.20615)
polygons = [PackedInt32Array(0, 4, 5), PackedInt32Array(1, 4, 0), PackedInt32Array(2, 4, 1), PackedInt32Array(2, 3, 4)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1, 1)]
[node name="C_eyeA1_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=68941380]
modulate = Color(0.9411765, 0.5176471, 0.30980393, 1)
z_index = 24
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(41.83252, 2.10931, 32.32416, -5.02032, -10.79504, -5.85132, -35.3121, 15.11627)
uv = PackedVector2Array(260.83252, 129.89069, 251.32411, 137.02037, 208.20496, 137.85133, 183.68785, 116.88376)
polygons = [PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_faceA1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=599296272]
z_index = 25
texture = ExtResource("1_pxsif")
skeleton = NodePath("..")
polygon = PackedVector2Array(31.36401, 12.7121, 20.77802, 4.77014, 6.9783297, 5.99097, -10.252501, 18.79913)
uv = PackedVector2Array(270.364, 28.287912, 259.778, 36.229828, 245.97838, 35.009033, 228.74753, 22.200861)
polygons = [PackedInt32Array(2, 3, 0), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1144621551]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_1cgru")