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
@@ -0,0 +1,33 @@
horse_dead.png
size:544,544
filter:Linear,Linear
horse_earA
bounds:501,249,34,63
offsets:328,203,1080,1080
horse_hairA
bounds:349,117,130,87
offsets:268,190,1080,1080
horse_hairB
bounds:2,156,245,156
offsets:331,154,1080,1080
horse_headA
bounds:2,314,526,226
offsets:213,116,1080,1080
horse_headB
bounds:2,2,51,29
offsets:226,138,1080,1080
horse_headcloth
bounds:376,206,123,106
offsets:254,131,1080,1080
horse_headcloth2
bounds:249,207,125,105
offsets:254,131,1080,1080
horse_hornA
bounds:224,45,58,109
offsets:305,210,1080,1080
horse_hornB
bounds:284,100,63,105
offsets:289,221,1080,1080
horse_tailA1
bounds:2,33,220,121
offsets:658,133,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cex66h7jwpat6"
path="res://.godot/imported/horse_dead.png-ce4eb0c17f5250602c97e6144f07fae5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_dead.png"
dest_files=["res://.godot/imported/horse_dead.png-ce4eb0c17f5250602c97e6144f07fae5.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.
@@ -0,0 +1,39 @@
horse_down.png
size:672,672
filter:Linear,Linear
horse_bodyA
bounds:2,62,211,249
offsets:287,216,1080,1080
horse_bodyB
bounds:2,406,498,263
offsets:254,130,1080,1080
horse_earA
bounds:2,9,30,51
offsets:449,441,1080,1080
horse_earB
bounds:502,455,38,50
offsets:470,431,1080,1080
horse_hairA
bounds:537,54,69,127
offsets:449,386,1080,1080
horse_hairB
bounds:215,77,205,234
offsets:268,324,1080,1080
horse_headA
bounds:502,507,123,162
offsets:399,313,1080,1080
horse_headB
bounds:627,628,32,41
offsets:463,317,1080,1080
horse_headcloth
bounds:422,30,113,127
offsets:394,347,1080,1080
horse_tailA1
bounds:537,183,132,128
offsets:654,107,1080,1080
horse_tailA2
bounds:422,159,113,152
offsets:671,142,1080,1080
shadow
bounds:2,313,547,91
offsets:219,74,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dlauwe1tu5ii8"
path="res://.godot/imported/horse_down.png-2f9521b4f40aa99917e511963bfb28b2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_down.png"
dest_files=["res://.godot/imported/horse_down.png-2f9521b4f40aa99917e511963bfb28b2.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.
@@ -0,0 +1,9 @@
horse_fetus.png
size:48,112
filter:Linear,Linear
BabyA_horse
bounds:2,2,44,47
offsets:522,173,1080,1080
BabyB_horse
bounds:2,51,42,59
offsets:508,178,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bcaxn88ciqw3n"
path="res://.godot/imported/horse_fetus.png-392fdb8d99e9170e4f8f09de307edd4f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_fetus.png"
dest_files=["res://.godot/imported/horse_fetus.png-392fdb8d99e9170e4f8f09de307edd4f.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.
@@ -0,0 +1,6 @@
horse_fetus_body.png
size:64,64
filter:Linear,Linear
BabyB_horse
bounds:2,2,33,44
offsets:511,186,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bk64hoe0kb7j0"
path="res://.godot/imported/horse_fetus_body.png-329cd9c9285cf50f603cc00830cc60e2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_fetus_body.png"
dest_files=["res://.godot/imported/horse_fetus_body.png-329cd9c9285cf50f603cc00830cc60e2.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.
@@ -0,0 +1,6 @@
horse_fetus_head.png
size:48,48
filter:Linear,Linear
BabyA_horse
bounds:2,2,38,42
offsets:522,173,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ci8m2g28thoen"
path="res://.godot/imported/horse_fetus_head.png-6f3fc98752b64e248de04cc2d1329d3e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_fetus_head.png"
dest_files=["res://.godot/imported/horse_fetus_head.png-6f3fc98752b64e248de04cc2d1329d3e.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.
@@ -0,0 +1,26 @@
horse_portrait_stand.png
size:276,276
filter:Linear,Linear
horse_bodyA
bounds:106,3,69,117
horse_earA
bounds:239,121,27,24
horse_earB
bounds:238,12,33,34
horse_hairA
bounds:177,48,60,78
horse_hairB
bounds:177,11,59,35
horse_headA
bounds:2,122,116,150
horse_headB
bounds:227,147,30,39
horse_headcloth
bounds:120,128,105,144
offsets:480,86,1080,1080
horse_headcloth2
bounds:2,2,102,118
horse_hornA
bounds:227,231,41,41
horse_hornB
bounds:227,188,30,41
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://do8yk4oh1vl6m"
path="res://.godot/imported/horse_portrait_stand.png-bc3cac1a1adb551d55b3ba9f46b6dfa8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_portrait_stand.png"
dest_files=["res://.godot/imported/horse_portrait_stand.png-bc3cac1a1adb551d55b3ba9f46b6dfa8.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
@@ -0,0 +1,114 @@
horse_stand.png
size:856,856
filter:Linear,Linear
ChainA1
bounds:30,374,26,479
offsets:468,523,1080,1080
ChainB1
bounds:2,371,26,482
offsets:401,521,1080,1080
ChainC
bounds:569,728,117,74
offsets:402,486,1080,1080
horse_bodyA
bounds:175,104,316,267
offsets:306,517,1080,1080
horse_bodyB
bounds:58,514,348,339
offsets:433,382,1080,1080
horse_dickA
bounds:588,303,100,71
offsets:557,362,1080,1080
horse_dickA_1
bounds:588,303,100,71
offsets:557,362,1080,1080
horse_earA
bounds:435,530,41,43
offsets:286,737,1080,1080
horse_earB
bounds:478,535,48,38
offsets:261,720,1080,1080
horse_hairA
bounds:177,377,52,135
offsets:266,672,1080,1080
horse_hairB
bounds:440,376,251,152
offsets:302,718,1080,1080
horse_headA
bounds:569,553,104,173
offsets:287,608,1080,1080
horse_headB
bounds:408,528,25,45
offsets:325,612,1080,1080
horse_headcloth_0
bounds:231,387,112,125
offsets:287,647,1080,1080
horse_headcloth_1
bounds:58,373,117,139
offsets:283,640,1080,1080
horse_hornA
bounds:538,2,75,112
offsets:239,704,1080,1080
horse_hornB
bounds:588,127,71,105
offsets:225,694,1080,1080
horse_legA1
bounds:661,164,130,68
offsets:395,535,1080,1080
horse_legA2
bounds:615,51,44,74
offsets:397,495,1080,1080
horse_legA3
bounds:345,396,93,116
offsets:484,485,1080,1080
horse_legA4
bounds:693,234,136,170
offsets:515,494,1080,1080
horse_legA5
bounds:408,575,159,227
offsets:634,298,1080,1080
horse_legA6
bounds:175,5,118,97
offsets:670,268,1080,1080
horse_legA7
bounds:708,12,51,150
offsets:742,170,1080,1080
horse_legA8
bounds:410,26,62,76
offsets:729,130,1080,1080
horse_legB1
bounds:493,234,131,67
offsets:367,538,1080,1080
horse_legB2
bounds:661,6,45,73
offsets:370,498,1080,1080
horse_legB3
bounds:493,116,93,116
offsets:457,486,1080,1080
horse_legB4
bounds:693,406,138,170
offsets:487,496,1080,1080
horse_legB5
bounds:693,578,159,224
offsets:570,317,1080,1080
horse_legB6
bounds:295,7,113,95
offsets:595,289,1080,1080
horse_legB7
bounds:793,81,53,151
offsets:660,189,1080,1080
horse_legB8
bounds:474,26,62,76
offsets:644,149,1080,1080
horse_semenA_1
bounds:493,311,83,63
offsets:556,364,1080,1080
horse_semenA_1_1
bounds:493,311,83,63
offsets:556,364,1080,1080
horse_tail
bounds:2,21,171,348
offsets:754,152,1080,1080
shadow
bounds:408,804,441,49
offsets:337,116,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2ik76cwsr3c7"
path="res://.godot/imported/horse_stand.png-8b5604d8554ef0fb9638130e9855da7b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/horse/spine/horse_stand.png"
dest_files=["res://.godot/imported/horse_stand.png-8b5604d8554ef0fb9638130e9855da7b.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.