ProjectRR — нативный прототип на ассетах ProjectR

- Все 189 скелетов Spine сконвертированы в нативные Godot Skeleton2D (.tscn), без Spine в рантайме
- Меню + сцены: подземелье (карта комнат), просмотр спрайтов, нативные анимации
- Кастомизация цвета (кожа/волосы/глаза) через шейдер
- Вытащенные текстуры/UI/шрифты + нарезка спрайтов из атласа
- Датасет комнат для LoRA, офлайн-инструменты конвертации в tools/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-08-03 16:29:21 +03:00
co-authored by Claude Opus 4.8
commit 04cf5f90b0
2193 changed files with 360105 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
{
"Id": "Door1",
"Name": "#Door1",
"Figure": "Door1",
"Type": "Door",
"Race": "None",
"Armor": [20],
"Size": [0.5, 2],
"Height": [600],
"ScriptCombat": "CharacterBehaviourScripts.Gate",
}
@@ -0,0 +1,49 @@
[
{
"Figure": ["Door1"],
"State": ["None"],
"Spine": [
{
"Path": "%spine\door1",
"Animation": ["wait"],
"Loop": true,
"IsCombat": true,
},
],
},
{
"Figure": ["Door1"],
"State": ["Wait"],
"Spine": [
{
"Path": "%spine\door1",
"Animation": ["wait"],
"Loop": true,
"IsCombat": true,
},
],
},
{
"Figure": ["Door1"],
"State": ["Idle"],
"Spine": [
{
"Path": "%spine\door1",
"Animation": ["active"],
"Loop": true,
"IsCombat": true,
},
],
},
]
+50
View File
@@ -0,0 +1,50 @@
[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/door1/spine/door1.png" id="1_hjo8t"]
[sub_resource type="Animation" id="Animation_ahkvp"]
length = 0.001
loop_mode = 1
[sub_resource type="Animation" id="Animation_lh6fq"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_rnduq"]
_data = {
&"active": SubResource("Animation_ahkvp"),
&"wait": SubResource("Animation_lh6fq")
}
[node name="Native" type="Node2D" unique_id=1665608581]
[node name="SpineRoot" type="Node2D" parent="." unique_id=962258362]
position = Vector2(655.3617, 533.38293)
scale = Vector2(0.6200215, -0.6200215)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=177966165]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=427190188]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="subRoot" type="Bone2D" parent="SpineRoot/Skeleton2D/root" unique_id=1833553249]
position = Vector2(-1.1564333e-14, 0)
rest = Transform2D(1, 0, 0, 1, -1.1564333e-14, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="Defense_build_00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1649275545]
texture = ExtResource("1_hjo8t")
skeleton = NodePath("..")
polygon = PackedVector2Array(116.22398, -184.8599, -165.77602, -184.8599, -165.7761, 744.14014, 116.2239, 744.14014)
uv = PackedVector2Array(284, 931, 2, 931, 2, 2, 284, 2)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root/subRoot", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=930964397]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_rnduq")
+5
View File
@@ -0,0 +1,5 @@
door1.png
size:288,936
filter:Linear,Linear
Defense_build_00
bounds:2,2,282,929
Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnn7t2fua5lyq"
path="res://.godot/imported/door1.png-03dda35811fa88127b4e7c19a1363c18.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/door1/spine/door1.png"
dest_files=["res://.godot/imported/door1.png-03dda35811fa88127b4e7c19a1363c18.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.