From 4f1bfc97b452ef2334642db2f010c942939b3c85 Mon Sep 17 00:00:00 2001 From: Voyager Date: Sat, 15 Aug 2026 00:01:16 -0400 Subject: [PATCH] Optimize facial customization for low-memory builds --- .../eyes/eyes_alligator_extra.png.import | 14 ++- .../faces/eyes/eyes_alligator_eyes.png.import | 14 ++- .../faces/eyes/eyes_angry.png.import | 14 ++- .../faces/eyes/eyes_anime_blue.png.import | 14 ++- .../faces/eyes/eyes_anime_green.png.import | 14 ++- .../faces/eyes/eyes_beady.png.import | 14 ++- .../faces/eyes/eyes_beady_extra.png.import | 14 ++- .../eyes/eyes_beady_extra_shine.png.import | 14 ++- .../faces/eyes/eyes_beady_eyebrows.png.import | 14 ++- .../faces/eyes/eyes_beady_whites.png.import | 14 ++- .../faces/eyes/eyes_carrot_eyes.png.import | 14 ++- .../faces/eyes/eyes_cat_real.png.import | 14 ++- .../eyes/eyes_cat_real_hunter.png.import | 14 ++- .../faces/eyes/eyes_close.png.import | 14 ++- .../faces/eyes/eyes_closed.png.import | 14 ++- .../faces/eyes/eyes_cute.png.import | 14 ++- .../faces/eyes/eyes_cute_close.png.import | 14 ++- .../faces/eyes/eyes_huge.png.import | 14 ++- .../faces/eyes/eyes_interested.png.import | 14 ++- .../faces/eyes/eyes_jackolantern.png.import | 14 ++- .../eyes/eyes_jackolantern_small.png.import | 14 ++- .../faces/eyes/eyes_punk_purple.png.import | 14 ++- .../faces/eyes/eyes_sexy_blue.png.import | 14 ++- .../faces/eyes/eyes_sexy_brown.png.import | 14 ++- .../faces/eyes/eyes_spider.png.import | 14 ++- .../faces/eyes/eyes_surprised.png.import | 14 ++- .../faces/eyes/eyes_tired.png.import | 14 ++- .../faces/eyes/eyes_tired_flat.png.import | 14 ++- .../faces/eyes/eyes_upset.png.import | 14 ++- .../characters/faces/mouth/mouth_3.png.import | 14 ++- .../faces/mouth/mouth_3_cheeky.png.import | 14 ++- .../faces/mouth/mouth_buck teeth.png.import | 14 ++- .../faces/mouth/mouth_cheeky_smile.png.import | 14 ++- .../mouth_cheeky_smile_onesided.png.import | 14 ++- .../faces/mouth/mouth_jackolantern.png.import | 14 ++- .../faces/mouth/mouth_jowls.png.import | 14 ++- .../faces/mouth/mouth_jowls_brock.png.import | 14 ++- .../faces/mouth/mouth_jowls_simple.png.import | 14 ++- .../faces/mouth/mouth_kissy.png.import | 14 ++- .../faces/mouth/mouth_kissy_lips.png.import | 14 ++- .../faces/mouth/mouth_lil_c.png.import | 14 ++- .../faces/mouth/mouth_open_ah.png.import | 14 ++- .../faces/mouth/mouth_open_oh.png.import | 14 ++- .../faces/mouth/mouth_open_small.png.import | 14 ++- .../faces/mouth/mouth_open_smile.png.import | 14 ++- .../faces/mouth/mouth_p_tounge.png.import | 14 ++- .../faces/mouth/mouth_sad.png.import | 14 ++- .../faces/mouth/mouth_sigh.png.import | 14 ++- .../faces/mouth/mouth_simple_smile.png.import | 14 ++- .../faces/mouth/mouth_slanted.png.import | 14 ++- .../faces/mouth/mouth_squigle.png.import | 14 ++- .../faces/mouth/mouth_vampy.png.import | 14 ++- .../faces/mouth/mouth_whiskers.png.import | 14 ++- .../characters/faces/mouth/mouth_y.png.import | 14 ++- .../faces/mouth/mouth_y_small.png.import | 14 ++- .../faces/mouth/mouth_y_small_pink.png.import | 14 ++- .../faces/noses/nose_cat_real.png.import | 14 ++- .../faces/noses/nose_clown.png.import | 14 ++- .../faces/noses/nose_dog_real.png.import | 14 ++- .../faces/noses/nose_dog_simple.png.import | 14 ++- .../faces/noses/nose_dragon.png.import | 14 ++- .../faces/noses/nose_hippo.png.import | 14 ++- .../faces/noses/nose_human.png.import | 14 ++- .../faces/noses/nose_nostrils.png.import | 14 ++- .../faces/noses/nose_piercing.png.import | 14 ++- .../faces/noses/nose_pig_snout.png.import | 14 ++- .../noses/nose_pig_snout_pink.png.import | 14 ++- .../faces/noses/nose_squidward.png.import | 14 ++- .../noses/nose_squidward_wide.png.import | 14 ++- .../faces/noses/nose_triangle.png.import | 14 ++- .../faces/noses/nose_triangle_pink.png.import | 14 ++- .../noses/nose_triangle_small.png.import | 14 ++- .../noses/nose_triangle_small_pink.png.import | 14 ++- .../faces/noses/nose_under.png.import | 14 ++- docs/DEVELOPMENT.md | 6 + export_presets.cfg | 4 +- .../character_customization_catalog.gd | 60 +++++++-- scripts/normalize_texture_imports.gd | 23 +++- scripts/run_validations.sh | 1 + tests/exported_decal_hotfix_validation.gd | 92 +++++++++++++- ui/profile_page.gd | 119 ++++++++++++++++-- 81 files changed, 869 insertions(+), 472 deletions(-) diff --git a/art/exported/characters/faces/eyes/eyes_alligator_extra.png.import b/art/exported/characters/faces/eyes/eyes_alligator_extra.png.import index c9348c7..6be8860 100644 --- a/art/exported/characters/faces/eyes/eyes_alligator_extra.png.import +++ b/art/exported/characters/faces/eyes/eyes_alligator_extra.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://c4rj1r1doawb4" -path="res://.godot/imported/eyes_alligator_extra.png-30730001eeef37c24fac0158f6613bd7.ctex" +path.s3tc="res://.godot/imported/eyes_alligator_extra.png-30730001eeef37c24fac0158f6613bd7.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_alligator_extra.png-30730001eeef37c24fac0158f6613bd7.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_alligator_extra.png" -dest_files=["res://.godot/imported/eyes_alligator_extra.png-30730001eeef37c24fac0158f6613bd7.ctex"] +dest_files=["res://.godot/imported/eyes_alligator_extra.png-30730001eeef37c24fac0158f6613bd7.s3tc.ctex", "res://.godot/imported/eyes_alligator_extra.png-30730001eeef37c24fac0158f6613bd7.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_alligator_eyes.png.import b/art/exported/characters/faces/eyes/eyes_alligator_eyes.png.import index 7f2eb8d..410a5ef 100644 --- a/art/exported/characters/faces/eyes/eyes_alligator_eyes.png.import +++ b/art/exported/characters/faces/eyes/eyes_alligator_eyes.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://br2h5sfqmool8" -path="res://.godot/imported/eyes_alligator_eyes.png-843d36964858cdf7ffafe1972ffed681.ctex" +path.s3tc="res://.godot/imported/eyes_alligator_eyes.png-843d36964858cdf7ffafe1972ffed681.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_alligator_eyes.png-843d36964858cdf7ffafe1972ffed681.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_alligator_eyes.png" -dest_files=["res://.godot/imported/eyes_alligator_eyes.png-843d36964858cdf7ffafe1972ffed681.ctex"] +dest_files=["res://.godot/imported/eyes_alligator_eyes.png-843d36964858cdf7ffafe1972ffed681.s3tc.ctex", "res://.godot/imported/eyes_alligator_eyes.png-843d36964858cdf7ffafe1972ffed681.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_angry.png.import b/art/exported/characters/faces/eyes/eyes_angry.png.import index 3be46d5..ee3d3df 100644 --- a/art/exported/characters/faces/eyes/eyes_angry.png.import +++ b/art/exported/characters/faces/eyes/eyes_angry.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b1ieqa8qos1vk" -path="res://.godot/imported/eyes_angry.png-a114dbeb3a8a14b8d1d86dd5a614b228.ctex" +path.s3tc="res://.godot/imported/eyes_angry.png-a114dbeb3a8a14b8d1d86dd5a614b228.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_angry.png-a114dbeb3a8a14b8d1d86dd5a614b228.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_angry.png" -dest_files=["res://.godot/imported/eyes_angry.png-a114dbeb3a8a14b8d1d86dd5a614b228.ctex"] +dest_files=["res://.godot/imported/eyes_angry.png-a114dbeb3a8a14b8d1d86dd5a614b228.s3tc.ctex", "res://.godot/imported/eyes_angry.png-a114dbeb3a8a14b8d1d86dd5a614b228.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_anime_blue.png.import b/art/exported/characters/faces/eyes/eyes_anime_blue.png.import index 443c8d0..6baa979 100644 --- a/art/exported/characters/faces/eyes/eyes_anime_blue.png.import +++ b/art/exported/characters/faces/eyes/eyes_anime_blue.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://2ecbidhb33vy" -path="res://.godot/imported/eyes_anime_blue.png-a86f72e375fc30cac2cd8320813c7c6c.ctex" +path.s3tc="res://.godot/imported/eyes_anime_blue.png-a86f72e375fc30cac2cd8320813c7c6c.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_anime_blue.png-a86f72e375fc30cac2cd8320813c7c6c.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_anime_blue.png" -dest_files=["res://.godot/imported/eyes_anime_blue.png-a86f72e375fc30cac2cd8320813c7c6c.ctex"] +dest_files=["res://.godot/imported/eyes_anime_blue.png-a86f72e375fc30cac2cd8320813c7c6c.s3tc.ctex", "res://.godot/imported/eyes_anime_blue.png-a86f72e375fc30cac2cd8320813c7c6c.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_anime_green.png.import b/art/exported/characters/faces/eyes/eyes_anime_green.png.import index a1be2b0..9c2a60c 100644 --- a/art/exported/characters/faces/eyes/eyes_anime_green.png.import +++ b/art/exported/characters/faces/eyes/eyes_anime_green.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bwrxrtiv375ne" -path="res://.godot/imported/eyes_anime_green.png-a789a8f21c23e3085bca8992b3a3fc25.ctex" +path.s3tc="res://.godot/imported/eyes_anime_green.png-a789a8f21c23e3085bca8992b3a3fc25.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_anime_green.png-a789a8f21c23e3085bca8992b3a3fc25.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_anime_green.png" -dest_files=["res://.godot/imported/eyes_anime_green.png-a789a8f21c23e3085bca8992b3a3fc25.ctex"] +dest_files=["res://.godot/imported/eyes_anime_green.png-a789a8f21c23e3085bca8992b3a3fc25.s3tc.ctex", "res://.godot/imported/eyes_anime_green.png-a789a8f21c23e3085bca8992b3a3fc25.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_beady.png.import b/art/exported/characters/faces/eyes/eyes_beady.png.import index 829845c..ce4ddea 100644 --- a/art/exported/characters/faces/eyes/eyes_beady.png.import +++ b/art/exported/characters/faces/eyes/eyes_beady.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bahypju2dturm" -path="res://.godot/imported/eyes_beady.png-18d3b3ff0818d80f773d4f72d0b0061e.ctex" +path.s3tc="res://.godot/imported/eyes_beady.png-18d3b3ff0818d80f773d4f72d0b0061e.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_beady.png-18d3b3ff0818d80f773d4f72d0b0061e.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_beady.png" -dest_files=["res://.godot/imported/eyes_beady.png-18d3b3ff0818d80f773d4f72d0b0061e.ctex"] +dest_files=["res://.godot/imported/eyes_beady.png-18d3b3ff0818d80f773d4f72d0b0061e.s3tc.ctex", "res://.godot/imported/eyes_beady.png-18d3b3ff0818d80f773d4f72d0b0061e.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_beady_extra.png.import b/art/exported/characters/faces/eyes/eyes_beady_extra.png.import index 2951456..29babb1 100644 --- a/art/exported/characters/faces/eyes/eyes_beady_extra.png.import +++ b/art/exported/characters/faces/eyes/eyes_beady_extra.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bqgdrdc0hpi7s" -path="res://.godot/imported/eyes_beady_extra.png-d07d79345b1d22e55a1cf140f7682248.ctex" +path.s3tc="res://.godot/imported/eyes_beady_extra.png-d07d79345b1d22e55a1cf140f7682248.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_beady_extra.png-d07d79345b1d22e55a1cf140f7682248.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_beady_extra.png" -dest_files=["res://.godot/imported/eyes_beady_extra.png-d07d79345b1d22e55a1cf140f7682248.ctex"] +dest_files=["res://.godot/imported/eyes_beady_extra.png-d07d79345b1d22e55a1cf140f7682248.s3tc.ctex", "res://.godot/imported/eyes_beady_extra.png-d07d79345b1d22e55a1cf140f7682248.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_beady_extra_shine.png.import b/art/exported/characters/faces/eyes/eyes_beady_extra_shine.png.import index fe258f0..047869d 100644 --- a/art/exported/characters/faces/eyes/eyes_beady_extra_shine.png.import +++ b/art/exported/characters/faces/eyes/eyes_beady_extra_shine.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://mvjcdk84ko6f" -path="res://.godot/imported/eyes_beady_extra_shine.png-c72a35f216a8c1a06122f7bd743ca6a4.ctex" +path.s3tc="res://.godot/imported/eyes_beady_extra_shine.png-c72a35f216a8c1a06122f7bd743ca6a4.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_beady_extra_shine.png-c72a35f216a8c1a06122f7bd743ca6a4.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_beady_extra_shine.png" -dest_files=["res://.godot/imported/eyes_beady_extra_shine.png-c72a35f216a8c1a06122f7bd743ca6a4.ctex"] +dest_files=["res://.godot/imported/eyes_beady_extra_shine.png-c72a35f216a8c1a06122f7bd743ca6a4.s3tc.ctex", "res://.godot/imported/eyes_beady_extra_shine.png-c72a35f216a8c1a06122f7bd743ca6a4.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_beady_eyebrows.png.import b/art/exported/characters/faces/eyes/eyes_beady_eyebrows.png.import index 4368bec..63a4b2f 100644 --- a/art/exported/characters/faces/eyes/eyes_beady_eyebrows.png.import +++ b/art/exported/characters/faces/eyes/eyes_beady_eyebrows.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://dp4sm67vn52um" -path="res://.godot/imported/eyes_beady_eyebrows.png-4f63e1a7ca603e9daf2d37a1d182e93f.ctex" +path.s3tc="res://.godot/imported/eyes_beady_eyebrows.png-4f63e1a7ca603e9daf2d37a1d182e93f.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_beady_eyebrows.png-4f63e1a7ca603e9daf2d37a1d182e93f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_beady_eyebrows.png" -dest_files=["res://.godot/imported/eyes_beady_eyebrows.png-4f63e1a7ca603e9daf2d37a1d182e93f.ctex"] +dest_files=["res://.godot/imported/eyes_beady_eyebrows.png-4f63e1a7ca603e9daf2d37a1d182e93f.s3tc.ctex", "res://.godot/imported/eyes_beady_eyebrows.png-4f63e1a7ca603e9daf2d37a1d182e93f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_beady_whites.png.import b/art/exported/characters/faces/eyes/eyes_beady_whites.png.import index 2b6680e..8503f0e 100644 --- a/art/exported/characters/faces/eyes/eyes_beady_whites.png.import +++ b/art/exported/characters/faces/eyes/eyes_beady_whites.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cw34wh51s5sxi" -path="res://.godot/imported/eyes_beady_whites.png-87ce5dcbdfca9ca43a6f7c5ddca77bfa.ctex" +path.s3tc="res://.godot/imported/eyes_beady_whites.png-87ce5dcbdfca9ca43a6f7c5ddca77bfa.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_beady_whites.png-87ce5dcbdfca9ca43a6f7c5ddca77bfa.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_beady_whites.png" -dest_files=["res://.godot/imported/eyes_beady_whites.png-87ce5dcbdfca9ca43a6f7c5ddca77bfa.ctex"] +dest_files=["res://.godot/imported/eyes_beady_whites.png-87ce5dcbdfca9ca43a6f7c5ddca77bfa.s3tc.ctex", "res://.godot/imported/eyes_beady_whites.png-87ce5dcbdfca9ca43a6f7c5ddca77bfa.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_carrot_eyes.png.import b/art/exported/characters/faces/eyes/eyes_carrot_eyes.png.import index 80ef07a..6444d02 100644 --- a/art/exported/characters/faces/eyes/eyes_carrot_eyes.png.import +++ b/art/exported/characters/faces/eyes/eyes_carrot_eyes.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://vn7mkjkx80ix" -path="res://.godot/imported/eyes_carrot_eyes.png-4d4af86c340a0dd0633449a9c6cc1bae.ctex" +path.s3tc="res://.godot/imported/eyes_carrot_eyes.png-4d4af86c340a0dd0633449a9c6cc1bae.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_carrot_eyes.png-4d4af86c340a0dd0633449a9c6cc1bae.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_carrot_eyes.png" -dest_files=["res://.godot/imported/eyes_carrot_eyes.png-4d4af86c340a0dd0633449a9c6cc1bae.ctex"] +dest_files=["res://.godot/imported/eyes_carrot_eyes.png-4d4af86c340a0dd0633449a9c6cc1bae.s3tc.ctex", "res://.godot/imported/eyes_carrot_eyes.png-4d4af86c340a0dd0633449a9c6cc1bae.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_cat_real.png.import b/art/exported/characters/faces/eyes/eyes_cat_real.png.import index 2a4cbd3..25675c9 100644 --- a/art/exported/characters/faces/eyes/eyes_cat_real.png.import +++ b/art/exported/characters/faces/eyes/eyes_cat_real.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://sbxopn55femq" -path="res://.godot/imported/eyes_cat_real.png-13c9b6d280ac1000d177e74cbd33f07f.ctex" +path.s3tc="res://.godot/imported/eyes_cat_real.png-13c9b6d280ac1000d177e74cbd33f07f.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_cat_real.png-13c9b6d280ac1000d177e74cbd33f07f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_cat_real.png" -dest_files=["res://.godot/imported/eyes_cat_real.png-13c9b6d280ac1000d177e74cbd33f07f.ctex"] +dest_files=["res://.godot/imported/eyes_cat_real.png-13c9b6d280ac1000d177e74cbd33f07f.s3tc.ctex", "res://.godot/imported/eyes_cat_real.png-13c9b6d280ac1000d177e74cbd33f07f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_cat_real_hunter.png.import b/art/exported/characters/faces/eyes/eyes_cat_real_hunter.png.import index 9d9b065..ab1c3f5 100644 --- a/art/exported/characters/faces/eyes/eyes_cat_real_hunter.png.import +++ b/art/exported/characters/faces/eyes/eyes_cat_real_hunter.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cg1l01m0ae2oa" -path="res://.godot/imported/eyes_cat_real_hunter.png-6eb486fc423d7e3fa84f71aa30ec04f3.ctex" +path.s3tc="res://.godot/imported/eyes_cat_real_hunter.png-6eb486fc423d7e3fa84f71aa30ec04f3.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_cat_real_hunter.png-6eb486fc423d7e3fa84f71aa30ec04f3.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_cat_real_hunter.png" -dest_files=["res://.godot/imported/eyes_cat_real_hunter.png-6eb486fc423d7e3fa84f71aa30ec04f3.ctex"] +dest_files=["res://.godot/imported/eyes_cat_real_hunter.png-6eb486fc423d7e3fa84f71aa30ec04f3.s3tc.ctex", "res://.godot/imported/eyes_cat_real_hunter.png-6eb486fc423d7e3fa84f71aa30ec04f3.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_close.png.import b/art/exported/characters/faces/eyes/eyes_close.png.import index 25986e6..e40b902 100644 --- a/art/exported/characters/faces/eyes/eyes_close.png.import +++ b/art/exported/characters/faces/eyes/eyes_close.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://kbigjk76ejx8" -path="res://.godot/imported/eyes_close.png-13a7da90295acf57ea489edcf26fc555.ctex" +path.s3tc="res://.godot/imported/eyes_close.png-13a7da90295acf57ea489edcf26fc555.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_close.png-13a7da90295acf57ea489edcf26fc555.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_close.png" -dest_files=["res://.godot/imported/eyes_close.png-13a7da90295acf57ea489edcf26fc555.ctex"] +dest_files=["res://.godot/imported/eyes_close.png-13a7da90295acf57ea489edcf26fc555.s3tc.ctex", "res://.godot/imported/eyes_close.png-13a7da90295acf57ea489edcf26fc555.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_closed.png.import b/art/exported/characters/faces/eyes/eyes_closed.png.import index af51540..325eb74 100644 --- a/art/exported/characters/faces/eyes/eyes_closed.png.import +++ b/art/exported/characters/faces/eyes/eyes_closed.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b2ufsni8mnpmq" -path="res://.godot/imported/eyes_closed.png-80789498475c2cfbcb6e3ac14e067a76.ctex" +path.s3tc="res://.godot/imported/eyes_closed.png-80789498475c2cfbcb6e3ac14e067a76.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_closed.png-80789498475c2cfbcb6e3ac14e067a76.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_closed.png" -dest_files=["res://.godot/imported/eyes_closed.png-80789498475c2cfbcb6e3ac14e067a76.ctex"] +dest_files=["res://.godot/imported/eyes_closed.png-80789498475c2cfbcb6e3ac14e067a76.s3tc.ctex", "res://.godot/imported/eyes_closed.png-80789498475c2cfbcb6e3ac14e067a76.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_cute.png.import b/art/exported/characters/faces/eyes/eyes_cute.png.import index c8d9f09..b19f9ef 100644 --- a/art/exported/characters/faces/eyes/eyes_cute.png.import +++ b/art/exported/characters/faces/eyes/eyes_cute.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b5455dbwse02f" -path="res://.godot/imported/eyes_cute.png-e2eabbdf5281c15927e85f1e2f22b127.ctex" +path.s3tc="res://.godot/imported/eyes_cute.png-e2eabbdf5281c15927e85f1e2f22b127.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_cute.png-e2eabbdf5281c15927e85f1e2f22b127.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_cute.png" -dest_files=["res://.godot/imported/eyes_cute.png-e2eabbdf5281c15927e85f1e2f22b127.ctex"] +dest_files=["res://.godot/imported/eyes_cute.png-e2eabbdf5281c15927e85f1e2f22b127.s3tc.ctex", "res://.godot/imported/eyes_cute.png-e2eabbdf5281c15927e85f1e2f22b127.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_cute_close.png.import b/art/exported/characters/faces/eyes/eyes_cute_close.png.import index 5b51dc2..9a3c9b2 100644 --- a/art/exported/characters/faces/eyes/eyes_cute_close.png.import +++ b/art/exported/characters/faces/eyes/eyes_cute_close.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://lp21yuhfqbc1" -path="res://.godot/imported/eyes_cute_close.png-7a8a1b4e10864cfef604b9ced31a3f0c.ctex" +path.s3tc="res://.godot/imported/eyes_cute_close.png-7a8a1b4e10864cfef604b9ced31a3f0c.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_cute_close.png-7a8a1b4e10864cfef604b9ced31a3f0c.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_cute_close.png" -dest_files=["res://.godot/imported/eyes_cute_close.png-7a8a1b4e10864cfef604b9ced31a3f0c.ctex"] +dest_files=["res://.godot/imported/eyes_cute_close.png-7a8a1b4e10864cfef604b9ced31a3f0c.s3tc.ctex", "res://.godot/imported/eyes_cute_close.png-7a8a1b4e10864cfef604b9ced31a3f0c.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_huge.png.import b/art/exported/characters/faces/eyes/eyes_huge.png.import index 2c449bd..7b55837 100644 --- a/art/exported/characters/faces/eyes/eyes_huge.png.import +++ b/art/exported/characters/faces/eyes/eyes_huge.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://vb1eaupu8fpm" -path="res://.godot/imported/eyes_huge.png-9747926f369b1134a94639907057a08d.ctex" +path.s3tc="res://.godot/imported/eyes_huge.png-9747926f369b1134a94639907057a08d.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_huge.png-9747926f369b1134a94639907057a08d.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_huge.png" -dest_files=["res://.godot/imported/eyes_huge.png-9747926f369b1134a94639907057a08d.ctex"] +dest_files=["res://.godot/imported/eyes_huge.png-9747926f369b1134a94639907057a08d.s3tc.ctex", "res://.godot/imported/eyes_huge.png-9747926f369b1134a94639907057a08d.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_interested.png.import b/art/exported/characters/faces/eyes/eyes_interested.png.import index 061fe34..7f3a996 100644 --- a/art/exported/characters/faces/eyes/eyes_interested.png.import +++ b/art/exported/characters/faces/eyes/eyes_interested.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b3481384do6m4" -path="res://.godot/imported/eyes_interested.png-5e8a34c0afaf7b4543f1b892af2227c7.ctex" +path.s3tc="res://.godot/imported/eyes_interested.png-5e8a34c0afaf7b4543f1b892af2227c7.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_interested.png-5e8a34c0afaf7b4543f1b892af2227c7.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_interested.png" -dest_files=["res://.godot/imported/eyes_interested.png-5e8a34c0afaf7b4543f1b892af2227c7.ctex"] +dest_files=["res://.godot/imported/eyes_interested.png-5e8a34c0afaf7b4543f1b892af2227c7.s3tc.ctex", "res://.godot/imported/eyes_interested.png-5e8a34c0afaf7b4543f1b892af2227c7.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_jackolantern.png.import b/art/exported/characters/faces/eyes/eyes_jackolantern.png.import index c447cdd..0515c3f 100644 --- a/art/exported/characters/faces/eyes/eyes_jackolantern.png.import +++ b/art/exported/characters/faces/eyes/eyes_jackolantern.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cdqqfoss11muq" -path="res://.godot/imported/eyes_jackolantern.png-16dc8591f3bd827988f8fcb90bbced59.ctex" +path.s3tc="res://.godot/imported/eyes_jackolantern.png-16dc8591f3bd827988f8fcb90bbced59.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_jackolantern.png-16dc8591f3bd827988f8fcb90bbced59.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_jackolantern.png" -dest_files=["res://.godot/imported/eyes_jackolantern.png-16dc8591f3bd827988f8fcb90bbced59.ctex"] +dest_files=["res://.godot/imported/eyes_jackolantern.png-16dc8591f3bd827988f8fcb90bbced59.s3tc.ctex", "res://.godot/imported/eyes_jackolantern.png-16dc8591f3bd827988f8fcb90bbced59.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_jackolantern_small.png.import b/art/exported/characters/faces/eyes/eyes_jackolantern_small.png.import index 8de58a2..3c8fb9b 100644 --- a/art/exported/characters/faces/eyes/eyes_jackolantern_small.png.import +++ b/art/exported/characters/faces/eyes/eyes_jackolantern_small.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://6n6riqe60s2f" -path="res://.godot/imported/eyes_jackolantern_small.png-7608ab74472a3edb79fcddb1cafbcc2f.ctex" +path.s3tc="res://.godot/imported/eyes_jackolantern_small.png-7608ab74472a3edb79fcddb1cafbcc2f.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_jackolantern_small.png-7608ab74472a3edb79fcddb1cafbcc2f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_jackolantern_small.png" -dest_files=["res://.godot/imported/eyes_jackolantern_small.png-7608ab74472a3edb79fcddb1cafbcc2f.ctex"] +dest_files=["res://.godot/imported/eyes_jackolantern_small.png-7608ab74472a3edb79fcddb1cafbcc2f.s3tc.ctex", "res://.godot/imported/eyes_jackolantern_small.png-7608ab74472a3edb79fcddb1cafbcc2f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_punk_purple.png.import b/art/exported/characters/faces/eyes/eyes_punk_purple.png.import index 547a560..5e58771 100644 --- a/art/exported/characters/faces/eyes/eyes_punk_purple.png.import +++ b/art/exported/characters/faces/eyes/eyes_punk_purple.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b2c784my766ag" -path="res://.godot/imported/eyes_punk_purple.png-fc0ccb3a5f1d2c23f2f367bb306d1ada.ctex" +path.s3tc="res://.godot/imported/eyes_punk_purple.png-fc0ccb3a5f1d2c23f2f367bb306d1ada.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_punk_purple.png-fc0ccb3a5f1d2c23f2f367bb306d1ada.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_punk_purple.png" -dest_files=["res://.godot/imported/eyes_punk_purple.png-fc0ccb3a5f1d2c23f2f367bb306d1ada.ctex"] +dest_files=["res://.godot/imported/eyes_punk_purple.png-fc0ccb3a5f1d2c23f2f367bb306d1ada.s3tc.ctex", "res://.godot/imported/eyes_punk_purple.png-fc0ccb3a5f1d2c23f2f367bb306d1ada.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_sexy_blue.png.import b/art/exported/characters/faces/eyes/eyes_sexy_blue.png.import index 7d2046d..dc29314 100644 --- a/art/exported/characters/faces/eyes/eyes_sexy_blue.png.import +++ b/art/exported/characters/faces/eyes/eyes_sexy_blue.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://drajn1tk8gq4a" -path="res://.godot/imported/eyes_sexy_blue.png-f99ecb6d89cb6c453161f6ad9fd5f802.ctex" +path.s3tc="res://.godot/imported/eyes_sexy_blue.png-f99ecb6d89cb6c453161f6ad9fd5f802.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_sexy_blue.png-f99ecb6d89cb6c453161f6ad9fd5f802.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_sexy_blue.png" -dest_files=["res://.godot/imported/eyes_sexy_blue.png-f99ecb6d89cb6c453161f6ad9fd5f802.ctex"] +dest_files=["res://.godot/imported/eyes_sexy_blue.png-f99ecb6d89cb6c453161f6ad9fd5f802.s3tc.ctex", "res://.godot/imported/eyes_sexy_blue.png-f99ecb6d89cb6c453161f6ad9fd5f802.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_sexy_brown.png.import b/art/exported/characters/faces/eyes/eyes_sexy_brown.png.import index a2b30f1..3abd188 100644 --- a/art/exported/characters/faces/eyes/eyes_sexy_brown.png.import +++ b/art/exported/characters/faces/eyes/eyes_sexy_brown.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://c38u5tdksowpw" -path="res://.godot/imported/eyes_sexy_brown.png-e77cd183e70234d3ee7772ed2837cf34.ctex" +path.s3tc="res://.godot/imported/eyes_sexy_brown.png-e77cd183e70234d3ee7772ed2837cf34.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_sexy_brown.png-e77cd183e70234d3ee7772ed2837cf34.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_sexy_brown.png" -dest_files=["res://.godot/imported/eyes_sexy_brown.png-e77cd183e70234d3ee7772ed2837cf34.ctex"] +dest_files=["res://.godot/imported/eyes_sexy_brown.png-e77cd183e70234d3ee7772ed2837cf34.s3tc.ctex", "res://.godot/imported/eyes_sexy_brown.png-e77cd183e70234d3ee7772ed2837cf34.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_spider.png.import b/art/exported/characters/faces/eyes/eyes_spider.png.import index 3b137b9..b274e66 100644 --- a/art/exported/characters/faces/eyes/eyes_spider.png.import +++ b/art/exported/characters/faces/eyes/eyes_spider.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bevrdbag3eixb" -path="res://.godot/imported/eyes_spider.png-4cbe85913f69207b18d4b23095aca596.ctex" +path.s3tc="res://.godot/imported/eyes_spider.png-4cbe85913f69207b18d4b23095aca596.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_spider.png-4cbe85913f69207b18d4b23095aca596.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_spider.png" -dest_files=["res://.godot/imported/eyes_spider.png-4cbe85913f69207b18d4b23095aca596.ctex"] +dest_files=["res://.godot/imported/eyes_spider.png-4cbe85913f69207b18d4b23095aca596.s3tc.ctex", "res://.godot/imported/eyes_spider.png-4cbe85913f69207b18d4b23095aca596.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_surprised.png.import b/art/exported/characters/faces/eyes/eyes_surprised.png.import index 0d7907b..d83d6c5 100644 --- a/art/exported/characters/faces/eyes/eyes_surprised.png.import +++ b/art/exported/characters/faces/eyes/eyes_surprised.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://chvod4aqeqn10" -path="res://.godot/imported/eyes_surprised.png-21858dc3f7520b1423e3d0aff59b6896.ctex" +path.s3tc="res://.godot/imported/eyes_surprised.png-21858dc3f7520b1423e3d0aff59b6896.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_surprised.png-21858dc3f7520b1423e3d0aff59b6896.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_surprised.png" -dest_files=["res://.godot/imported/eyes_surprised.png-21858dc3f7520b1423e3d0aff59b6896.ctex"] +dest_files=["res://.godot/imported/eyes_surprised.png-21858dc3f7520b1423e3d0aff59b6896.s3tc.ctex", "res://.godot/imported/eyes_surprised.png-21858dc3f7520b1423e3d0aff59b6896.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_tired.png.import b/art/exported/characters/faces/eyes/eyes_tired.png.import index 9de4b0f..70a45ab 100644 --- a/art/exported/characters/faces/eyes/eyes_tired.png.import +++ b/art/exported/characters/faces/eyes/eyes_tired.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bimnlu17t6u6v" -path="res://.godot/imported/eyes_tired.png-752efd150fd50cc078ee25c8bbbeeb36.ctex" +path.s3tc="res://.godot/imported/eyes_tired.png-752efd150fd50cc078ee25c8bbbeeb36.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_tired.png-752efd150fd50cc078ee25c8bbbeeb36.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_tired.png" -dest_files=["res://.godot/imported/eyes_tired.png-752efd150fd50cc078ee25c8bbbeeb36.ctex"] +dest_files=["res://.godot/imported/eyes_tired.png-752efd150fd50cc078ee25c8bbbeeb36.s3tc.ctex", "res://.godot/imported/eyes_tired.png-752efd150fd50cc078ee25c8bbbeeb36.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_tired_flat.png.import b/art/exported/characters/faces/eyes/eyes_tired_flat.png.import index 5a2ec55..831ff6d 100644 --- a/art/exported/characters/faces/eyes/eyes_tired_flat.png.import +++ b/art/exported/characters/faces/eyes/eyes_tired_flat.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b4hmrvoblu3cl" -path="res://.godot/imported/eyes_tired_flat.png-c441cfd39c6147e6a13989a4dd86be05.ctex" +path.s3tc="res://.godot/imported/eyes_tired_flat.png-c441cfd39c6147e6a13989a4dd86be05.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_tired_flat.png-c441cfd39c6147e6a13989a4dd86be05.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_tired_flat.png" -dest_files=["res://.godot/imported/eyes_tired_flat.png-c441cfd39c6147e6a13989a4dd86be05.ctex"] +dest_files=["res://.godot/imported/eyes_tired_flat.png-c441cfd39c6147e6a13989a4dd86be05.s3tc.ctex", "res://.godot/imported/eyes_tired_flat.png-c441cfd39c6147e6a13989a4dd86be05.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/eyes/eyes_upset.png.import b/art/exported/characters/faces/eyes/eyes_upset.png.import index 0c455d4..a0b51d5 100644 --- a/art/exported/characters/faces/eyes/eyes_upset.png.import +++ b/art/exported/characters/faces/eyes/eyes_upset.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://blm1i6xyjclp5" -path="res://.godot/imported/eyes_upset.png-a8509f19cb25f577e84ebe86d28a31b1.ctex" +path.s3tc="res://.godot/imported/eyes_upset.png-a8509f19cb25f577e84ebe86d28a31b1.s3tc.ctex" +path.etc2="res://.godot/imported/eyes_upset.png-a8509f19cb25f577e84ebe86d28a31b1.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/eyes/eyes_upset.png" -dest_files=["res://.godot/imported/eyes_upset.png-a8509f19cb25f577e84ebe86d28a31b1.ctex"] +dest_files=["res://.godot/imported/eyes_upset.png-a8509f19cb25f577e84ebe86d28a31b1.s3tc.ctex", "res://.godot/imported/eyes_upset.png-a8509f19cb25f577e84ebe86d28a31b1.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_3.png.import b/art/exported/characters/faces/mouth/mouth_3.png.import index eab9f48..3da8cbf 100644 --- a/art/exported/characters/faces/mouth/mouth_3.png.import +++ b/art/exported/characters/faces/mouth/mouth_3.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b5wnxcm61q4ou" -path="res://.godot/imported/mouth_3.png-9fd9edc312c3b2c33df59da33d62bb30.ctex" +path.s3tc="res://.godot/imported/mouth_3.png-9fd9edc312c3b2c33df59da33d62bb30.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_3.png-9fd9edc312c3b2c33df59da33d62bb30.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_3.png" -dest_files=["res://.godot/imported/mouth_3.png-9fd9edc312c3b2c33df59da33d62bb30.ctex"] +dest_files=["res://.godot/imported/mouth_3.png-9fd9edc312c3b2c33df59da33d62bb30.s3tc.ctex", "res://.godot/imported/mouth_3.png-9fd9edc312c3b2c33df59da33d62bb30.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_3_cheeky.png.import b/art/exported/characters/faces/mouth/mouth_3_cheeky.png.import index a53b280..f212e57 100644 --- a/art/exported/characters/faces/mouth/mouth_3_cheeky.png.import +++ b/art/exported/characters/faces/mouth/mouth_3_cheeky.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://dhaec7illng60" -path="res://.godot/imported/mouth_3_cheeky.png-1c9ae1bcb18ff29fe44e13b55b692f57.ctex" +path.s3tc="res://.godot/imported/mouth_3_cheeky.png-1c9ae1bcb18ff29fe44e13b55b692f57.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_3_cheeky.png-1c9ae1bcb18ff29fe44e13b55b692f57.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_3_cheeky.png" -dest_files=["res://.godot/imported/mouth_3_cheeky.png-1c9ae1bcb18ff29fe44e13b55b692f57.ctex"] +dest_files=["res://.godot/imported/mouth_3_cheeky.png-1c9ae1bcb18ff29fe44e13b55b692f57.s3tc.ctex", "res://.godot/imported/mouth_3_cheeky.png-1c9ae1bcb18ff29fe44e13b55b692f57.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_buck teeth.png.import b/art/exported/characters/faces/mouth/mouth_buck teeth.png.import index 8909223..6e837c8 100644 --- a/art/exported/characters/faces/mouth/mouth_buck teeth.png.import +++ b/art/exported/characters/faces/mouth/mouth_buck teeth.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://dmvxpg0jbiyqw" -path="res://.godot/imported/mouth_buck teeth.png-84be0f368b98b8640d5cc51d8a9b956f.ctex" +path.s3tc="res://.godot/imported/mouth_buck teeth.png-84be0f368b98b8640d5cc51d8a9b956f.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_buck teeth.png-84be0f368b98b8640d5cc51d8a9b956f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_buck teeth.png" -dest_files=["res://.godot/imported/mouth_buck teeth.png-84be0f368b98b8640d5cc51d8a9b956f.ctex"] +dest_files=["res://.godot/imported/mouth_buck teeth.png-84be0f368b98b8640d5cc51d8a9b956f.s3tc.ctex", "res://.godot/imported/mouth_buck teeth.png-84be0f368b98b8640d5cc51d8a9b956f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_cheeky_smile.png.import b/art/exported/characters/faces/mouth/mouth_cheeky_smile.png.import index 926ef6c..dce960a 100644 --- a/art/exported/characters/faces/mouth/mouth_cheeky_smile.png.import +++ b/art/exported/characters/faces/mouth/mouth_cheeky_smile.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://8tdtfnv3bgft" -path="res://.godot/imported/mouth_cheeky_smile.png-d55ec6f5fd7e73fd8793d524475f9f1f.ctex" +path.s3tc="res://.godot/imported/mouth_cheeky_smile.png-d55ec6f5fd7e73fd8793d524475f9f1f.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_cheeky_smile.png-d55ec6f5fd7e73fd8793d524475f9f1f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_cheeky_smile.png" -dest_files=["res://.godot/imported/mouth_cheeky_smile.png-d55ec6f5fd7e73fd8793d524475f9f1f.ctex"] +dest_files=["res://.godot/imported/mouth_cheeky_smile.png-d55ec6f5fd7e73fd8793d524475f9f1f.s3tc.ctex", "res://.godot/imported/mouth_cheeky_smile.png-d55ec6f5fd7e73fd8793d524475f9f1f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_cheeky_smile_onesided.png.import b/art/exported/characters/faces/mouth/mouth_cheeky_smile_onesided.png.import index 0b1450a..f500e42 100644 --- a/art/exported/characters/faces/mouth/mouth_cheeky_smile_onesided.png.import +++ b/art/exported/characters/faces/mouth/mouth_cheeky_smile_onesided.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://8xyawmp5gru8" -path="res://.godot/imported/mouth_cheeky_smile_onesided.png-366c346f7be47b1521677b84666a672b.ctex" +path.s3tc="res://.godot/imported/mouth_cheeky_smile_onesided.png-366c346f7be47b1521677b84666a672b.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_cheeky_smile_onesided.png-366c346f7be47b1521677b84666a672b.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_cheeky_smile_onesided.png" -dest_files=["res://.godot/imported/mouth_cheeky_smile_onesided.png-366c346f7be47b1521677b84666a672b.ctex"] +dest_files=["res://.godot/imported/mouth_cheeky_smile_onesided.png-366c346f7be47b1521677b84666a672b.s3tc.ctex", "res://.godot/imported/mouth_cheeky_smile_onesided.png-366c346f7be47b1521677b84666a672b.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_jackolantern.png.import b/art/exported/characters/faces/mouth/mouth_jackolantern.png.import index 1756a04..6c0861a 100644 --- a/art/exported/characters/faces/mouth/mouth_jackolantern.png.import +++ b/art/exported/characters/faces/mouth/mouth_jackolantern.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://ck4bbdnpf6ekd" -path="res://.godot/imported/mouth_jackolantern.png-7f9373a2b59e617edd25d92ef63041f0.ctex" +path.s3tc="res://.godot/imported/mouth_jackolantern.png-7f9373a2b59e617edd25d92ef63041f0.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_jackolantern.png-7f9373a2b59e617edd25d92ef63041f0.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_jackolantern.png" -dest_files=["res://.godot/imported/mouth_jackolantern.png-7f9373a2b59e617edd25d92ef63041f0.ctex"] +dest_files=["res://.godot/imported/mouth_jackolantern.png-7f9373a2b59e617edd25d92ef63041f0.s3tc.ctex", "res://.godot/imported/mouth_jackolantern.png-7f9373a2b59e617edd25d92ef63041f0.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_jowls.png.import b/art/exported/characters/faces/mouth/mouth_jowls.png.import index 1af65fe..7f5823b 100644 --- a/art/exported/characters/faces/mouth/mouth_jowls.png.import +++ b/art/exported/characters/faces/mouth/mouth_jowls.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://dyynmci0hf3vq" -path="res://.godot/imported/mouth_jowls.png-88cd6159c02a5b4eee74b98dc8248dcd.ctex" +path.s3tc="res://.godot/imported/mouth_jowls.png-88cd6159c02a5b4eee74b98dc8248dcd.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_jowls.png-88cd6159c02a5b4eee74b98dc8248dcd.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_jowls.png" -dest_files=["res://.godot/imported/mouth_jowls.png-88cd6159c02a5b4eee74b98dc8248dcd.ctex"] +dest_files=["res://.godot/imported/mouth_jowls.png-88cd6159c02a5b4eee74b98dc8248dcd.s3tc.ctex", "res://.godot/imported/mouth_jowls.png-88cd6159c02a5b4eee74b98dc8248dcd.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_jowls_brock.png.import b/art/exported/characters/faces/mouth/mouth_jowls_brock.png.import index d2ec5c4..0461534 100644 --- a/art/exported/characters/faces/mouth/mouth_jowls_brock.png.import +++ b/art/exported/characters/faces/mouth/mouth_jowls_brock.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://duajvlqrieray" -path="res://.godot/imported/mouth_jowls_brock.png-de76cffdce72eb30289c44bcb2e68ce6.ctex" +path.s3tc="res://.godot/imported/mouth_jowls_brock.png-de76cffdce72eb30289c44bcb2e68ce6.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_jowls_brock.png-de76cffdce72eb30289c44bcb2e68ce6.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_jowls_brock.png" -dest_files=["res://.godot/imported/mouth_jowls_brock.png-de76cffdce72eb30289c44bcb2e68ce6.ctex"] +dest_files=["res://.godot/imported/mouth_jowls_brock.png-de76cffdce72eb30289c44bcb2e68ce6.s3tc.ctex", "res://.godot/imported/mouth_jowls_brock.png-de76cffdce72eb30289c44bcb2e68ce6.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_jowls_simple.png.import b/art/exported/characters/faces/mouth/mouth_jowls_simple.png.import index f6cf4a0..fc1ad41 100644 --- a/art/exported/characters/faces/mouth/mouth_jowls_simple.png.import +++ b/art/exported/characters/faces/mouth/mouth_jowls_simple.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://c37gty8itl5oe" -path="res://.godot/imported/mouth_jowls_simple.png-0586400ebfd9ef98c9067f0ebbe730be.ctex" +path.s3tc="res://.godot/imported/mouth_jowls_simple.png-0586400ebfd9ef98c9067f0ebbe730be.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_jowls_simple.png-0586400ebfd9ef98c9067f0ebbe730be.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_jowls_simple.png" -dest_files=["res://.godot/imported/mouth_jowls_simple.png-0586400ebfd9ef98c9067f0ebbe730be.ctex"] +dest_files=["res://.godot/imported/mouth_jowls_simple.png-0586400ebfd9ef98c9067f0ebbe730be.s3tc.ctex", "res://.godot/imported/mouth_jowls_simple.png-0586400ebfd9ef98c9067f0ebbe730be.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_kissy.png.import b/art/exported/characters/faces/mouth/mouth_kissy.png.import index ff0e1c1..1281fa1 100644 --- a/art/exported/characters/faces/mouth/mouth_kissy.png.import +++ b/art/exported/characters/faces/mouth/mouth_kissy.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://druncaq416lvu" -path="res://.godot/imported/mouth_kissy.png-52ec7a06301d8506497442f0ea0054a0.ctex" +path.s3tc="res://.godot/imported/mouth_kissy.png-52ec7a06301d8506497442f0ea0054a0.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_kissy.png-52ec7a06301d8506497442f0ea0054a0.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_kissy.png" -dest_files=["res://.godot/imported/mouth_kissy.png-52ec7a06301d8506497442f0ea0054a0.ctex"] +dest_files=["res://.godot/imported/mouth_kissy.png-52ec7a06301d8506497442f0ea0054a0.s3tc.ctex", "res://.godot/imported/mouth_kissy.png-52ec7a06301d8506497442f0ea0054a0.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_kissy_lips.png.import b/art/exported/characters/faces/mouth/mouth_kissy_lips.png.import index 2141904..3778c31 100644 --- a/art/exported/characters/faces/mouth/mouth_kissy_lips.png.import +++ b/art/exported/characters/faces/mouth/mouth_kissy_lips.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://babmei7rq8uaf" -path="res://.godot/imported/mouth_kissy_lips.png-a90d7b9649dbba8cc17232f59291a2c8.ctex" +path.s3tc="res://.godot/imported/mouth_kissy_lips.png-a90d7b9649dbba8cc17232f59291a2c8.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_kissy_lips.png-a90d7b9649dbba8cc17232f59291a2c8.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_kissy_lips.png" -dest_files=["res://.godot/imported/mouth_kissy_lips.png-a90d7b9649dbba8cc17232f59291a2c8.ctex"] +dest_files=["res://.godot/imported/mouth_kissy_lips.png-a90d7b9649dbba8cc17232f59291a2c8.s3tc.ctex", "res://.godot/imported/mouth_kissy_lips.png-a90d7b9649dbba8cc17232f59291a2c8.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_lil_c.png.import b/art/exported/characters/faces/mouth/mouth_lil_c.png.import index 1a7c28d..06518f1 100644 --- a/art/exported/characters/faces/mouth/mouth_lil_c.png.import +++ b/art/exported/characters/faces/mouth/mouth_lil_c.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bfafrjmy6liy6" -path="res://.godot/imported/mouth_lil_c.png-e65a240e587f99537a3a9f1d3f241323.ctex" +path.s3tc="res://.godot/imported/mouth_lil_c.png-e65a240e587f99537a3a9f1d3f241323.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_lil_c.png-e65a240e587f99537a3a9f1d3f241323.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_lil_c.png" -dest_files=["res://.godot/imported/mouth_lil_c.png-e65a240e587f99537a3a9f1d3f241323.ctex"] +dest_files=["res://.godot/imported/mouth_lil_c.png-e65a240e587f99537a3a9f1d3f241323.s3tc.ctex", "res://.godot/imported/mouth_lil_c.png-e65a240e587f99537a3a9f1d3f241323.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_open_ah.png.import b/art/exported/characters/faces/mouth/mouth_open_ah.png.import index 5f8c2e7..f37ae3a 100644 --- a/art/exported/characters/faces/mouth/mouth_open_ah.png.import +++ b/art/exported/characters/faces/mouth/mouth_open_ah.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://44cqu18imydc" -path="res://.godot/imported/mouth_open_ah.png-2710d397264f57dbe8f9bac82dd4b0de.ctex" +path.s3tc="res://.godot/imported/mouth_open_ah.png-2710d397264f57dbe8f9bac82dd4b0de.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_open_ah.png-2710d397264f57dbe8f9bac82dd4b0de.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_open_ah.png" -dest_files=["res://.godot/imported/mouth_open_ah.png-2710d397264f57dbe8f9bac82dd4b0de.ctex"] +dest_files=["res://.godot/imported/mouth_open_ah.png-2710d397264f57dbe8f9bac82dd4b0de.s3tc.ctex", "res://.godot/imported/mouth_open_ah.png-2710d397264f57dbe8f9bac82dd4b0de.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_open_oh.png.import b/art/exported/characters/faces/mouth/mouth_open_oh.png.import index e4602aa..b5e7a1d 100644 --- a/art/exported/characters/faces/mouth/mouth_open_oh.png.import +++ b/art/exported/characters/faces/mouth/mouth_open_oh.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://c78hwv0t3ph47" -path="res://.godot/imported/mouth_open_oh.png-10fc59160b782879c415074831421088.ctex" +path.s3tc="res://.godot/imported/mouth_open_oh.png-10fc59160b782879c415074831421088.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_open_oh.png-10fc59160b782879c415074831421088.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_open_oh.png" -dest_files=["res://.godot/imported/mouth_open_oh.png-10fc59160b782879c415074831421088.ctex"] +dest_files=["res://.godot/imported/mouth_open_oh.png-10fc59160b782879c415074831421088.s3tc.ctex", "res://.godot/imported/mouth_open_oh.png-10fc59160b782879c415074831421088.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_open_small.png.import b/art/exported/characters/faces/mouth/mouth_open_small.png.import index 9b15e51..5a83a6e 100644 --- a/art/exported/characters/faces/mouth/mouth_open_small.png.import +++ b/art/exported/characters/faces/mouth/mouth_open_small.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bn68lfabdo7ga" -path="res://.godot/imported/mouth_open_small.png-30e9081c075d21159d6563a981b15378.ctex" +path.s3tc="res://.godot/imported/mouth_open_small.png-30e9081c075d21159d6563a981b15378.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_open_small.png-30e9081c075d21159d6563a981b15378.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_open_small.png" -dest_files=["res://.godot/imported/mouth_open_small.png-30e9081c075d21159d6563a981b15378.ctex"] +dest_files=["res://.godot/imported/mouth_open_small.png-30e9081c075d21159d6563a981b15378.s3tc.ctex", "res://.godot/imported/mouth_open_small.png-30e9081c075d21159d6563a981b15378.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_open_smile.png.import b/art/exported/characters/faces/mouth/mouth_open_smile.png.import index 06e410b..46b3100 100644 --- a/art/exported/characters/faces/mouth/mouth_open_smile.png.import +++ b/art/exported/characters/faces/mouth/mouth_open_smile.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b12jrc4ao3r16" -path="res://.godot/imported/mouth_open_smile.png-2561ffea934645e2eac40ab3a0a6395a.ctex" +path.s3tc="res://.godot/imported/mouth_open_smile.png-2561ffea934645e2eac40ab3a0a6395a.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_open_smile.png-2561ffea934645e2eac40ab3a0a6395a.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_open_smile.png" -dest_files=["res://.godot/imported/mouth_open_smile.png-2561ffea934645e2eac40ab3a0a6395a.ctex"] +dest_files=["res://.godot/imported/mouth_open_smile.png-2561ffea934645e2eac40ab3a0a6395a.s3tc.ctex", "res://.godot/imported/mouth_open_smile.png-2561ffea934645e2eac40ab3a0a6395a.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_p_tounge.png.import b/art/exported/characters/faces/mouth/mouth_p_tounge.png.import index 1a791ce..a49c3ae 100644 --- a/art/exported/characters/faces/mouth/mouth_p_tounge.png.import +++ b/art/exported/characters/faces/mouth/mouth_p_tounge.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://nt1q6gpij6y3" -path="res://.godot/imported/mouth_p_tounge.png-f2e1b9018a58fa3c500b05c19941a1f3.ctex" +path.s3tc="res://.godot/imported/mouth_p_tounge.png-f2e1b9018a58fa3c500b05c19941a1f3.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_p_tounge.png-f2e1b9018a58fa3c500b05c19941a1f3.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_p_tounge.png" -dest_files=["res://.godot/imported/mouth_p_tounge.png-f2e1b9018a58fa3c500b05c19941a1f3.ctex"] +dest_files=["res://.godot/imported/mouth_p_tounge.png-f2e1b9018a58fa3c500b05c19941a1f3.s3tc.ctex", "res://.godot/imported/mouth_p_tounge.png-f2e1b9018a58fa3c500b05c19941a1f3.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_sad.png.import b/art/exported/characters/faces/mouth/mouth_sad.png.import index bfe50b3..a0cce86 100644 --- a/art/exported/characters/faces/mouth/mouth_sad.png.import +++ b/art/exported/characters/faces/mouth/mouth_sad.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://camwvowsgxnlw" -path="res://.godot/imported/mouth_sad.png-ced7361b391677e61acbb1877a8e7156.ctex" +path.s3tc="res://.godot/imported/mouth_sad.png-ced7361b391677e61acbb1877a8e7156.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_sad.png-ced7361b391677e61acbb1877a8e7156.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_sad.png" -dest_files=["res://.godot/imported/mouth_sad.png-ced7361b391677e61acbb1877a8e7156.ctex"] +dest_files=["res://.godot/imported/mouth_sad.png-ced7361b391677e61acbb1877a8e7156.s3tc.ctex", "res://.godot/imported/mouth_sad.png-ced7361b391677e61acbb1877a8e7156.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_sigh.png.import b/art/exported/characters/faces/mouth/mouth_sigh.png.import index 928a5d2..3199031 100644 --- a/art/exported/characters/faces/mouth/mouth_sigh.png.import +++ b/art/exported/characters/faces/mouth/mouth_sigh.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b0842jxg3m1ca" -path="res://.godot/imported/mouth_sigh.png-f58b2992f2709483fde720834a5e8820.ctex" +path.s3tc="res://.godot/imported/mouth_sigh.png-f58b2992f2709483fde720834a5e8820.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_sigh.png-f58b2992f2709483fde720834a5e8820.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_sigh.png" -dest_files=["res://.godot/imported/mouth_sigh.png-f58b2992f2709483fde720834a5e8820.ctex"] +dest_files=["res://.godot/imported/mouth_sigh.png-f58b2992f2709483fde720834a5e8820.s3tc.ctex", "res://.godot/imported/mouth_sigh.png-f58b2992f2709483fde720834a5e8820.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_simple_smile.png.import b/art/exported/characters/faces/mouth/mouth_simple_smile.png.import index 82bd51a..c71a778 100644 --- a/art/exported/characters/faces/mouth/mouth_simple_smile.png.import +++ b/art/exported/characters/faces/mouth/mouth_simple_smile.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://nafybekpya31" -path="res://.godot/imported/mouth_simple_smile.png-029050835f365c4976c1b4e62edbc7c8.ctex" +path.s3tc="res://.godot/imported/mouth_simple_smile.png-029050835f365c4976c1b4e62edbc7c8.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_simple_smile.png-029050835f365c4976c1b4e62edbc7c8.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_simple_smile.png" -dest_files=["res://.godot/imported/mouth_simple_smile.png-029050835f365c4976c1b4e62edbc7c8.ctex"] +dest_files=["res://.godot/imported/mouth_simple_smile.png-029050835f365c4976c1b4e62edbc7c8.s3tc.ctex", "res://.godot/imported/mouth_simple_smile.png-029050835f365c4976c1b4e62edbc7c8.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_slanted.png.import b/art/exported/characters/faces/mouth/mouth_slanted.png.import index 01efb87..80611ac 100644 --- a/art/exported/characters/faces/mouth/mouth_slanted.png.import +++ b/art/exported/characters/faces/mouth/mouth_slanted.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://nuj6ednwjawn" -path="res://.godot/imported/mouth_slanted.png-cb0a217a5bb11b80e53b1a6e3e94f43d.ctex" +path.s3tc="res://.godot/imported/mouth_slanted.png-cb0a217a5bb11b80e53b1a6e3e94f43d.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_slanted.png-cb0a217a5bb11b80e53b1a6e3e94f43d.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_slanted.png" -dest_files=["res://.godot/imported/mouth_slanted.png-cb0a217a5bb11b80e53b1a6e3e94f43d.ctex"] +dest_files=["res://.godot/imported/mouth_slanted.png-cb0a217a5bb11b80e53b1a6e3e94f43d.s3tc.ctex", "res://.godot/imported/mouth_slanted.png-cb0a217a5bb11b80e53b1a6e3e94f43d.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_squigle.png.import b/art/exported/characters/faces/mouth/mouth_squigle.png.import index 980021f..22c7de7 100644 --- a/art/exported/characters/faces/mouth/mouth_squigle.png.import +++ b/art/exported/characters/faces/mouth/mouth_squigle.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://calw27urbe3hk" -path="res://.godot/imported/mouth_squigle.png-263a4acb09e9f29aff38899ef1aac53f.ctex" +path.s3tc="res://.godot/imported/mouth_squigle.png-263a4acb09e9f29aff38899ef1aac53f.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_squigle.png-263a4acb09e9f29aff38899ef1aac53f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_squigle.png" -dest_files=["res://.godot/imported/mouth_squigle.png-263a4acb09e9f29aff38899ef1aac53f.ctex"] +dest_files=["res://.godot/imported/mouth_squigle.png-263a4acb09e9f29aff38899ef1aac53f.s3tc.ctex", "res://.godot/imported/mouth_squigle.png-263a4acb09e9f29aff38899ef1aac53f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_vampy.png.import b/art/exported/characters/faces/mouth/mouth_vampy.png.import index d191c95..cd3d5c0 100644 --- a/art/exported/characters/faces/mouth/mouth_vampy.png.import +++ b/art/exported/characters/faces/mouth/mouth_vampy.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bdpe0lrftqjkq" -path="res://.godot/imported/mouth_vampy.png-0f16a1970484a70927f4063fa1bab422.ctex" +path.s3tc="res://.godot/imported/mouth_vampy.png-0f16a1970484a70927f4063fa1bab422.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_vampy.png-0f16a1970484a70927f4063fa1bab422.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_vampy.png" -dest_files=["res://.godot/imported/mouth_vampy.png-0f16a1970484a70927f4063fa1bab422.ctex"] +dest_files=["res://.godot/imported/mouth_vampy.png-0f16a1970484a70927f4063fa1bab422.s3tc.ctex", "res://.godot/imported/mouth_vampy.png-0f16a1970484a70927f4063fa1bab422.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_whiskers.png.import b/art/exported/characters/faces/mouth/mouth_whiskers.png.import index 7fe6438..799b0f1 100644 --- a/art/exported/characters/faces/mouth/mouth_whiskers.png.import +++ b/art/exported/characters/faces/mouth/mouth_whiskers.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cpxwladf5vobh" -path="res://.godot/imported/mouth_whiskers.png-27b3d6495cd4a57de394a2ad8eb67d39.ctex" +path.s3tc="res://.godot/imported/mouth_whiskers.png-27b3d6495cd4a57de394a2ad8eb67d39.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_whiskers.png-27b3d6495cd4a57de394a2ad8eb67d39.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_whiskers.png" -dest_files=["res://.godot/imported/mouth_whiskers.png-27b3d6495cd4a57de394a2ad8eb67d39.ctex"] +dest_files=["res://.godot/imported/mouth_whiskers.png-27b3d6495cd4a57de394a2ad8eb67d39.s3tc.ctex", "res://.godot/imported/mouth_whiskers.png-27b3d6495cd4a57de394a2ad8eb67d39.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_y.png.import b/art/exported/characters/faces/mouth/mouth_y.png.import index 989fa6b..916f91f 100644 --- a/art/exported/characters/faces/mouth/mouth_y.png.import +++ b/art/exported/characters/faces/mouth/mouth_y.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://6w65l4rjbgq" -path="res://.godot/imported/mouth_y.png-08338d9ca7fd2d139dd64add4385096d.ctex" +path.s3tc="res://.godot/imported/mouth_y.png-08338d9ca7fd2d139dd64add4385096d.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_y.png-08338d9ca7fd2d139dd64add4385096d.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_y.png" -dest_files=["res://.godot/imported/mouth_y.png-08338d9ca7fd2d139dd64add4385096d.ctex"] +dest_files=["res://.godot/imported/mouth_y.png-08338d9ca7fd2d139dd64add4385096d.s3tc.ctex", "res://.godot/imported/mouth_y.png-08338d9ca7fd2d139dd64add4385096d.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_y_small.png.import b/art/exported/characters/faces/mouth/mouth_y_small.png.import index 205579e..80dedf9 100644 --- a/art/exported/characters/faces/mouth/mouth_y_small.png.import +++ b/art/exported/characters/faces/mouth/mouth_y_small.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cchv8fvnqbtm2" -path="res://.godot/imported/mouth_y_small.png-493215adfb2e980f01f69152d24a8ef4.ctex" +path.s3tc="res://.godot/imported/mouth_y_small.png-493215adfb2e980f01f69152d24a8ef4.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_y_small.png-493215adfb2e980f01f69152d24a8ef4.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_y_small.png" -dest_files=["res://.godot/imported/mouth_y_small.png-493215adfb2e980f01f69152d24a8ef4.ctex"] +dest_files=["res://.godot/imported/mouth_y_small.png-493215adfb2e980f01f69152d24a8ef4.s3tc.ctex", "res://.godot/imported/mouth_y_small.png-493215adfb2e980f01f69152d24a8ef4.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/mouth/mouth_y_small_pink.png.import b/art/exported/characters/faces/mouth/mouth_y_small_pink.png.import index f8237f1..efe6ac8 100644 --- a/art/exported/characters/faces/mouth/mouth_y_small_pink.png.import +++ b/art/exported/characters/faces/mouth/mouth_y_small_pink.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://dvqdmhhiet5ix" -path="res://.godot/imported/mouth_y_small_pink.png-febc93e05453be68458eff8bab3d21c1.ctex" +path.s3tc="res://.godot/imported/mouth_y_small_pink.png-febc93e05453be68458eff8bab3d21c1.s3tc.ctex" +path.etc2="res://.godot/imported/mouth_y_small_pink.png-febc93e05453be68458eff8bab3d21c1.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/mouth/mouth_y_small_pink.png" -dest_files=["res://.godot/imported/mouth_y_small_pink.png-febc93e05453be68458eff8bab3d21c1.ctex"] +dest_files=["res://.godot/imported/mouth_y_small_pink.png-febc93e05453be68458eff8bab3d21c1.s3tc.ctex", "res://.godot/imported/mouth_y_small_pink.png-febc93e05453be68458eff8bab3d21c1.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_cat_real.png.import b/art/exported/characters/faces/noses/nose_cat_real.png.import index aaedb17..8e1a496 100644 --- a/art/exported/characters/faces/noses/nose_cat_real.png.import +++ b/art/exported/characters/faces/noses/nose_cat_real.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://5n0kihgof38n" -path="res://.godot/imported/nose_cat_real.png-25c7e8464e384043f0969f191e2c2950.ctex" +path.s3tc="res://.godot/imported/nose_cat_real.png-25c7e8464e384043f0969f191e2c2950.s3tc.ctex" +path.etc2="res://.godot/imported/nose_cat_real.png-25c7e8464e384043f0969f191e2c2950.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_cat_real.png" -dest_files=["res://.godot/imported/nose_cat_real.png-25c7e8464e384043f0969f191e2c2950.ctex"] +dest_files=["res://.godot/imported/nose_cat_real.png-25c7e8464e384043f0969f191e2c2950.s3tc.ctex", "res://.godot/imported/nose_cat_real.png-25c7e8464e384043f0969f191e2c2950.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_clown.png.import b/art/exported/characters/faces/noses/nose_clown.png.import index a9afce1..1a642e3 100644 --- a/art/exported/characters/faces/noses/nose_clown.png.import +++ b/art/exported/characters/faces/noses/nose_clown.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cc0nb34t7helb" -path="res://.godot/imported/nose_clown.png-bfa33a86cf06540d45ba440868a39bb3.ctex" +path.s3tc="res://.godot/imported/nose_clown.png-bfa33a86cf06540d45ba440868a39bb3.s3tc.ctex" +path.etc2="res://.godot/imported/nose_clown.png-bfa33a86cf06540d45ba440868a39bb3.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_clown.png" -dest_files=["res://.godot/imported/nose_clown.png-bfa33a86cf06540d45ba440868a39bb3.ctex"] +dest_files=["res://.godot/imported/nose_clown.png-bfa33a86cf06540d45ba440868a39bb3.s3tc.ctex", "res://.godot/imported/nose_clown.png-bfa33a86cf06540d45ba440868a39bb3.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_dog_real.png.import b/art/exported/characters/faces/noses/nose_dog_real.png.import index 9fe82cc..316c80e 100644 --- a/art/exported/characters/faces/noses/nose_dog_real.png.import +++ b/art/exported/characters/faces/noses/nose_dog_real.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b8jwky86fl3ky" -path="res://.godot/imported/nose_dog_real.png-f065da766aead62076c01fa08fbffb2a.ctex" +path.s3tc="res://.godot/imported/nose_dog_real.png-f065da766aead62076c01fa08fbffb2a.s3tc.ctex" +path.etc2="res://.godot/imported/nose_dog_real.png-f065da766aead62076c01fa08fbffb2a.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_dog_real.png" -dest_files=["res://.godot/imported/nose_dog_real.png-f065da766aead62076c01fa08fbffb2a.ctex"] +dest_files=["res://.godot/imported/nose_dog_real.png-f065da766aead62076c01fa08fbffb2a.s3tc.ctex", "res://.godot/imported/nose_dog_real.png-f065da766aead62076c01fa08fbffb2a.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_dog_simple.png.import b/art/exported/characters/faces/noses/nose_dog_simple.png.import index f61b74a..344af2e 100644 --- a/art/exported/characters/faces/noses/nose_dog_simple.png.import +++ b/art/exported/characters/faces/noses/nose_dog_simple.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://b6d4ubqjijjux" -path="res://.godot/imported/nose_dog_simple.png-fdc0a92e3e2c82271db9ea87256058a7.ctex" +path.s3tc="res://.godot/imported/nose_dog_simple.png-fdc0a92e3e2c82271db9ea87256058a7.s3tc.ctex" +path.etc2="res://.godot/imported/nose_dog_simple.png-fdc0a92e3e2c82271db9ea87256058a7.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_dog_simple.png" -dest_files=["res://.godot/imported/nose_dog_simple.png-fdc0a92e3e2c82271db9ea87256058a7.ctex"] +dest_files=["res://.godot/imported/nose_dog_simple.png-fdc0a92e3e2c82271db9ea87256058a7.s3tc.ctex", "res://.godot/imported/nose_dog_simple.png-fdc0a92e3e2c82271db9ea87256058a7.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_dragon.png.import b/art/exported/characters/faces/noses/nose_dragon.png.import index 0ba2695..92d98eb 100644 --- a/art/exported/characters/faces/noses/nose_dragon.png.import +++ b/art/exported/characters/faces/noses/nose_dragon.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://8n1bhbyt5id6" -path="res://.godot/imported/nose_dragon.png-6c98cf6f5692ec43ffe43650115cd010.ctex" +path.s3tc="res://.godot/imported/nose_dragon.png-6c98cf6f5692ec43ffe43650115cd010.s3tc.ctex" +path.etc2="res://.godot/imported/nose_dragon.png-6c98cf6f5692ec43ffe43650115cd010.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_dragon.png" -dest_files=["res://.godot/imported/nose_dragon.png-6c98cf6f5692ec43ffe43650115cd010.ctex"] +dest_files=["res://.godot/imported/nose_dragon.png-6c98cf6f5692ec43ffe43650115cd010.s3tc.ctex", "res://.godot/imported/nose_dragon.png-6c98cf6f5692ec43ffe43650115cd010.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_hippo.png.import b/art/exported/characters/faces/noses/nose_hippo.png.import index 0206809..3e5736f 100644 --- a/art/exported/characters/faces/noses/nose_hippo.png.import +++ b/art/exported/characters/faces/noses/nose_hippo.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bmfa44uf6u4or" -path="res://.godot/imported/nose_hippo.png-059f63ab00597454d369b0d51b5712a6.ctex" +path.s3tc="res://.godot/imported/nose_hippo.png-059f63ab00597454d369b0d51b5712a6.s3tc.ctex" +path.etc2="res://.godot/imported/nose_hippo.png-059f63ab00597454d369b0d51b5712a6.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_hippo.png" -dest_files=["res://.godot/imported/nose_hippo.png-059f63ab00597454d369b0d51b5712a6.ctex"] +dest_files=["res://.godot/imported/nose_hippo.png-059f63ab00597454d369b0d51b5712a6.s3tc.ctex", "res://.godot/imported/nose_hippo.png-059f63ab00597454d369b0d51b5712a6.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_human.png.import b/art/exported/characters/faces/noses/nose_human.png.import index 2381527..486fa00 100644 --- a/art/exported/characters/faces/noses/nose_human.png.import +++ b/art/exported/characters/faces/noses/nose_human.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cuthoacwggro3" -path="res://.godot/imported/nose_human.png-337d9ba4f724d6241a6fa9a307a30008.ctex" +path.s3tc="res://.godot/imported/nose_human.png-337d9ba4f724d6241a6fa9a307a30008.s3tc.ctex" +path.etc2="res://.godot/imported/nose_human.png-337d9ba4f724d6241a6fa9a307a30008.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_human.png" -dest_files=["res://.godot/imported/nose_human.png-337d9ba4f724d6241a6fa9a307a30008.ctex"] +dest_files=["res://.godot/imported/nose_human.png-337d9ba4f724d6241a6fa9a307a30008.s3tc.ctex", "res://.godot/imported/nose_human.png-337d9ba4f724d6241a6fa9a307a30008.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_nostrils.png.import b/art/exported/characters/faces/noses/nose_nostrils.png.import index 8e9c447..68ae74a 100644 --- a/art/exported/characters/faces/noses/nose_nostrils.png.import +++ b/art/exported/characters/faces/noses/nose_nostrils.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bvu2lox5px3ab" -path="res://.godot/imported/nose_nostrils.png-9e1c2b5c8e7adb019d72a39b1e805781.ctex" +path.s3tc="res://.godot/imported/nose_nostrils.png-9e1c2b5c8e7adb019d72a39b1e805781.s3tc.ctex" +path.etc2="res://.godot/imported/nose_nostrils.png-9e1c2b5c8e7adb019d72a39b1e805781.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_nostrils.png" -dest_files=["res://.godot/imported/nose_nostrils.png-9e1c2b5c8e7adb019d72a39b1e805781.ctex"] +dest_files=["res://.godot/imported/nose_nostrils.png-9e1c2b5c8e7adb019d72a39b1e805781.s3tc.ctex", "res://.godot/imported/nose_nostrils.png-9e1c2b5c8e7adb019d72a39b1e805781.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_piercing.png.import b/art/exported/characters/faces/noses/nose_piercing.png.import index 3584e75..d50d3e0 100644 --- a/art/exported/characters/faces/noses/nose_piercing.png.import +++ b/art/exported/characters/faces/noses/nose_piercing.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://3w37sblwbd8b" -path="res://.godot/imported/nose_piercing.png-0c3316905c9f379988cc52353c88569c.ctex" +path.s3tc="res://.godot/imported/nose_piercing.png-0c3316905c9f379988cc52353c88569c.s3tc.ctex" +path.etc2="res://.godot/imported/nose_piercing.png-0c3316905c9f379988cc52353c88569c.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_piercing.png" -dest_files=["res://.godot/imported/nose_piercing.png-0c3316905c9f379988cc52353c88569c.ctex"] +dest_files=["res://.godot/imported/nose_piercing.png-0c3316905c9f379988cc52353c88569c.s3tc.ctex", "res://.godot/imported/nose_piercing.png-0c3316905c9f379988cc52353c88569c.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_pig_snout.png.import b/art/exported/characters/faces/noses/nose_pig_snout.png.import index 5e34829..9ead70a 100644 --- a/art/exported/characters/faces/noses/nose_pig_snout.png.import +++ b/art/exported/characters/faces/noses/nose_pig_snout.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bvran6dr0u22l" -path="res://.godot/imported/nose_pig_snout.png-40e08884db61f222d4371c6c6a798bca.ctex" +path.s3tc="res://.godot/imported/nose_pig_snout.png-40e08884db61f222d4371c6c6a798bca.s3tc.ctex" +path.etc2="res://.godot/imported/nose_pig_snout.png-40e08884db61f222d4371c6c6a798bca.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_pig_snout.png" -dest_files=["res://.godot/imported/nose_pig_snout.png-40e08884db61f222d4371c6c6a798bca.ctex"] +dest_files=["res://.godot/imported/nose_pig_snout.png-40e08884db61f222d4371c6c6a798bca.s3tc.ctex", "res://.godot/imported/nose_pig_snout.png-40e08884db61f222d4371c6c6a798bca.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_pig_snout_pink.png.import b/art/exported/characters/faces/noses/nose_pig_snout_pink.png.import index 52ab860..c66209b 100644 --- a/art/exported/characters/faces/noses/nose_pig_snout_pink.png.import +++ b/art/exported/characters/faces/noses/nose_pig_snout_pink.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cyigqco0dp8ph" -path="res://.godot/imported/nose_pig_snout_pink.png-da6fcfc06a8aa02d6ad664e2ed669558.ctex" +path.s3tc="res://.godot/imported/nose_pig_snout_pink.png-da6fcfc06a8aa02d6ad664e2ed669558.s3tc.ctex" +path.etc2="res://.godot/imported/nose_pig_snout_pink.png-da6fcfc06a8aa02d6ad664e2ed669558.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_pig_snout_pink.png" -dest_files=["res://.godot/imported/nose_pig_snout_pink.png-da6fcfc06a8aa02d6ad664e2ed669558.ctex"] +dest_files=["res://.godot/imported/nose_pig_snout_pink.png-da6fcfc06a8aa02d6ad664e2ed669558.s3tc.ctex", "res://.godot/imported/nose_pig_snout_pink.png-da6fcfc06a8aa02d6ad664e2ed669558.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_squidward.png.import b/art/exported/characters/faces/noses/nose_squidward.png.import index dbba070..ab07b93 100644 --- a/art/exported/characters/faces/noses/nose_squidward.png.import +++ b/art/exported/characters/faces/noses/nose_squidward.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://ilvb5vre4kv7" -path="res://.godot/imported/nose_squidward.png-579e15cf6acfb402abda29a8a555d504.ctex" +path.s3tc="res://.godot/imported/nose_squidward.png-579e15cf6acfb402abda29a8a555d504.s3tc.ctex" +path.etc2="res://.godot/imported/nose_squidward.png-579e15cf6acfb402abda29a8a555d504.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_squidward.png" -dest_files=["res://.godot/imported/nose_squidward.png-579e15cf6acfb402abda29a8a555d504.ctex"] +dest_files=["res://.godot/imported/nose_squidward.png-579e15cf6acfb402abda29a8a555d504.s3tc.ctex", "res://.godot/imported/nose_squidward.png-579e15cf6acfb402abda29a8a555d504.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_squidward_wide.png.import b/art/exported/characters/faces/noses/nose_squidward_wide.png.import index 92d6c8a..cf307ce 100644 --- a/art/exported/characters/faces/noses/nose_squidward_wide.png.import +++ b/art/exported/characters/faces/noses/nose_squidward_wide.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://dtisqywq2rv14" -path="res://.godot/imported/nose_squidward_wide.png-fca231f913f03b97c273c870770f7948.ctex" +path.s3tc="res://.godot/imported/nose_squidward_wide.png-fca231f913f03b97c273c870770f7948.s3tc.ctex" +path.etc2="res://.godot/imported/nose_squidward_wide.png-fca231f913f03b97c273c870770f7948.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_squidward_wide.png" -dest_files=["res://.godot/imported/nose_squidward_wide.png-fca231f913f03b97c273c870770f7948.ctex"] +dest_files=["res://.godot/imported/nose_squidward_wide.png-fca231f913f03b97c273c870770f7948.s3tc.ctex", "res://.godot/imported/nose_squidward_wide.png-fca231f913f03b97c273c870770f7948.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_triangle.png.import b/art/exported/characters/faces/noses/nose_triangle.png.import index bc7aa21..ba494a2 100644 --- a/art/exported/characters/faces/noses/nose_triangle.png.import +++ b/art/exported/characters/faces/noses/nose_triangle.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://bitins3gtewe" -path="res://.godot/imported/nose_triangle.png-018974a6bbf68652b8c5533c2675cc2f.ctex" +path.s3tc="res://.godot/imported/nose_triangle.png-018974a6bbf68652b8c5533c2675cc2f.s3tc.ctex" +path.etc2="res://.godot/imported/nose_triangle.png-018974a6bbf68652b8c5533c2675cc2f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_triangle.png" -dest_files=["res://.godot/imported/nose_triangle.png-018974a6bbf68652b8c5533c2675cc2f.ctex"] +dest_files=["res://.godot/imported/nose_triangle.png-018974a6bbf68652b8c5533c2675cc2f.s3tc.ctex", "res://.godot/imported/nose_triangle.png-018974a6bbf68652b8c5533c2675cc2f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_triangle_pink.png.import b/art/exported/characters/faces/noses/nose_triangle_pink.png.import index 56712ab..eff0bb1 100644 --- a/art/exported/characters/faces/noses/nose_triangle_pink.png.import +++ b/art/exported/characters/faces/noses/nose_triangle_pink.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://oi8qhxbtijmk" -path="res://.godot/imported/nose_triangle_pink.png-051ce6df5e7fd5932f19fd353123d7d1.ctex" +path.s3tc="res://.godot/imported/nose_triangle_pink.png-051ce6df5e7fd5932f19fd353123d7d1.s3tc.ctex" +path.etc2="res://.godot/imported/nose_triangle_pink.png-051ce6df5e7fd5932f19fd353123d7d1.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_triangle_pink.png" -dest_files=["res://.godot/imported/nose_triangle_pink.png-051ce6df5e7fd5932f19fd353123d7d1.ctex"] +dest_files=["res://.godot/imported/nose_triangle_pink.png-051ce6df5e7fd5932f19fd353123d7d1.s3tc.ctex", "res://.godot/imported/nose_triangle_pink.png-051ce6df5e7fd5932f19fd353123d7d1.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_triangle_small.png.import b/art/exported/characters/faces/noses/nose_triangle_small.png.import index a659077..e704938 100644 --- a/art/exported/characters/faces/noses/nose_triangle_small.png.import +++ b/art/exported/characters/faces/noses/nose_triangle_small.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://cedgrca26ponk" -path="res://.godot/imported/nose_triangle_small.png-64129c5fc69bf7095f684c2b7de2855b.ctex" +path.s3tc="res://.godot/imported/nose_triangle_small.png-64129c5fc69bf7095f684c2b7de2855b.s3tc.ctex" +path.etc2="res://.godot/imported/nose_triangle_small.png-64129c5fc69bf7095f684c2b7de2855b.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_triangle_small.png" -dest_files=["res://.godot/imported/nose_triangle_small.png-64129c5fc69bf7095f684c2b7de2855b.ctex"] +dest_files=["res://.godot/imported/nose_triangle_small.png-64129c5fc69bf7095f684c2b7de2855b.s3tc.ctex", "res://.godot/imported/nose_triangle_small.png-64129c5fc69bf7095f684c2b7de2855b.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_triangle_small_pink.png.import b/art/exported/characters/faces/noses/nose_triangle_small_pink.png.import index c875ba4..b3060e6 100644 --- a/art/exported/characters/faces/noses/nose_triangle_small_pink.png.import +++ b/art/exported/characters/faces/noses/nose_triangle_small_pink.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://0kird82ka1ug" -path="res://.godot/imported/nose_triangle_small_pink.png-fba736a5f1806c1286f1d3040592933b.ctex" +path.s3tc="res://.godot/imported/nose_triangle_small_pink.png-fba736a5f1806c1286f1d3040592933b.s3tc.ctex" +path.etc2="res://.godot/imported/nose_triangle_small_pink.png-fba736a5f1806c1286f1d3040592933b.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_triangle_small_pink.png" -dest_files=["res://.godot/imported/nose_triangle_small_pink.png-fba736a5f1806c1286f1d3040592933b.ctex"] +dest_files=["res://.godot/imported/nose_triangle_small_pink.png-fba736a5f1806c1286f1d3040592933b.s3tc.ctex", "res://.godot/imported/nose_triangle_small_pink.png-fba736a5f1806c1286f1d3040592933b.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/art/exported/characters/faces/noses/nose_under.png.import b/art/exported/characters/faces/noses/nose_under.png.import index 5bf860f..d0c87ea 100644 --- a/art/exported/characters/faces/noses/nose_under.png.import +++ b/art/exported/characters/faces/noses/nose_under.png.import @@ -3,19 +3,21 @@ importer="texture" type="CompressedTexture2D" uid="uid://u0ih35v73j5h" -path="res://.godot/imported/nose_under.png-269bae96966b3c6367d43ac9bd5b2a3f.ctex" +path.s3tc="res://.godot/imported/nose_under.png-269bae96966b3c6367d43ac9bd5b2a3f.s3tc.ctex" +path.etc2="res://.godot/imported/nose_under.png-269bae96966b3c6367d43ac9bd5b2a3f.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true } [deps] source_file="res://art/exported/characters/faces/noses/nose_under.png" -dest_files=["res://.godot/imported/nose_under.png-269bae96966b3c6367d43ac9bd5b2a3f.ctex"] +dest_files=["res://.godot/imported/nose_under.png-269bae96966b3c6367d43ac9bd5b2a3f.s3tc.ctex", "res://.godot/imported/nose_under.png-269bae96966b3c6367d43ac9bd5b2a3f.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -36,5 +38,5 @@ 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 +process/size_limit=512 +detect_3d/compress_to=0 diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 63d3b08..a3853b4 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -265,6 +265,12 @@ snapshots, so do not casually rename them. Preserve the established RGBA transparent canvas. Restart a development build after adding an image; rebuild exports to package new `res://` files. +The tracked import policy keeps these facial-feature textures at a maximum +runtime size of 512×512, uses VRAM compression, and does not generate mipmaps. +The source PNGs remain unchanged. Run the texture import normalizer shown below +after adding facial artwork so low-memory builds do not retain full-resolution +copies of the entire customization catalog. + ### Texture sampling NETfishing artwork always uses nearest-neighbor sampling. Do not enable linear, diff --git a/export_presets.cfg b/export_presets.cfg index 8f15233..a774f82 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -78,8 +78,8 @@ custom_template/release="" debug/export_console_wrapper=0 binary_format/embed_pck=false binary_format/architecture="arm64" -texture_format/s3tc_bptc=true -texture_format/etc2_astc=false +texture_format/s3tc_bptc=false +texture_format/etc2_astc=true [preset.4] diff --git a/progression/character_customization_catalog.gd b/progression/character_customization_catalog.gd index 609f593..d18fc7f 100644 --- a/progression/character_customization_catalog.gd +++ b/progression/character_customization_catalog.gd @@ -60,6 +60,7 @@ const FUR_COLOR_LABELS: Dictionary = { "fur_color_4": "detail", } const DEFAULT_FUR_STYLE: String = "solid" +const FEATURE_TEXTURE_CACHE_LIMIT: int = 24 const FEATURE_CATEGORIES: PackedStringArray = ["eyes", "nose", "mouth"] const FEATURE_ASSET_ROOTS: Dictionary = { @@ -205,7 +206,9 @@ const LEGACY_OPTION_ALIASES: Dictionary = { static var _feature_assets_ready: bool = false static var _feature_options: Dictionary = {} +static var _feature_resource_paths: Dictionary = {} static var _feature_textures: Dictionary = {} +static var _feature_texture_cache_order: Array[String] = [] static var _fur_pattern_textures: Dictionary = {} @@ -330,14 +333,56 @@ static func texture_for(category_id: String, option_id: String) -> Texture2D: return null _ensure_feature_assets() var canonical_id := canonical_option_id(category_id, option_id) - var textures: Dictionary = _feature_textures.get(category_id, {}) as Dictionary - return textures.get(canonical_id) as Texture2D + var cache_id := "%s:%s" % [category_id, canonical_id] + if _feature_textures.has(cache_id): + _touch_feature_texture(cache_id) + return _feature_textures[cache_id] as Texture2D + var resource_path := feature_texture_path(category_id, canonical_id) + if resource_path.is_empty(): + return null + var texture := ResourceLoader.load( + resource_path, + "Texture2D", + ResourceLoader.CACHE_MODE_IGNORE, + ) as Texture2D + if texture == null: + return null + _feature_textures[cache_id] = texture + _touch_feature_texture(cache_id) + _trim_feature_texture_cache() + return texture + + +static func feature_texture_path(category_id: String, option_id: String) -> String: + if category_id not in FEATURE_CATEGORIES: + return "" + _ensure_feature_assets() + var canonical_id := canonical_option_id(category_id, option_id) + var paths: Dictionary = ( + _feature_resource_paths.get(category_id, {}) as Dictionary + ) + return str(paths.get(canonical_id, "")) + + +static func _touch_feature_texture(cache_id: String) -> void: + var existing_index := _feature_texture_cache_order.find(cache_id) + if existing_index >= 0: + _feature_texture_cache_order.remove_at(existing_index) + _feature_texture_cache_order.append(cache_id) + + +static func _trim_feature_texture_cache() -> void: + while _feature_texture_cache_order.size() > FEATURE_TEXTURE_CACHE_LIMIT: + var oldest_id: String = str(_feature_texture_cache_order.pop_front()) + _feature_textures.erase(oldest_id) static func refresh_feature_assets() -> void: _feature_assets_ready = false _feature_options.clear() + _feature_resource_paths.clear() _feature_textures.clear() + _feature_texture_cache_order.clear() _ensure_feature_assets() @@ -347,7 +392,7 @@ static func _ensure_feature_assets() -> void: _feature_assets_ready = true for category_id: String in FEATURE_CATEGORIES: var options: Array = [{"id": "none", "label": "none"}] - var textures: Dictionary = {} + var resource_paths: Dictionary = {} var root_path := str(FEATURE_ASSET_ROOTS[category_id]) var directory := DirAccess.open(root_path) if directory != null: @@ -365,24 +410,23 @@ static func _ensure_feature_assets() -> void: var option_id := _feature_id_from_filename( category_id, normalized_file_name ) - if option_id.is_empty() or textures.has(option_id): + if option_id.is_empty() or resource_paths.has(option_id): continue var resource_path := root_path.path_join(normalized_file_name) - var texture := ResourceLoader.load(resource_path) as Texture2D - if texture == null: + if not ResourceLoader.exists(resource_path, "Texture2D"): push_warning( "Ignoring facial feature without a loadable texture: " + resource_path ) continue - textures[option_id] = texture + resource_paths[option_id] = resource_path options.append({ "id": option_id, "label": _feature_label(option_id), }) _feature_options[category_id] = options - _feature_textures[category_id] = textures + _feature_resource_paths[category_id] = resource_paths static func _canonical_feature_filename(file_name: String) -> String: diff --git a/scripts/normalize_texture_imports.gd b/scripts/normalize_texture_imports.gd index ae36fa0..5b78ec1 100644 --- a/scripts/normalize_texture_imports.gd +++ b/scripts/normalize_texture_imports.gd @@ -27,6 +27,10 @@ const DEFAULT_PROFILE: Dictionary = { "detect_3d/compress_to": 0, }, } +const FACIAL_FEATURE_IMPORT_PATH: String = ( + "art/exported/characters/faces/" +) +const FACIAL_FEATURE_SIZE_LIMIT: int = 512 var apply_changes: bool = false var verbose: bool = false @@ -86,11 +90,11 @@ func _parse_args() -> void: quit(1) return i += 1 - roots.append(args[i]) - i += 1 - elif arg.begins_with("--root="): - roots.append(arg.trim_prefix("--root=")) - i += 1 + roots.append(args[i]) + i += 1 + elif arg.begins_with("--root="): + roots.append(arg.trim_prefix("--root=")) + i += 1 else: printerr("Unknown argument: ", arg) should_exit = true @@ -147,6 +151,8 @@ func _handle_import_file(import_path: String) -> void: var section_data: Dictionary = DEFAULT_PROFILE[section_name] for section_key: String in section_data.keys(): var desired: Variant = section_data[section_key] + if section_key == "process/size_limit": + desired = _size_limit_for(import_path) var existing: Variant = null if cfg.has_section(section_name) and cfg.has_section_key(section_name, section_key): existing = cfg.get_value(section_name, section_key) @@ -174,6 +180,13 @@ func _handle_import_file(import_path: String) -> void: updated += 1 +func _size_limit_for(import_path: String) -> int: + var normalized_path := import_path.replace("\\", "/") + if FACIAL_FEATURE_IMPORT_PATH in normalized_path: + return FACIAL_FEATURE_SIZE_LIMIT + return int(DEFAULT_PROFILE["params"]["process/size_limit"]) + + func print_summary() -> void: if apply_changes: _print( diff --git a/scripts/run_validations.sh b/scripts/run_validations.sh index 20712bf..5992197 100755 --- a/scripts/run_validations.sh +++ b/scripts/run_validations.sh @@ -11,6 +11,7 @@ readonly RUN_ROOT="$(mktemp -d -t netfishing-validations.XXXXXX)" readonly -a QUICK_TESTS=( "tests/android_readiness_validation.gd" "tests/dedicated_server_config_validation.gd" + "tests/exported_decal_hotfix_validation.gd" "tests/fish_catalog_content_validation.gd" "tests/fish_quality_validation.gd" "tests/fishing_audio_validation.gd" diff --git a/tests/exported_decal_hotfix_validation.gd b/tests/exported_decal_hotfix_validation.gd index fe279b0..6560dd6 100644 --- a/tests/exported_decal_hotfix_validation.gd +++ b/tests/exported_decal_hotfix_validation.gd @@ -5,6 +5,7 @@ const FEATURE_ASSET_ROOTS: Dictionary = { "mouth": "res://art/exported/characters/faces/mouth", "nose": "res://art/exported/characters/faces/noses", } +const FACIAL_FEATURE_SIZE_LIMIT: int = 512 func _initialize() -> void: @@ -12,6 +13,8 @@ func _initialize() -> void: func _run() -> void: + CharacterCustomizationCatalog.refresh_feature_assets() + assert(CharacterCustomizationCatalog._feature_textures.is_empty()) assert( CharacterCustomizationCatalog._canonical_feature_filename( "eyes_alligator_eyes.png" @@ -33,6 +36,7 @@ func _run() -> void: ).is_empty() ) + var load_candidates: Array[Dictionary] = [] for category_id: String in FEATURE_ASSET_ROOTS: var options := CharacterCustomizationCatalog.options_for(category_id) var expected_ids: Dictionary = _feature_ids_on_disk(category_id) @@ -43,22 +47,104 @@ func _run() -> void: assert(not seen_ids.has(option_id)) seen_ids[option_id] = true if option_id != "none": - assert( - CharacterCustomizationCatalog.texture_for( + var texture_path := ( + CharacterCustomizationCatalog.feature_texture_path( category_id, option_id - ) != null + ) ) + assert(not texture_path.is_empty()) + assert(ResourceLoader.exists(texture_path, "Texture2D")) + _validate_feature_import(texture_path) + load_candidates.append({ + "category_id": category_id, + "option_id": option_id, + }) for expected_id: String in expected_ids: assert(seen_ids.has(expected_id)) + assert(CharacterCustomizationCatalog._feature_textures.is_empty()) + assert( + load_candidates.size() + > CharacterCustomizationCatalog.FEATURE_TEXTURE_CACHE_LIMIT + ) + for candidate_index: int in range( + CharacterCustomizationCatalog.FEATURE_TEXTURE_CACHE_LIMIT + 1 + ): + var candidate: Dictionary = load_candidates[candidate_index] + assert(CharacterCustomizationCatalog.texture_for( + str(candidate["category_id"]), + str(candidate["option_id"]), + ) != null) + assert( + CharacterCustomizationCatalog._feature_textures.size() + == CharacterCustomizationCatalog.FEATURE_TEXTURE_CACHE_LIMIT + ) for mouth_id: String in ["open_ah", "open_oh", "open_smile"]: assert(CharacterCustomizationCatalog.texture_for( "mouth", mouth_id ) != null) + assert( + CharacterCustomizationCatalog._feature_textures.size() + <= CharacterCustomizationCatalog.FEATURE_TEXTURE_CACHE_LIMIT + ) + + _validate_linux_arm64_texture_format() + await _validate_incremental_profile_previews() print("Exported decal hotfix validation: PASS") quit() +func _validate_feature_import(texture_path: String) -> void: + var import_config := ConfigFile.new() + assert(import_config.load(texture_path + ".import") == OK) + assert(int(import_config.get_value("params", "compress/mode", -1)) == 2) + assert(not bool(import_config.get_value( + "params", "mipmaps/generate", true + ))) + assert(int(import_config.get_value( + "params", "process/size_limit", 0 + )) == FACIAL_FEATURE_SIZE_LIMIT) + assert(int(import_config.get_value( + "params", "detect_3d/compress_to", -1 + )) == 0) + + +func _validate_linux_arm64_texture_format() -> void: + var export_config := ConfigFile.new() + assert(export_config.load("res://export_presets.cfg") == OK) + assert(not bool(export_config.get_value( + "preset.3.options", "texture_format/s3tc_bptc", true + ))) + assert(bool(export_config.get_value( + "preset.3.options", "texture_format/etc2_astc", false + ))) + + +func _validate_incremental_profile_previews() -> void: + var profile_page := ProfilePage.new() + root.add_child(profile_page) + await process_frame + for category_id: String in CharacterCustomizationCatalog.FEATURE_CATEGORIES: + var cached_before: int = ( + (profile_page.get("_feature_preview_cache") as Dictionary).size() + ) + profile_page.call("_select_category", category_id) + var initial_requests: int = ( + (profile_page.get("_feature_preview_requests") as Array).size() + ) + assert(initial_requests > 3) + for _frame: int in 4: + await process_frame + var cached_after: int = ( + (profile_page.get("_feature_preview_cache") as Dictionary).size() + ) + assert(cached_after > cached_before) + assert(cached_after - cached_before < initial_requests) + profile_page.queue_free() + for _frame: int in 8: + await process_frame + + func _feature_ids_on_disk(category_id: String) -> Dictionary: var result: Dictionary = {} var root_path: String = str(FEATURE_ASSET_ROOTS[category_id]) diff --git a/ui/profile_page.gd b/ui/profile_page.gd index 3fc9fb4..57a30cf 100644 --- a/ui/profile_page.gd +++ b/ui/profile_page.gd @@ -6,6 +6,9 @@ const OPTION_GRID_COLUMNS: int = 6 const FUR_PALETTE_GRID_COLUMNS: int = 10 const FUR_CHANNEL_ICON_SIZE: int = 20 const FEATURE_DRAWER_ANIMATION_SECONDS: float = 0.16 +const FEATURE_PREVIEW_SCAN_MAX_SIZE: int = 256 +const FEATURE_PREVIEW_TEXTURE_MAX_SIZE: int = 128 +const FEATURE_PREVIEW_PADDING: int = 3 const ControllerMappingManagerType = preload( "res://settings/controller_mapping_manager.gd" ) @@ -50,6 +53,9 @@ var _experience_level: Label var _experience_progress: ProgressBar var _experience_value: Label var _feature_preview_cache: Dictionary = {} +var _feature_preview_requests: Array[Dictionary] = [] +var _feature_preview_generation: int = 0 +var _feature_preview_worker_active: bool = false var _fur_swatch_icon_cache: Dictionary = {} var _expanded_feature_drawers: Dictionary = {} var _feature_drawer_animation_key: String = "" @@ -69,6 +75,10 @@ func _ready() -> void: add_child(_debounce) +func _exit_tree() -> void: + _cancel_feature_preview_requests() + + func setup( service: NetworkProfileService, experience: PlayerExperience, @@ -125,6 +135,7 @@ func activate() -> void: func deactivate() -> void: visible = false _debounce.stop() + _cancel_feature_preview_requests() if _voice_preview_tween != null and _voice_preview_tween.is_valid(): _voice_preview_tween.kill() _preview.reset_view() @@ -428,6 +439,7 @@ func _select_category(category_id: String) -> void: func _refresh_options() -> void: + _cancel_feature_preview_requests() for child: Node in _option_list.get_children(): child.queue_free() var title := Label.new() @@ -801,7 +813,6 @@ func _build_feature_option_button( button.add_theme_font_size_override("font_size", 28) else: var preview := TextureRect.new() - preview.texture = _feature_preview_texture(_category_id, option_id) preview.expand_mode = TextureRect.EXPAND_IGNORE_SIZE preview.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED preview.mouse_filter = Control.MOUSE_FILTER_IGNORE @@ -815,6 +826,13 @@ func _build_feature_option_button( preview.size = Vector2(preview_width, preview_height) preview.position = Vector2((84.0 - preview_width) * 0.5, 7.0) button.add_child(preview) + var cached_preview := _cached_feature_preview_texture( + _category_id, option_id + ) + if cached_preview != null: + preview.texture = cached_preview + else: + _queue_feature_preview(preview, _category_id, option_id) if is_representative and has_variants: var indicator := Label.new() indicator.text = "<" if is_expanded else ">" @@ -858,33 +876,114 @@ func _animate_feature_drawer_button(button: Button) -> void: ).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) -func _feature_preview_texture( +func _cached_feature_preview_texture( category_id: String, option_id: String, ) -> Texture2D: var cache_key := "%s:%s" % [category_id, option_id] - if _feature_preview_cache.has(cache_key): - return _feature_preview_cache[cache_key] as Texture2D - var source := CharacterCustomizationCatalog.texture_for( + return _feature_preview_cache.get(cache_key) as Texture2D + + +func _queue_feature_preview( + target: TextureRect, + category_id: String, + option_id: String, +) -> void: + _feature_preview_requests.append({ + "generation": _feature_preview_generation, + "target": weakref(target), + "category_id": category_id, + "option_id": option_id, + }) + if _feature_preview_worker_active: + return + _feature_preview_worker_active = true + _process_feature_preview_requests.call_deferred() + + +func _cancel_feature_preview_requests() -> void: + _feature_preview_generation += 1 + _feature_preview_requests.clear() + + +func _process_feature_preview_requests() -> void: + while not _feature_preview_requests.is_empty(): + var request: Dictionary = _feature_preview_requests.pop_front() + await get_tree().process_frame + if int(request.get("generation", -1)) != _feature_preview_generation: + continue + var target_reference := request.get("target") as WeakRef + if target_reference == null: + continue + var target := target_reference.get_ref() as TextureRect + if target == null or not is_instance_valid(target): + continue + var category_id := str(request.get("category_id", "")) + var option_id := str(request.get("option_id", "")) + var preview := _cached_feature_preview_texture(category_id, option_id) + if preview == null: + preview = _create_feature_preview_texture(category_id, option_id) + if ( + preview != null + and int(request.get("generation", -1)) == _feature_preview_generation + and is_instance_valid(target) + ): + target.texture = preview + _feature_preview_worker_active = false + + +func _create_feature_preview_texture( + category_id: String, + option_id: String, +) -> Texture2D: + var cache_key := "%s:%s" % [category_id, option_id] + var resource_path := CharacterCustomizationCatalog.feature_texture_path( category_id, option_id ) + if resource_path.is_empty(): + return null + var source := ResourceLoader.load( + resource_path, + "Texture2D", + ResourceLoader.CACHE_MODE_IGNORE, + ) as Texture2D if source == null: return null var image := source.get_image() + if image == null or image.is_empty(): + return null + if image.is_compressed() and image.decompress() != OK: + return null + _resize_feature_preview_image(image, FEATURE_PREVIEW_SCAN_MAX_SIZE) var used := image.get_used_rect() if used.size.x <= 0 or used.size.y <= 0: - _feature_preview_cache[cache_key] = source - return source - var padding := 12 - used.position -= Vector2i(padding, padding) - used.size += Vector2i(padding * 2, padding * 2) + return null + used.position -= Vector2i(FEATURE_PREVIEW_PADDING, FEATURE_PREVIEW_PADDING) + used.size += Vector2i( + FEATURE_PREVIEW_PADDING * 2, + FEATURE_PREVIEW_PADDING * 2, + ) used = used.intersection(Rect2i(Vector2i.ZERO, image.get_size())) var cropped := image.get_region(used) + _resize_feature_preview_image(cropped, FEATURE_PREVIEW_TEXTURE_MAX_SIZE) var preview := ImageTexture.create_from_image(cropped) _feature_preview_cache[cache_key] = preview return preview +func _resize_feature_preview_image(image: Image, max_dimension: int) -> void: + var source_size := image.get_size() + var largest_dimension := maxi(source_size.x, source_size.y) + if largest_dimension <= max_dimension: + return + var scale := float(max_dimension) / float(largest_dimension) + image.resize( + maxi(roundi(float(source_size.x) * scale), 1), + maxi(roundi(float(source_size.y) * scale), 1), + Image.INTERPOLATE_NEAREST, + ) + + func _build_fur_color_options(options: Array) -> void: var pattern_label := Label.new() pattern_label.text = "pattern"