Files
project-rr/characters/oni/oni_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

295 lines
14 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/oni/spine/oni_portrait_combat.png" id="1_d50iu"]
[sub_resource type="Animation" id="Animation_4xb1i"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a4yct"]
_data = {
&"animation": SubResource("Animation_4xb1i")
}
[node name="Native" type="Node2D" unique_id=29583359]
[node name="SpineRoot" type="Node2D" parent="." unique_id=336146005]
position = Vector2(640, 360)
scale = Vector2(3.84, -3.84)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1361487217]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1202062032]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="C_hairD2_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1141207380]
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(25.000004, -75, -57.999996, -75, -58, 29, 24.999998, 29)
uv = PackedVector2Array(85, 124, 2, 124, 2, 20, 85, 20)
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=883581468]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 1
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, -12.999997, -75, -12.999998, -35, 58, -35)
uv = PackedVector2Array(168, 155, 97, 155, 97, 115, 168, 115)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armB2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1114017112]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 2
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 57.000004, -75, 57.000004, -73, 58.000004, -73)
uv = PackedVector2Array(179, 58, 178.00002, 58, 178.00002, 56.000004, 179, 56.000004)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armclothB1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1526530316]
z_index = 3
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 57.000004, -75, 57.000004, -73, 58.000004, -73)
uv = PackedVector2Array(346, 110, 345, 110, 345, 108, 346, 108)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_weapon" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=980394249]
z_index = 4
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -48, -57.999996, -48, -58, 26, 58, 26)
uv = PackedVector2Array(213, 346, 97, 346, 97, 272, 213, 272)
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=669865681]
z_index = 5
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(-28.999996, -75, -50.999996, -75, -50.999996, -49, -28.999998, -49)
uv = PackedVector2Array(236, 58, 214, 58, 214, 31.999998, 236, 31.999998)
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=69520277]
z_index = 6
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(35.000004, -51, -57.999996, -51, -58.000004, 62, 34.999996, 62)
uv = PackedVector2Array(95, 346, 2, 346, 2, 232.99998, 95, 232.99998)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hairD1_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1905466781]
z_index = 7
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(-27, -20, -58, -20, -58, 29, -27.000002, 29)
uv = PackedVector2Array(212, 58, 181, 58, 181, 9, 212, 9)
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=1259630648]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 8
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(21.000004, -75, -57.999996, -75, -58, -8, 21, -8)
uv = PackedVector2Array(341, 254, 262, 254, 262, 187, 341, 187)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_armA1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=273866938]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 9
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(-36.999996, -75, -57.999996, -75, -58, -28, -37, -28)
uv = PackedVector2Array(346, 159, 325, 159, 325, 112.00001, 346, 112.00001)
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=146099939]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 10
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 3.2783541e-06, -75, 2.272992e-06, -52, 58.000004, -52)
uv = PackedVector2Array(315, 119, 256.99997, 119, 256.99997, 96, 315, 96)
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=541616009]
z_index = 11
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(58.000004, -75, 20.000004, -75, 20.000002, -59, 58.000004, -59)
uv = PackedVector2Array(40, 18, 2, 18, 2, 2, 40, 2)
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=789521789]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 12
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(9.000003, -75, -57.999996, -75, -57.999996, -51, 9.000002, -51)
uv = PackedVector2Array(329, 185, 262, 185, 262, 161, 329, 161)
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=706707372]
z_index = 13
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(-15.999997, -75, -37.999996, -75, -37.999996, -55, -15.999997, -55)
uv = PackedVector2Array(284, 276, 262, 276, 262, 256, 284, 256)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothA1_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1401362468]
modulate = Color(0.9647059, 0.7647059, 0.53333336, 1)
z_index = 14
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(11.000002, -54, -43.999996, -54, -44, -19, 11.000001, -19)
uv = PackedVector2Array(259, 174.99998, 204, 174.99998, 204, 140, 259, 140)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothA2_#06" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=290856037]
modulate = Color(0.85490197, 0.24705882, 0.2784314, 1)
z_index = 15
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(10.000003, -57, -51.999996, -57, -52, -19, 10.000001, -19)
uv = PackedVector2Array(323, 159, 261, 159, 261, 121, 323, 121)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_bodyclothA2_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=313842478]
z_index = 16
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(7.000002, -48, -6.999998, -48, -6.9999986, -35, 7.0000014, -35)
uv = PackedVector2Array(56.000004, 18, 42, 18, 42, 5, 56.000004, 5)
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=317481706]
z_index = 17
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(55, -39, 18.000002, -39, 17.999998, 51, 54.999996, 51)
uv = PackedVector2Array(342, 346, 305, 346, 305, 256, 342, 256)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hornB_horntype$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=484645612]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 18
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(51, 9, 19, 9, 18.999996, 71, 50.999996, 71)
uv = PackedVector2Array(281, 73, 248.99998, 73, 248.99998, 11, 281, 11)
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=1911696489]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 19
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(33, -31, -55, -31, -55, 37, 33, 37)
uv = PackedVector2Array(303, 346, 215, 346, 215, 278, 303, 278)
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=493031721]
z_index = 20
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(27, -8, -17, -8, -17, 7, 27, 7)
uv = PackedVector2Array(247.00002, 75, 202.99998, 75, 202.99998, 60.000004, 247.00002, 60.000004)
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=344247817]
modulate = Color(0.85490197, 0.24705882, 0.2784314, 1)
z_index = 21
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(32, -9, -27, -9, -27, 10, 32, 10)
uv = PackedVector2Array(316, 93.99999, 256.99997, 93.99999, 256.99997, 75, 316, 75)
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=1101597620]
z_index = 22
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(26, -21, -4.999999, -21, -5.0000005, 14, 26, 14)
uv = PackedVector2Array(179, 45, 148, 45, 148, 10, 179, 10)
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=1096311627]
z_index = 23
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(-1.9999983, -39, -58, -39, -58.000004, 54, -2.0000024, 54)
uv = PackedVector2Array(260, 270, 204, 270, 204, 177, 260, 177)
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=369304447]
z_index = 24
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, -2, -6, -2, -6.0000024, 59, 45.999996, 59)
uv = PackedVector2Array(255, 138, 202.99998, 138, 202.99998, 77, 255, 77)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="C_hornA_horntype$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1249211969]
modulate = Color(0.83137256, 0.5529412, 0.49019608, 1)
z_index = 25
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(3.9999995, 13, -19, 13, -19.000004, 75, 3.9999967, 75)
uv = PackedVector2Array(201.00002, 121.99999, 178.00002, 121.99999, 178.00002, 60.000004, 201.00002, 60.000004)
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=1222579305]
modulate = Color(0.85490197, 0.24705882, 0.2784314, 1)
z_index = 26
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(32, -9, -27, -9, -27, 10, 32, 10)
uv = PackedVector2Array(146, 35, 87, 35, 87, 15.999999, 146, 15.999999)
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=1458873887]
z_index = 27
texture = ExtResource("1_d50iu")
skeleton = NodePath("..")
polygon = PackedVector2Array(26, -21, -4.999999, -21, -5.0000005, 14, 26, 14)
uv = PackedVector2Array(201.00002, 159, 170, 159, 170, 124, 201.00002, 124)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=674960662]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_a4yct")