commit 1fe2a72ef12d76566ccd090d07741545b1a79aa0 Author: sindoring Date: Mon Apr 20 20:25:10 2026 +0400 first commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f8223c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# Godot 4+ specific ignores +.godot/ +/android/ + +# WoW client (большой, не коммитим) +/sources/ + +# Распакованные MPQ-файлы +/extracted/ + +# Offline-baked terrain cache +/cache/baked_terrain*/ + +# Offline M2 model cache +/cache/m2_glb/ + +# Скомпилированные GDExtension библиотеки +/addons/mpq_extractor/bin/*.dll +/addons/mpq_extractor/bin/*.so +/addons/mpq_extractor/bin/*.dylib + +# CMake build директория +/gdextension/build/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c3ce8e2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,7 @@ +[submodule "thirdparty/StormLib"] + path = thirdparty/StormLib + url = https://github.com/ladislav-zezula/StormLib +[submodule "thirdparty/godot-cpp"] + path = thirdparty/godot-cpp + url = https://github.com/godotengine/godot-cpp + branch = 4.5 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..39f0d5a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "cmake.sourceDirectory": "C:/Users/sindo/open-wc/gdextension", + "godotTools.editorPath.godot4": "c:\\Godot 4.6\\Godot_v4.6.1-stable_win64.exe" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..820258b --- /dev/null +++ b/README.md @@ -0,0 +1,373 @@ +# OpenWC + +Портирование клиента **World of Warcraft 3.3.5a (12340)** на **Godot 4.6**. + +Текущий фокус проекта: загрузка данных из клиента, разбор форматов WoW и отображение мира в Godot так, чтобы его можно было смотреть и дальше редактировать уже средствами движка. + +Сейчас проект уже умеет: + +- открывать MPQ-архивы клиента через editor plugin; +- извлекать файлы из MPQ в `res://extracted`; +- читать `BLP2` текстуры; +- читать `ADT`-тайлы terrain; +- рендерить terrain из `ADT` с текстурными слоями `MCLY/MCAL`; +- учитывать `holes` в `MCNK`; +- читать и рендерить воду из `MH2O`; +- стримить мир чанками с LOD в runtime; +- стримить мир в **editor preview** по мере движения камеры в 3D viewport; +- читать `WMO` в отдельный `Dictionary` и собирать его в `Node3D` вручную. + +Что пока не доведено до полноценного world renderer: + +- автоматическая подстановка `WMO` и `M2` в мир из `ADT/WDT`; +- вода без простого базового материала: нет нормального water shader, depth fade, shoreline blending, анимации; +- world-level `WDT` loader; +- импорт обратно в форматы WoW; +- полноценные инструменты редактирования мира в editor. + +## Текущее состояние + +### Реализовано + +- `MPQManager` + - открытие клиентских архивов; + - список архивов по приоритету; + - listing/extract по фильтру. +- `BLPLoader` + - чтение `BLP2` из файла или из байтов; + - поддержка основных сжатых форматов, достаточная для terrain textures. +- `ADTLoader` + - `MTEX`, `MMDX/MMID`, `MWMO/MWID`; + - `MDDF`, `MODF`; + - `MCVT`, `MCNR`, `MCLY`, `MCAL`; + - `holes`; + - `MH2O`. +- `ADTBuilder` + - сборка terrain в `Node3D`; + - terrain material с 4 слоями; + - legacy/big/compressed alpha; + - chunk-level LOD; + - первый проход рендера воды. +- `StreamingWorld` + - runtime streaming тайлов и чанков; + - editor streaming вокруг камеры viewport; + - отдельные `ADT`-узлы под `Terrain` в дереве сцены. + +### Частично реализовано + +- `WMOLoader` + - root/group parsing есть; + - `WMOBuilder` собирает mesh по группам; + - в общий world streaming пока не интегрировано. + +### Не реализовано + +- `M2` renderer; +- `WDT` streaming metadata; +- сохранение terrain/liquid/object placement обратно в WoW-форматы; +- редакторские инструменты изменения ADT/WMO данных. + +## Структура проекта + +- `sources/` + - исходный клиент WoW 3.3.5a, без модификаций. +- `extracted/` + - извлечённые из MPQ файлы, с которыми работает Godot. +- `addons/mpq_extractor/` + - editor plugin и GDScript-сборщики сцен. +- `gdextension/` + - C++ GDExtension: MPQ, BLP, ADT, WMO. +- `maps/` + - готовые сцены для просмотра мира. +- `scenes/` + - скрипты streaming/preview/camera. +- `thirdparty/` + - `godot-cpp`, `StormLib` и другие зависимости. + +## Требования + +- Windows +- Godot `4.6` +- Visual Studio 2022 с C++ workload +- CMake +- клиент **WoW 3.3.5a (12340)** + +## Сборка + +Собрать GDExtension: + +```bat +cd gdextension +build.bat Release +``` + +После успешной сборки DLL появится в: + +```text +addons/mpq_extractor/bin/ +``` + +## Подготовка данных + +По умолчанию plugin смотрит на клиент в: + +```text +res://sources +``` + +И извлекает файлы в: + +```text +res://extracted +``` + +### Через editor plugin + +1. Открой проект в Godot. +2. Убедись, что plugin `MPQ Extractor` включён. +3. Внизу editor открой панель `MPQ Extractor`. +4. Укажи путь к клиенту WoW 3.3.5a. +5. Выбери locale. +6. Нажми `Open Client Archives`. +7. Для полной распаковки используй фильтр `*` и `Extract`. + +Для terrain/world обычно нужны как минимум: + +- `World/Maps/...` +- `Textures/...` +- `World/wmo/...` +- `DBFilesClient/...` если позже понадобится работа с DBC + +## Основные классы GDExtension + +### `MPQManager` + +Доступен из GDScript. Основные методы: + +- `open_client(base_path, locale)` +- `list_files(filter="*")` +- `extract_files(filter, output_dir)` +- `read_file(internal_path)` + +### `BLPLoader` + +Читает WoW `BLP2` и возвращает `Image`. + +Основные методы: + +- `load_image(path)` +- `load_image_from_bytes(bytes)` + +### `ADTLoader` + +Читает `ADT` и возвращает `Dictionary` с terrain, texture layers, placements и liquid. + +Основные поля результата: + +- `textures` +- `m2_names` +- `wmo_names` +- `m2_placements` +- `wmo_placements` +- `chunks` + +Каждый chunk содержит: + +- `index_x`, `index_y` +- `origin` +- `heights` +- `normals` +- `holes` +- `layers` +- `alpha_maps` +- `liquids` + +### `WMOLoader` + +Читает root/group файлы `WMO` и возвращает `Dictionary` с `materials` и `groups`. + +Это уже можно использовать вручную, но в world streaming оно пока не подключено. + +## GDScript-сборщики + +### `ADTBuilder` + +Файл: `addons/mpq_extractor/loaders/adt_builder.gd` + +Умеет: + +- собрать весь `ADT` в `Node3D`; +- собрать отдельный chunk с нужным LOD; +- собрать water root для тайла; +- создать layered terrain material; +- загрузить BLP-текстуры через `BLPLoader`. + +### `WMOBuilder` + +Файл: `addons/mpq_extractor/loaders/wmo_builder.gd` + +Умеет: + +- собрать `Node3D` из данных `WMOLoader`; +- создать по одному `MeshInstance3D` на группу; +- назначить базовые материалы. + +## Сцены просмотра + +### `maps/test.tscn` + +Файл: `maps/test.tscn` + +Тестовая сцена, которая грузит квадрат тайлов вокруг центра карты. + +Скрипт: `scenes/test_world_loader.gd` + +Подходит для: + +- быстрой проверки terrain; +- отладки парсинга `ADT`; +- проверки AABB и координат. + +### `maps/adt_tile_preview.tscn` + +Файл: `maps/adt_tile_preview.tscn` + +Preview одного `ADT` прямо в editor. + +Скрипт: `scenes/adt_tile_preview.gd` + +Полезно для: + +- проверки одного конкретного тайла; +- отладки terrain layers; +- проверки воды и дыр по отдельному `ADT`. + +Основные export-поля: + +- `map_name` +- `tile_x` +- `tile_y` +- `reload_now` + +### `maps/eastern_kingdoms_streaming.tscn` + +Файл: `maps/eastern_kingdoms_streaming.tscn` + +Главная сцена для стриминга мира. + +Скрипт: `scenes/streaming_world_loader.gd` + +Умеет: + +- находить все доступные `ADT` тайлы в `World/Maps/Azeroth`; +- загружать/выгружать тайлы по мере перемещения; +- строить chunk mesh по LOD; +- отдельно добавлять воду на тайл; +- работать и в runtime, и в editor. + +## Editor streaming + +`StreamingWorld` теперь умеет подгружать мир прямо в editor по мере движения камеры viewport. + +Ключевые export-поля: + +- `editor_preview_enabled` +- `editor_follow_view_camera` +- `editor_preview_center_x` +- `editor_preview_center_y` +- `editor_preview_tile_radius` +- `editor_reload_now` + +Логика такая: + +- `editor_preview_center_x/y` задают anchor, который сдвигается к `origin`, чтобы мир было удобно смотреть в Godot; +- при `editor_follow_view_camera = true` стриминг идёт вокруг положения editor camera в 3D viewport; +- тайлы и их children появляются под `Terrain` в Scene Tree. + +Это нужно, чтобы визуально проверить, что мир действительно собирается по мере перемещения по карте, а не только как статичный превью-блок. + +## Runtime streaming и LOD + +В runtime `StreamingWorld`: + +- подгружает `ADT` тайлы по расстоянию; +- для terrain использует chunk-level LOD; +- хранит дальний мир на грубом chunk LOD; +- отдельно создаёт воду на тайл. + +Основные параметры: + +- `tiles_per_tick` +- `chunk_ops_per_tick` +- `lod0_radius_chunks` +- `lod1_radius_chunks` +- `lod2_radius_chunks` +- `lod2_tile_radius` + +## Управление камерой + +Файл: `scenes/fly_camera.gd` + +Управление: + +- `RMB` удерживать для обзора; +- `WASD` движение; +- `Q/E` вниз/вверх; +- `Shift` ускорение. + +## Что именно уже исправлено в terrain pipeline + +По сравнению с самым ранним состоянием проекта уже поправлены: + +- layout `MCNKHeader`; +- offsets внутри `MCNK`; +- чтение `MCVT`; +- чтение `MCNR`; +- legacy `MCAL`; +- big alpha / compressed alpha; +- корректные local coordinates внутри `ADT`-узла; +- holes; +- chunk winding/culling; +- editor preview одного тайла; +- streaming всего `Azeroth`; +- первый проход `MH2O`. + +## Ограничения текущей версии + +- terrain текстурирование уже рабочее, но ещё не 1:1 как в клиенте/Noggit во всех edge cases; +- water renderer сейчас базовый, без настоящих WoW water materials; +- `WMO` читается отдельно, но world placement пока не подключён; +- `M2` placements из `ADT` парсятся, но renderer нет; +- `WDT` ещё не управляет составом мира; +- проект сейчас ориентирован на просмотр и исследование данных, а не на полный round-trip import/export. + +## Ближайшие логичные шаги + +1. Подключить `WDT`, чтобы мир собирался не по сканированию папки, а по данным карты. +2. Интегрировать `WMO` placement в `StreamingWorld`. +3. Добавить `M2` loader/renderer. +4. Довести water shader. +5. Начать editor-side инструменты для редактирования terrain/liquid/object placement. +6. Подготовить формат сохранения обратно в WoW-совместимые структуры. + +## Быстрый старт + +1. Положить клиент WoW 3.3.5a в `sources/` или указать путь через plugin. +2. Собрать расширение: + +```bat +cd gdextension +build.bat Release +``` + +3. Извлечь данные в `res://extracted` через `MPQ Extractor`. +4. Открыть одну из сцен: + - `maps/adt_tile_preview.tscn` + - `maps/test.tscn` + - `maps/eastern_kingdoms_streaming.tscn` + +Если нужен именно просмотр мира в editor по движению камеры, используй: + +- `maps/eastern_kingdoms_streaming.tscn` +- `editor_preview_enabled = true` +- `editor_follow_view_camera = true` diff --git a/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF2eda08a.TMP b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF2eda08a.TMP new file mode 100644 index 0000000..cec3043 Binary files /dev/null and b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF2eda08a.TMP differ diff --git a/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF328620b.TMP b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF328620b.TMP new file mode 100644 index 0000000..cec3043 Binary files /dev/null and b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF328620b.TMP differ diff --git a/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF3286d36.TMP b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF3286d36.TMP new file mode 100644 index 0000000..cec3043 Binary files /dev/null and b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF3286d36.TMP differ diff --git a/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF338e372.TMP b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF338e372.TMP new file mode 100644 index 0000000..cec3043 Binary files /dev/null and b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF338e372.TMP differ diff --git a/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF4076ec0.TMP b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF4076ec0.TMP new file mode 100644 index 0000000..cec3043 Binary files /dev/null and b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF4076ec0.TMP differ diff --git a/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF40a298b.TMP b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF40a298b.TMP new file mode 100644 index 0000000..cec3043 Binary files /dev/null and b/addons/mpq_extractor/bin/~libmpq_extractor.windows.x86_64.dll~RF40a298b.TMP differ diff --git a/addons/mpq_extractor/loaders/adt_builder.gd b/addons/mpq_extractor/loaders/adt_builder.gd new file mode 100644 index 0000000..b86a476 --- /dev/null +++ b/addons/mpq_extractor/loaders/adt_builder.gd @@ -0,0 +1,1050 @@ +## Converts raw ADTLoader data into a Godot Node3D terrain scene. +extends RefCounted +class_name ADTBuilder + +const TILE_SIZE := 533.33333 +const CHUNK_SIZE := 33.33333 +const UNIT_SIZE := CHUNK_SIZE / 8.0 +const IGNORE_TERRAIN_HOLES := false +const USE_GEOMETRY_NORMALS := true + +static var _terrain_shader: Shader +static var _single_texture_shader: Shader +static var _empty_alpha_texture: Texture2D +static var _fallback_material: StandardMaterial3D +static var _single_texture_material_cache: Dictionary = {} +static var _baked_texture_material_cache: Dictionary = {} +static var _alpha_texture_cache: Dictionary = {} +static var _layered_material_cache: Dictionary = {} +static var _liquid_material_cache: Dictionary = {} + +## Build a Node3D with 256 terrain chunk meshes. +## `extracted_dir` must be an absolute path to the extracted/ folder so BLPs can be loaded. +static func build(data: Dictionary, extracted_dir: String = "") -> Node3D: + var root := Node3D.new() + root.name = "ADT" + var tile_origin := get_tile_origin(data) + root.position = tile_origin + + var tex_names: PackedStringArray = data.get("textures", PackedStringArray()) + var tex_cache: Dictionary = {} + + for chunk in data.get("chunks", []) as Array: + if chunk.is_empty(): + continue + var mi := _build_chunk_mesh(chunk, tex_names, tex_cache, extracted_dir, 0, tile_origin) + if mi: + root.add_child(mi) + + var water_root := build_tile_water_scene(data, tile_origin) + if water_root: + root.add_child(water_root) + return root + + +func build_scene(data: Dictionary, extracted_dir: String = "") -> Node3D: + return build(data, extracted_dir) + + +func get_tile_origin_for_data(data: Dictionary) -> Vector3: + return get_tile_origin(data) + + +func build_chunk_scene( + chunk: Dictionary, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String = "", + lod: int = 0, + origin_offset: Vector3 = Vector3.ZERO) -> MeshInstance3D: + return _build_chunk_mesh(chunk, tex_names, tex_cache, extracted_dir, lod, origin_offset) + + +func build_chunk_render_payload( + chunk: Dictionary, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String = "", + lod: int = 0, + origin_offset: Vector3 = Vector3.ZERO) -> Dictionary: + return build_chunk_payload(chunk, tex_names, tex_cache, extracted_dir, lod, origin_offset) + + +static func build_tile_water_scene(data: Dictionary, origin_offset: Vector3 = Vector3.ZERO) -> Node3D: + return _build_tile_water_root(data, origin_offset) + + +static func build_tile_coarse_scene( + data: Dictionary, + tex_cache: Dictionary, + extracted_dir: String = "", + lod: int = 3) -> MeshInstance3D: + return _build_tile_coarse_mesh(data, tex_cache, extracted_dir, lod) + + +static func build_chunk_payload( + chunk: Dictionary, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String = "", + lod: int = 0, + origin_offset: Vector3 = Vector3.ZERO) -> Dictionary: + return _build_chunk_payload(chunk, tex_names, tex_cache, extracted_dir, lod, origin_offset) + + +static func build_tile_coarse_render_payload( + data: Dictionary, + tex_cache: Dictionary, + extracted_dir: String = "", + lod: int = 3) -> Dictionary: + return _build_tile_coarse_payload(data, tex_cache, extracted_dir, lod) + + +static func build_baked_tile_render_payload( + data: Dictionary, + image_cache: Dictionary, + extracted_dir: String = "", + lod: int = 0, + texture_size: int = 512) -> Dictionary: + return _build_baked_tile_payload(data, image_cache, extracted_dir, lod, texture_size) + + +static func get_tile_origin(data: Dictionary) -> Vector3: + var found := false + var min_x := 0.0 + var min_z := 0.0 + + for chunk in data.get("chunks", []) as Array: + if chunk.is_empty(): + continue + var origin: Vector3 = chunk.get("origin", Vector3.ZERO) + if not found: + min_x = origin.x + min_z = origin.z + found = true + else: + min_x = min(min_x, origin.x) + min_z = min(min_z, origin.z) + + return Vector3(min_x, 0.0, min_z) if found else Vector3.ZERO + + +static func _outer(row: int, col: int) -> int: + return row * 17 + col + + +static func _inner(row: int, col: int) -> int: + return row * 17 + 9 + col + + +static func _build_chunk_mesh( + chunk: Dictionary, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String, + lod: int = 0, + origin_offset: Vector3 = Vector3.ZERO) -> MeshInstance3D: + var payload := _build_chunk_payload(chunk, tex_names, tex_cache, extracted_dir, lod, origin_offset) + return _build_mesh_instance_from_payload(payload) + + +static func _build_chunk_payload( + chunk: Dictionary, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String, + lod: int = 0, + origin_offset: Vector3 = Vector3.ZERO) -> Dictionary: + + var heights: PackedFloat32Array = chunk.get("heights", PackedFloat32Array()) + var origin: Vector3 = chunk.get("origin", Vector3.ZERO) + var layers: Array = chunk.get("layers", []) + var alpha_maps: Array = chunk.get("alpha_maps", []) + var positions := _build_chunk_positions(heights) + if positions.is_empty(): + return {} + + var geometry := _build_chunk_geometry( + positions, + chunk.get("normals", PackedVector3Array()), + chunk.get("holes", 0), + lod) + var verts: PackedVector3Array = geometry["verts"] + if verts.is_empty(): + return {} + var nrms: PackedVector3Array = geometry["nrms"] + var uvs_arr: PackedVector2Array = geometry["uvs"] + var indices: PackedInt32Array = geometry["indices"] + + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = verts + arrays[Mesh.ARRAY_NORMAL] = nrms + arrays[Mesh.ARRAY_TEX_UV] = uvs_arr + arrays[Mesh.ARRAY_INDEX] = indices + + var mesh := ArrayMesh.new() + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + mesh.surface_set_material( + 0, + _build_chunk_material(layers, alpha_maps, tex_names, tex_cache, extracted_dir, lod)) + + return { + "mesh": mesh, + "position": origin - origin_offset, + "name": "Chunk_%d_%d" % [chunk.get("index_x", 0), chunk.get("index_y", 0)], + } + + +static func _build_chunk_positions(heights: PackedFloat32Array) -> PackedVector3Array: + if heights.size() < 145: + return PackedVector3Array() + + var positions := PackedVector3Array() + positions.resize(145) + for r in range(9): + for c in range(9): + var idx := _outer(r, c) + positions[idx] = Vector3(c * UNIT_SIZE, heights[idx], r * UNIT_SIZE) + for r in range(8): + for c in range(8): + var idx := _inner(r, c) + positions[idx] = Vector3( + c * UNIT_SIZE + UNIT_SIZE * 0.5, + heights[idx], + r * UNIT_SIZE + UNIT_SIZE * 0.5) + return positions + + +static func _build_chunk_geometry( + positions: PackedVector3Array, + normals: PackedVector3Array, + holes: int, + lod: int) -> Dictionary: + if IGNORE_TERRAIN_HOLES: + holes = 0 + + var verts := PackedVector3Array() + var nrms := PackedVector3Array() + var uvs_arr := PackedVector2Array() + var indices := PackedInt32Array() + + if lod < 3: + _append_full_chunk_geometry(positions, normals, holes, verts, nrms, uvs_arr, indices) + else: + var step: int = 1 << (lod - 1) # LOD1→step=1, LOD2→step=2 + _append_outer_grid_geometry(positions, normals, holes, 8, verts, nrms, uvs_arr, indices) + + return { + "verts": verts, + "nrms": nrms, + "uvs": uvs_arr, + "indices": indices, + } + + +static func _append_full_chunk_geometry( + positions: PackedVector3Array, + normals: PackedVector3Array, + holes: int, + verts: PackedVector3Array, + nrms: PackedVector3Array, + uvs_arr: PackedVector2Array, + indices: PackedInt32Array) -> void: + + for iy in range(8): + for ix in range(8): + var hx := ix / 2 + var hy := iy / 2 + if holes & (1 << (hy * 4 + hx)): + continue + + var tl := _outer(iy, ix) + var tr := _outer(iy, ix + 1) + var bl := _outer(iy + 1, ix) + var br := _outer(iy + 1, ix + 1) + var mid := _inner(iy, ix) + + for tri: Array in [[mid, tl, bl], [mid, bl, br], [mid, br, tr], [mid, tr, tl]]: + _append_triangle(tri, positions, normals, verts, nrms, uvs_arr, indices) + + +static func _append_outer_grid_geometry( + positions: PackedVector3Array, + normals: PackedVector3Array, + holes: int, + step: int, + verts: PackedVector3Array, + nrms: PackedVector3Array, + uvs_arr: PackedVector2Array, + indices: PackedInt32Array) -> void: + + for iy in range(0, 8, step): + for ix in range(0, 8, step): + if _coarse_cell_has_hole(holes, ix, iy, step): + continue + + var tl := _outer(iy, ix) + var tr := _outer(iy, ix + step) + var bl := _outer(iy + step, ix) + var br := _outer(iy + step, ix + step) + + _append_triangle([tl, bl, br], positions, normals, verts, nrms, uvs_arr, indices) + _append_triangle([tl, br, tr], positions, normals, verts, nrms, uvs_arr, indices) + + +static func _coarse_cell_has_hole(holes: int, start_x: int, start_y: int, step: int) -> bool: + if step >= 8: + return false + + for cell_y in range(start_y, start_y + step): + for cell_x in range(start_x, start_x + step): + var hx := cell_x / 2 + var hy := cell_y / 2 + if holes & (1 << (hy * 4 + hx)): + return true + return false + + +static func _append_triangle( + tri: Array, + positions: PackedVector3Array, + normals: PackedVector3Array, + verts: PackedVector3Array, + nrms: PackedVector3Array, + uvs_arr: PackedVector2Array, + indices: PackedInt32Array) -> void: + + var base := verts.size() + var p0: Vector3 = positions[int(tri[0])] + var p1: Vector3 = positions[int(tri[1])] + var p2: Vector3 = positions[int(tri[2])] + var face_normal := (p1 - p0).cross(p2 - p0).normalized() + if USE_GEOMETRY_NORMALS and face_normal.y < 0.0: + face_normal = -face_normal + for vi: int in tri: + var p: Vector3 = positions[vi] + verts.append(p) + uvs_arr.append(Vector2(p.x / CHUNK_SIZE, p.z / CHUNK_SIZE)) + if USE_GEOMETRY_NORMALS: + nrms.append(face_normal if face_normal.length_squared() > 0.0 else Vector3.UP) + else: + nrms.append(normals[vi] if vi < normals.size() else Vector3.UP) + indices.append(base) + indices.append(base + 1) + indices.append(base + 2) + + +static func _build_tile_coarse_mesh( + data: Dictionary, + tex_cache: Dictionary, + extracted_dir: String, + lod: int) -> MeshInstance3D: + var payload := _build_tile_coarse_payload(data, tex_cache, extracted_dir, lod) + return _build_mesh_instance_from_payload(payload) + + +static func _build_tile_coarse_payload( + data: Dictionary, + tex_cache: Dictionary, + extracted_dir: String, + lod: int) -> Dictionary: + + var tile_origin := get_tile_origin(data) + var tex_names: PackedStringArray = data.get("textures", PackedStringArray()) + var surfaces: Dictionary = {} + + for chunk in data.get("chunks", []) as Array: + if chunk.is_empty(): + continue + + var heights: PackedFloat32Array = chunk.get("heights", PackedFloat32Array()) + var positions := _build_chunk_positions(heights) + if positions.is_empty(): + continue + + var geometry := _build_chunk_geometry( + positions, + chunk.get("normals", PackedVector3Array()), + chunk.get("holes", 0), + lod) + + var verts: PackedVector3Array = geometry["verts"] + if verts.is_empty(): + continue + + var material: Material = _build_chunk_material( + chunk.get("layers", []), + chunk.get("alpha_maps", []), + tex_names, + tex_cache, + extracted_dir, + lod) + var mat_key := material.get_instance_id() + if not surfaces.has(mat_key): + surfaces[mat_key] = { + "material": material, + "verts": PackedVector3Array(), + "nrms": PackedVector3Array(), + "uvs": PackedVector2Array(), + "indices": PackedInt32Array(), + } + + var surface: Dictionary = surfaces[mat_key] + var offset: Vector3 = chunk.get("origin", Vector3.ZERO) - tile_origin + var dst_verts: PackedVector3Array = surface["verts"] + var dst_nrms: PackedVector3Array = surface["nrms"] + var dst_uvs: PackedVector2Array = surface["uvs"] + var dst_indices: PackedInt32Array = surface["indices"] + var base := dst_verts.size() + + for v: Vector3 in verts: + dst_verts.append(v + offset) + for n: Vector3 in geometry["nrms"]: + dst_nrms.append(n) + for uv: Vector2 in geometry["uvs"]: + dst_uvs.append(uv) + for idx: int in geometry["indices"]: + dst_indices.append(base + idx) + + surface["verts"] = dst_verts + surface["nrms"] = dst_nrms + surface["uvs"] = dst_uvs + surface["indices"] = dst_indices + surfaces[mat_key] = surface + + if surfaces.is_empty(): + return {} + + var mesh := ArrayMesh.new() + for surface in surfaces.values(): + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = surface["verts"] + arrays[Mesh.ARRAY_NORMAL] = surface["nrms"] + arrays[Mesh.ARRAY_TEX_UV] = surface["uvs"] + arrays[Mesh.ARRAY_INDEX] = surface["indices"] + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + mesh.surface_set_material(mesh.get_surface_count() - 1, surface["material"]) + + return { + "mesh": mesh, + "position": Vector3.ZERO, + "name": "TileLOD%d" % lod, + } + + +static func _build_baked_tile_payload( + data: Dictionary, + image_cache: Dictionary, + extracted_dir: String, + lod: int, + texture_size: int) -> Dictionary: + + var tile_origin := get_tile_origin(data) + var verts := PackedVector3Array() + var nrms := PackedVector3Array() + var uvs_arr := PackedVector2Array() + var indices := PackedInt32Array() + + for chunk in data.get("chunks", []) as Array: + if chunk.is_empty(): + continue + + var heights: PackedFloat32Array = chunk.get("heights", PackedFloat32Array()) + var positions := _build_chunk_positions(heights) + if positions.is_empty(): + continue + + var geometry := _build_chunk_geometry( + positions, + chunk.get("normals", PackedVector3Array()), + chunk.get("holes", 0), + lod) + + var local_verts: PackedVector3Array = geometry["verts"] + if local_verts.is_empty(): + continue + + var offset: Vector3 = chunk.get("origin", Vector3.ZERO) - tile_origin + var base := verts.size() + + for v: Vector3 in local_verts: + var tv := v + offset + verts.append(tv) + uvs_arr.append(Vector2(tv.x / TILE_SIZE, tv.z / TILE_SIZE)) + for n: Vector3 in geometry["nrms"]: + nrms.append(n) + for idx: int in geometry["indices"]: + indices.append(base + idx) + + if verts.is_empty(): + return {} + + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = verts + arrays[Mesh.ARRAY_NORMAL] = nrms + arrays[Mesh.ARRAY_TEX_UV] = uvs_arr + arrays[Mesh.ARRAY_INDEX] = indices + + var mesh := ArrayMesh.new() + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + + var baked_image := _build_tile_baked_albedo(data, image_cache, extracted_dir, texture_size) + if baked_image: + baked_image.generate_mipmaps() + var baked_texture := ImageTexture.create_from_image(baked_image) + mesh.surface_set_material(0, _build_baked_texture_material(baked_texture)) + else: + mesh.surface_set_material(0, _build_fallback_material()) + + return { + "mesh": mesh, + "position": Vector3.ZERO, + "name": "TileLOD%d" % lod, + } + + +static func _build_mesh_instance_from_payload(payload: Dictionary) -> MeshInstance3D: + if payload.is_empty(): + return null + + var mi := MeshInstance3D.new() + mi.mesh = payload.get("mesh", null) + mi.position = payload.get("position", Vector3.ZERO) + mi.name = payload.get("name", "TerrainMesh") + return mi + + +static func _build_tile_water_root(data: Dictionary, origin_offset: Vector3) -> Node3D: + var root := Node3D.new() + root.name = "Water" + + for chunk in data.get("chunks", []) as Array: + if chunk.is_empty(): + continue + for liquid in chunk.get("liquids", []) as Array: + if liquid.is_empty(): + continue + var water_mesh := _build_liquid_mesh(chunk, liquid, origin_offset) + if water_mesh: + root.add_child(water_mesh) + + return root if root.get_child_count() > 0 else null + + +static func _build_liquid_mesh( + chunk: Dictionary, + liquid: Dictionary, + origin_offset: Vector3) -> MeshInstance3D: + + var liquid_mask: PackedByteArray = liquid.get("mask", PackedByteArray()) + var liquid_heights: PackedFloat32Array = liquid.get("heights", PackedFloat32Array()) + if liquid_mask.size() < 8 * 8 or liquid_heights.size() < 9 * 9: + return null + + var chunk_origin: Vector3 = chunk.get("origin", Vector3.ZERO) + var verts := PackedVector3Array() + var nrms := PackedVector3Array() + var uvs_arr := PackedVector2Array() + var indices := PackedInt32Array() + + for z in range(8): + for x in range(8): + if liquid_mask[z * 8 + x] == 0: + continue + + var base := verts.size() + var y00 := liquid_heights[z * 9 + x] - chunk_origin.y + var y10 := liquid_heights[z * 9 + x + 1] - chunk_origin.y + var y01 := liquid_heights[(z + 1) * 9 + x] - chunk_origin.y + var y11 := liquid_heights[(z + 1) * 9 + x + 1] - chunk_origin.y + + verts.append(Vector3(x * UNIT_SIZE, y00, z * UNIT_SIZE)) + verts.append(Vector3(x * UNIT_SIZE, y01, (z + 1) * UNIT_SIZE)) + verts.append(Vector3((x + 1) * UNIT_SIZE, y11, (z + 1) * UNIT_SIZE)) + verts.append(Vector3((x + 1) * UNIT_SIZE, y10, z * UNIT_SIZE)) + + nrms.append(Vector3.UP) + nrms.append(Vector3.UP) + nrms.append(Vector3.UP) + nrms.append(Vector3.UP) + + uvs_arr.append(Vector2(float(x) / 8.0, float(z) / 8.0)) + uvs_arr.append(Vector2(float(x) / 8.0, float(z + 1) / 8.0)) + uvs_arr.append(Vector2(float(x + 1) / 8.0, float(z + 1) / 8.0)) + uvs_arr.append(Vector2(float(x + 1) / 8.0, float(z) / 8.0)) + + indices.append(base) + indices.append(base + 1) + indices.append(base + 2) + indices.append(base) + indices.append(base + 2) + indices.append(base + 3) + + if verts.is_empty(): + return null + + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = verts + arrays[Mesh.ARRAY_NORMAL] = nrms + arrays[Mesh.ARRAY_TEX_UV] = uvs_arr + arrays[Mesh.ARRAY_INDEX] = indices + + var mesh := ArrayMesh.new() + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + mesh.surface_set_material(0, _build_liquid_material(int(liquid.get("liquid_id", 0)))) + + var mi := MeshInstance3D.new() + mi.mesh = mesh + mi.position = chunk_origin - origin_offset + mi.name = "Liquid_%d_%d_%d" % [ + chunk.get("index_x", 0), + chunk.get("index_y", 0), + int(liquid.get("liquid_id", 0)), + ] + return mi + + +static func _build_chunk_material( + layers: Array, + alpha_maps: Array, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String, + lod: int) -> Material: + + if lod <= 0: + return _build_terrain_material(layers, alpha_maps, tex_names, tex_cache, extracted_dir) + + var base_tex := _get_layer_texture(0, layers, tex_names, tex_cache, extracted_dir) + if base_tex: + return _build_single_texture_material(base_tex) + + return _build_fallback_material() + + +static func _build_liquid_material(liquid_id: int) -> StandardMaterial3D: + if _liquid_material_cache.has(liquid_id): + return _liquid_material_cache[liquid_id] + + var color := _get_liquid_color(liquid_id) + var mat := StandardMaterial3D.new() + mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA + mat.albedo_color = color + mat.cull_mode = BaseMaterial3D.CULL_DISABLED + mat.roughness = 0.08 + mat.metallic = 0.0 + mat.emission_enabled = true + mat.emission = Color(color.r, color.g, color.b) * 0.08 + _liquid_material_cache[liquid_id] = mat + return mat + + +static func _get_liquid_color(liquid_id: int) -> Color: + match liquid_id: + 2, 14: + return Color(0.08, 0.20, 0.34, 0.62) + 3, 15, 19: + return Color(0.75, 0.28, 0.03, 0.72) + 4, 20: + return Color(0.24, 0.45, 0.14, 0.68) + _: + return Color(0.12, 0.33, 0.50, 0.58) + + +static func _build_terrain_material( + layers: Array, + alpha_maps: Array, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String) -> Material: + + if layers.is_empty(): + return _build_fallback_material() + + var textures: Array = [] + for li in range(min(layers.size(), 4)): + var layer: Dictionary = layers[li] + var tex_id: int = layer.get("texture_id", -1) + var tex: Texture2D = null + if tex_id >= 0 and tex_id < tex_names.size(): + tex = _load_texture(tex_names[tex_id], tex_cache, extracted_dir) + textures.append(tex) + + if textures.is_empty() or textures[0] == null: + return _build_fallback_material() + + if textures.size() == 1: + return _build_single_texture_material(textures[0]) + + return _build_layered_material(textures, alpha_maps) + + +static func _get_layer_texture( + layer_index: int, + layers: Array, + tex_names: PackedStringArray, + tex_cache: Dictionary, + extracted_dir: String) -> Texture2D: + + if layer_index < 0 or layer_index >= layers.size(): + return null + + var layer: Dictionary = layers[layer_index] + var tex_id: int = layer.get("texture_id", -1) + if tex_id < 0 or tex_id >= tex_names.size(): + return null + + return _load_texture(tex_names[tex_id], tex_cache, extracted_dir) + + +static func _build_fallback_material() -> StandardMaterial3D: + if _fallback_material: + return _fallback_material + + _fallback_material = StandardMaterial3D.new() + _fallback_material.roughness = 0.9 + _fallback_material.albedo_color = Color(0.4, 0.55, 0.3) + _fallback_material.cull_mode = BaseMaterial3D.CULL_DISABLED + _fallback_material.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED + return _fallback_material + + +static func _build_baked_texture_material(tex: Texture2D) -> Material: + if tex and _baked_texture_material_cache.has(tex.get_instance_id()): + return _baked_texture_material_cache[tex.get_instance_id()] + + var mat := ShaderMaterial.new() + mat.shader = _get_single_texture_shader() + mat.set_shader_parameter("uv_scale", 1.0) + mat.set_shader_parameter("tex0", tex) + if tex: + _baked_texture_material_cache[tex.get_instance_id()] = mat + return mat + + +static func _build_single_texture_material(tex: Texture2D) -> Material: + if tex and _single_texture_material_cache.has(tex.get_instance_id()): + return _single_texture_material_cache[tex.get_instance_id()] + + var mat := ShaderMaterial.new() + mat.shader = _get_single_texture_shader() + mat.set_shader_parameter("uv_scale", 8.0) + mat.set_shader_parameter("tex0", tex) + if tex: + _single_texture_material_cache[tex.get_instance_id()] = mat + return mat + + +static func _build_layered_material(textures: Array, alpha_maps: Array) -> ShaderMaterial: + var mat := ShaderMaterial.new() + mat.shader = _get_terrain_shader() + mat.set_shader_parameter("uv_scale", 8.0) + mat.set_shader_parameter("layer_count", textures.size()) + var base_tex: Texture2D = textures[0] + + for i in range(4): + var tex: Texture2D = base_tex + if i < textures.size() and textures[i] != null: + tex = textures[i] + mat.set_shader_parameter("tex%d" % i, tex) + + for i in range(3): + var alpha_tex: Texture2D = _get_empty_alpha_texture() + if i < alpha_maps.size(): + var built_alpha := _build_alpha_texture(alpha_maps[i]) + if built_alpha: + alpha_tex = built_alpha + mat.set_shader_parameter("alpha%d" % (i + 1), alpha_tex) + + return mat + + +static func _build_alpha_texture(alpha_bytes: PackedByteArray) -> Texture2D: + if alpha_bytes.size() != 64 * 64: + return null + + var image := Image.create_from_data(64, 64, false, Image.FORMAT_L8, alpha_bytes) + if image == null: + return null + + return ImageTexture.create_from_image(image) + + +static func _get_empty_alpha_texture() -> Texture2D: + if _empty_alpha_texture: + return _empty_alpha_texture + + var bytes := PackedByteArray() + bytes.resize(64 * 64) + _empty_alpha_texture = ImageTexture.create_from_image( + Image.create_from_data(64, 64, false, Image.FORMAT_L8, bytes)) + return _empty_alpha_texture + + +static func _build_tile_baked_albedo( + data: Dictionary, + image_cache: Dictionary, + extracted_dir: String, + texture_size: int) -> Image: + + var chunk_pixels := maxi(8, int(ceil(float(maxi(texture_size, 16)) / 16.0))) + var size := chunk_pixels * 16 + var image := Image.create(size, size, false, Image.FORMAT_RGB8) + image.fill(Color(0.4, 0.55, 0.3)) + + var tex_names: PackedStringArray = data.get("textures", PackedStringArray()) + for chunk in data.get("chunks", []) as Array: + if chunk.is_empty(): + continue + + var chunk_x: int = chunk.get("index_x", -1) + var chunk_y: int = chunk.get("index_y", -1) + if chunk_x < 0 or chunk_x >= 16 or chunk_y < 0 or chunk_y >= 16: + continue + + var base_x := chunk_x * chunk_pixels + var base_y := chunk_y * chunk_pixels + for py in range(chunk_pixels): + var local_v := (float(py) + 0.5) / float(chunk_pixels) + for px in range(chunk_pixels): + var local_u := (float(px) + 0.5) / float(chunk_pixels) + var color := _sample_chunk_baked_albedo( + chunk, + tex_names, + image_cache, + extracted_dir, + local_u, + local_v) + image.set_pixel(base_x + px, base_y + py, color) + + return image + + +static func _sample_chunk_baked_albedo( + chunk: Dictionary, + tex_names: PackedStringArray, + image_cache: Dictionary, + extracted_dir: String, + local_u: float, + local_v: float) -> Color: + + var layers: Array = chunk.get("layers", []) + if layers.is_empty(): + return Color(0.4, 0.55, 0.3) + + var textures: Array = [] + for li in range(min(layers.size(), 4)): + var layer: Dictionary = layers[li] + var tex_id: int = layer.get("texture_id", -1) + var img: Image = null + if tex_id >= 0 and tex_id < tex_names.size(): + img = _load_image(tex_names[tex_id], image_cache, extracted_dir) + textures.append(img) + + if textures.is_empty() or textures[0] == null: + return Color(0.4, 0.55, 0.3) + + var alpha_maps: Array = chunk.get("alpha_maps", []) + var weights := PackedFloat32Array([1.0, 0.0, 0.0, 0.0]) + for li in range(1, min(layers.size(), 4)): + var alpha: PackedByteArray = alpha_maps[li - 1] if li - 1 < alpha_maps.size() else PackedByteArray() + if alpha.size() == 64 * 64: + var ax := clampi(int(floor(local_u * 63.999)), 0, 63) + var ay := clampi(int(floor(local_v * 63.999)), 0, 63) + weights[li] = float(alpha[ay * 64 + ax]) / 255.0 + + weights[0] = maxf(0.0, 1.0 - weights[1] - weights[2] - weights[3]) + var sum: float = weights[0] + weights[1] + weights[2] + weights[3] + if sum > 0.0: + for i in range(4): + weights[i] /= sum + + var tiled_u := local_u * 8.0 + var tiled_v := local_v * 8.0 + var out := Color(0, 0, 0, 1) + for i in range(min(textures.size(), 4)): + var img: Image = textures[i] + if img == null: + continue + out += _sample_image_repeat(img, tiled_u, tiled_v) * weights[i] + + return Color(out.r, out.g, out.b, 1.0) + + +static func _sample_image_repeat(image: Image, u: float, v: float) -> Color: + var width: int = image.get_width() + var height: int = image.get_height() + if width <= 0 or height <= 0: + return Color(1, 1, 1, 1) + + var fu: float = wrapf(u, 0.0, 1.0) + var fv: float = wrapf(v, 0.0, 1.0) + var px: float = fu * float(width) - 0.5 + var py: float = fv * float(height) - 0.5 + var x0: int = posmod(int(floor(px)), width) + var y0: int = posmod(int(floor(py)), height) + var x1: int = posmod(x0 + 1, width) + var y1: int = posmod(y0 + 1, height) + var tx: float = px - floor(px) + var ty: float = py - floor(py) + var c00: Color = image.get_pixel(x0, y0) + var c10: Color = image.get_pixel(x1, y0) + var c01: Color = image.get_pixel(x0, y1) + var c11: Color = image.get_pixel(x1, y1) + var top: Color = c00.lerp(c10, tx) + var bottom: Color = c01.lerp(c11, tx) + return top.lerp(bottom, ty) + + +static func _get_terrain_shader() -> Shader: + if _terrain_shader: + return _terrain_shader + + _terrain_shader = Shader.new() + _terrain_shader.code = """ +shader_type spatial; +render_mode unshaded, cull_disabled, depth_draw_opaque; + + uniform sampler2D tex0 : source_color, filter_linear_mipmap_anisotropic, repeat_enable; + uniform sampler2D tex1 : source_color, filter_linear_mipmap_anisotropic, repeat_enable; + uniform sampler2D tex2 : source_color, filter_linear_mipmap_anisotropic, repeat_enable; + uniform sampler2D tex3 : source_color, filter_linear_mipmap_anisotropic, repeat_enable; + + uniform sampler2D alpha1 : filter_linear, repeat_disable; + uniform sampler2D alpha2 : filter_linear, repeat_disable; + uniform sampler2D alpha3 : filter_linear, repeat_disable; + +uniform int layer_count = 1; +uniform float uv_scale = 8.0; +uniform vec3 light_dir = vec3(-0.35, 0.82, -0.45); +uniform float ambient = 0.62; +uniform float diffuse = 0.38; +uniform float hemi = 0.12; + +void fragment() { + vec2 tiled_uv = UV * uv_scale; + + vec4 c0 = texture(tex0, tiled_uv); + vec4 c1 = texture(tex1, tiled_uv); + vec4 c2 = texture(tex2, tiled_uv); + vec4 c3 = texture(tex3, tiled_uv); + + float w1 = layer_count > 1 ? texture(alpha1, UV).r : 0.0; + float w2 = layer_count > 2 ? texture(alpha2, UV).r : 0.0; + float w3 = layer_count > 3 ? texture(alpha3, UV).r : 0.0; + float w0 = max(0.0, 1.0 - w1 - w2 - w3); + + float sum = w0; + if (layer_count > 1) { sum += w1; } + if (layer_count > 2) { sum += w2; } + if (layer_count > 3) { sum += w3; } + if (sum > 0.0) { + w0 /= sum; + w1 /= sum; + w2 /= sum; + w3 /= sum; + } + + vec4 albedo = c0 * w0; + if (layer_count > 1) { albedo += c1 * w1; } + if (layer_count > 2) { albedo += c2 * w2; } + if (layer_count > 3) { albedo += c3 * w3; } + + vec3 n = normalize(NORMAL); + if (!FRONT_FACING) { + n = -n; + } + vec3 l = normalize(light_dir); + float ndl = max(dot(n, l), 0.0); + float hemi_term = clamp(n.y * 0.5 + 0.5, 0.0, 1.0); + float light = ambient + diffuse * ndl + hemi * hemi_term; + ALBEDO = albedo.rgb * light; +} +""" + return _terrain_shader + + +static func _get_single_texture_shader() -> Shader: + if _single_texture_shader: + return _single_texture_shader + + _single_texture_shader = Shader.new() + _single_texture_shader.code = """ +shader_type spatial; +render_mode unshaded, cull_disabled, depth_draw_opaque; + + uniform sampler2D tex0 : source_color, filter_linear_mipmap_anisotropic, repeat_enable; +uniform float uv_scale = 8.0; +uniform vec3 light_dir = vec3(-0.35, 0.82, -0.45); +uniform float ambient = 0.62; +uniform float diffuse = 0.38; +uniform float hemi = 0.12; + +void fragment() { + vec3 n = normalize(NORMAL); + if (!FRONT_FACING) { + n = -n; + } + vec3 l = normalize(light_dir); + float ndl = max(dot(n, l), 0.0); + float hemi_term = clamp(n.y * 0.5 + 0.5, 0.0, 1.0); + float light = ambient + diffuse * ndl + hemi * hemi_term; + ALBEDO = texture(tex0, UV * uv_scale).rgb * light; +} +""" + return _single_texture_shader + + +static func _load_texture( + blp_path: String, + cache: Dictionary, + extracted_dir: String) -> Texture2D: + + if cache.has(blp_path): + return cache[blp_path] + + if not ClassDB.class_exists("BLPLoader"): + return null + + var abs_path := extracted_dir.path_join(blp_path.replace("\\", "/")) + if not FileAccess.file_exists(abs_path): + cache[blp_path] = null + return null + + var img: Image = ClassDB.instantiate("BLPLoader").call("load_image", abs_path) + if not img: + cache[blp_path] = null + return null + + var tex := ImageTexture.create_from_image(img) + cache[blp_path] = tex + return tex + + +static func _load_image( + blp_path: String, + cache: Dictionary, + extracted_dir: String) -> Image: + + if cache.has(blp_path): + return cache[blp_path] + + if not ClassDB.class_exists("BLPLoader"): + return null + + var abs_path := extracted_dir.path_join(blp_path.replace("\\", "/")) + if not FileAccess.file_exists(abs_path): + cache[blp_path] = null + return null + + var img: Image = ClassDB.instantiate("BLPLoader").call("load_image", abs_path) + if not img: + cache[blp_path] = null + return null + + cache[blp_path] = img + return img diff --git a/addons/mpq_extractor/loaders/adt_builder.gd.uid b/addons/mpq_extractor/loaders/adt_builder.gd.uid new file mode 100644 index 0000000..e395f77 --- /dev/null +++ b/addons/mpq_extractor/loaders/adt_builder.gd.uid @@ -0,0 +1 @@ +uid://cwsdumb6pp10m diff --git a/addons/mpq_extractor/loaders/m2_builder.gd b/addons/mpq_extractor/loaders/m2_builder.gd new file mode 100644 index 0000000..a0a6c8c --- /dev/null +++ b/addons/mpq_extractor/loaders/m2_builder.gd @@ -0,0 +1,127 @@ +## Converts raw M2Loader data into a Godot Node3D scene tree. +## Usage: +## var data = M2Loader.new().load_m2(abs_path) +## var node = M2Builder.build(data, "res://extracted") +## add_child(node) +class_name M2Builder + +static var _texture_cache: Dictionary = {} + +static func build(data: Dictionary, extracted_dir: String = "") -> Node3D: + var root := Node3D.new() + root.name = "M2" + + var verts: PackedVector3Array = data.get("vertices", PackedVector3Array()) + var normals: PackedVector3Array = data.get("normals", PackedVector3Array()) + var uvs: PackedVector2Array = data.get("uvs", PackedVector2Array()) + var indices: PackedInt32Array = data.get("indices", PackedInt32Array()) + var batches: Array = data.get("batches", []) + + if verts.is_empty() or indices.is_empty() or batches.is_empty(): + return root + + var textures: PackedStringArray = data.get("textures", PackedStringArray()) + var materials: Array = data.get("materials", []) + var tex_combos: PackedInt32Array = data.get("texture_combos", PackedInt32Array()) + + var mesh := ArrayMesh.new() + + for batch_variant in batches: + if not (batch_variant is Dictionary): + continue + var batch: Dictionary = batch_variant + var idx_start: int = int(batch.get("index_start", 0)) + var idx_count: int = int(batch.get("index_count", 0)) + var mat_id: int = int(batch.get("material_id", -1)) + var tc_idx: int = int(batch.get("texture_combo_index", -1)) + + if idx_count <= 0 or idx_start + idx_count > indices.size(): + continue + + var batch_indices := indices.slice(idx_start, idx_start + idx_count) + if batch_indices.is_empty(): + continue + + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = verts + if normals.size() == verts.size(): + arrays[Mesh.ARRAY_NORMAL] = normals + if uvs.size() == verts.size(): + arrays[Mesh.ARRAY_TEX_UV] = uvs + arrays[Mesh.ARRAY_INDEX] = batch_indices + + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + + var surf_idx := mesh.get_surface_count() - 1 + var mat_def: Dictionary = materials[mat_id] if mat_id >= 0 and mat_id < materials.size() else {} + mesh.surface_set_material(surf_idx, _build_material(mat_def, tc_idx, textures, tex_combos, extracted_dir)) + + if mesh.get_surface_count() == 0: + return root + + var mi := MeshInstance3D.new() + mi.name = "Mesh" + mi.mesh = mesh + root.add_child(mi) + return root + + +static func _build_material( + mat_def: Dictionary, + texture_combo_index: int, + textures: PackedStringArray, + tex_combos: PackedInt32Array, + extracted_dir: String) -> StandardMaterial3D: + + var mat := StandardMaterial3D.new() + mat.cull_mode = BaseMaterial3D.CULL_DISABLED + mat.roughness = 0.85 + mat.metallic = 0.0 + mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED + mat.specular_mode = BaseMaterial3D.SPECULAR_DISABLED + mat.vertex_color_use_as_albedo = false + + var blend_mode: int = mat_def.get("blend_mode", 0) + match blend_mode: + 0: mat.transparency = BaseMaterial3D.TRANSPARENCY_DISABLED + 1: mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_SCISSOR + _: mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA + + if texture_combo_index >= 0 and texture_combo_index < tex_combos.size(): + var tex_idx: int = tex_combos[texture_combo_index] + if tex_idx >= 0 and tex_idx < textures.size(): + var tex_path: String = str(textures[tex_idx]).replace("\\", "/") + if not tex_path.is_empty(): + var tex := _load_texture(tex_path, extracted_dir) + if tex: + mat.albedo_texture = tex + mat.texture_filter = BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC + + return mat + + +static func _load_texture(rel_path: String, extracted_dir: String) -> Texture2D: + if rel_path.is_empty() or extracted_dir.is_empty(): + return null + + var abs_path := ProjectSettings.globalize_path(extracted_dir.path_join(rel_path)) + if _texture_cache.has(abs_path): + return _texture_cache[abs_path] + + if not ClassDB.class_exists("BLPLoader"): + return null + + var loader = ClassDB.instantiate("BLPLoader") + if loader == null: + return null + + var img: Image = loader.call("load_image", abs_path) + if img == null or img.is_empty(): + _texture_cache[abs_path] = null + return null + + img.generate_mipmaps() + var tex := ImageTexture.create_from_image(img) + _texture_cache[abs_path] = tex + return tex diff --git a/addons/mpq_extractor/loaders/m2_builder.gd.uid b/addons/mpq_extractor/loaders/m2_builder.gd.uid new file mode 100644 index 0000000..1d8baf7 --- /dev/null +++ b/addons/mpq_extractor/loaders/m2_builder.gd.uid @@ -0,0 +1 @@ +uid://bsr7e0tp543di diff --git a/addons/mpq_extractor/loaders/wmo_builder.gd b/addons/mpq_extractor/loaders/wmo_builder.gd new file mode 100644 index 0000000..50a0788 --- /dev/null +++ b/addons/mpq_extractor/loaders/wmo_builder.gd @@ -0,0 +1,164 @@ +## Converts raw WMOLoader data into a Godot Node3D scene tree. +## Usage: +## var data = WMOLoader.new().load_wmo(abs_path) +## var node = WMOBuilder.build(data, "res://extracted") +## add_child(node) +class_name WMOBuilder + +static var _texture_cache: Dictionary = {} + +# Returns a Node3D containing one MeshInstance3D per WMO group. +static func build(data: Dictionary, extracted_dir: String = "") -> Node3D: + var root := Node3D.new() + root.name = "WMO" + + if not data.has("groups"): + return root + + var textures: PackedStringArray = data.get("textures", PackedStringArray()) + var materials: Array = data.get("materials", []) + + # Build Godot materials from WMO material definitions + var godot_materials: Array[StandardMaterial3D] = [] + for mat_def in materials: + godot_materials.append(_build_material(mat_def, textures, extracted_dir)) + + # Build one MeshInstance3D per group + var groups: Array = data.get("groups", []) + for gi in groups.size(): + var g: Dictionary = groups[gi] + if g.is_empty(): + continue + var mesh_inst := _build_group_mesh(g, godot_materials) + mesh_inst.name = "Group_%d" % gi + root.add_child(mesh_inst) + + return root + + +static func _build_group_mesh( + g: Dictionary, + godot_mats: Array[StandardMaterial3D]) -> MeshInstance3D: + + var verts: PackedVector3Array = g.get("vertices", PackedVector3Array()) + var normals: PackedVector3Array = g.get("normals", PackedVector3Array()) + var uvs: PackedVector2Array = g.get("uvs", PackedVector2Array()) + var colors: PackedColorArray = g.get("colors", PackedColorArray()) + var indices: PackedInt32Array = g.get("indices", PackedInt32Array()) + var batches: Array = g.get("batches", []) + var mesh := ArrayMesh.new() + if verts.is_empty() or indices.is_empty(): + var empty := MeshInstance3D.new() + empty.mesh = mesh + return empty + + if batches.is_empty(): + batches = [{ + "index_start": 0, + "index_count": indices.size(), + "material_id": -1, + }] + + for batch_variant in batches: + if not (batch_variant is Dictionary): + continue + var batch: Dictionary = batch_variant + var idx_start: int = int(batch.get("index_start", 0)) + var idx_count: int = int(batch.get("index_count", 0)) + var mat_id: int = int(batch.get("material_id", -1)) + if idx_count <= 0 or idx_start >= indices.size(): + continue + + var batch_indices := PackedInt32Array() + for i in range(idx_start, mini(idx_start + idx_count, indices.size()), 3): + if i + 2 >= indices.size(): + break + # Reverse winding for the current local basis conversion. + batch_indices.append(indices[i + 0]) + batch_indices.append(indices[i + 2]) + batch_indices.append(indices[i + 1]) + if batch_indices.is_empty(): + continue + + var arrays := [] + arrays.resize(Mesh.ARRAY_MAX) + arrays[Mesh.ARRAY_VERTEX] = verts + if normals.size() == verts.size(): + arrays[Mesh.ARRAY_NORMAL] = normals + if uvs.size() == verts.size(): + arrays[Mesh.ARRAY_TEX_UV] = uvs + if colors.size() == verts.size(): + arrays[Mesh.ARRAY_COLOR] = colors + arrays[Mesh.ARRAY_INDEX] = batch_indices + + mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) + + var surf_idx := mesh.get_surface_count() - 1 + if mat_id >= 0 and mat_id < godot_mats.size(): + mesh.surface_set_material(surf_idx, godot_mats[mat_id]) + + var mi := MeshInstance3D.new() + mi.mesh = mesh + return mi + + +static func _build_material( + mat_def: Dictionary, + textures: PackedStringArray, + extracted_dir: String = "") -> StandardMaterial3D: + + var mat := StandardMaterial3D.new() + mat.cull_mode = BaseMaterial3D.CULL_DISABLED + mat.roughness = 0.85 + mat.metallic = 0.0 + mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED + mat.specular_mode = BaseMaterial3D.SPECULAR_DISABLED + mat.vertex_color_use_as_albedo = false + + var blend_mode: int = mat_def.get("blend_mode", 0) + match blend_mode: + 0: mat.transparency = BaseMaterial3D.TRANSPARENCY_DISABLED + 1: mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_SCISSOR + _: mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA + + # Texture is loaded later by the scene assembler (needs BLP→Image conversion) + # Store the path as metadata for the assembler to pick up + var tex0_id: int = mat_def.get("texture0", -1) + if tex0_id >= 0 and tex0_id < textures.size(): + var tex_path: String = str(textures[tex0_id]).replace("\\", "/") + mat.set_meta("texture0_path", tex_path) + var tex := _load_texture(tex_path, extracted_dir) + if tex: + mat.albedo_texture = tex + mat.texture_filter = BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC + + mat.set_meta("wow_flags", mat_def.get("flags", 0)) + mat.set_meta("wow_shader", mat_def.get("shader", 0)) + + return mat + + +static func _load_texture(rel_path: String, extracted_dir: String) -> Texture2D: + if rel_path.is_empty() or extracted_dir.is_empty(): + return null + + var abs_path := ProjectSettings.globalize_path(extracted_dir.path_join(rel_path.replace("\\", "/"))) + if _texture_cache.has(abs_path): + return _texture_cache[abs_path] + + if not ClassDB.class_exists("BLPLoader"): + return null + + var loader = ClassDB.instantiate("BLPLoader") + if loader == null: + return null + + var img: Image = loader.call("load_image", abs_path) + if img == null or img.is_empty(): + _texture_cache[abs_path] = null + return null + + img.generate_mipmaps() + var tex := ImageTexture.create_from_image(img) + _texture_cache[abs_path] = tex + return tex diff --git a/addons/mpq_extractor/loaders/wmo_builder.gd.uid b/addons/mpq_extractor/loaders/wmo_builder.gd.uid new file mode 100644 index 0000000..7b4b35c --- /dev/null +++ b/addons/mpq_extractor/loaders/wmo_builder.gd.uid @@ -0,0 +1 @@ +uid://b7qb5j8qms0b0 diff --git a/addons/mpq_extractor/mpq_extractor.gdextension b/addons/mpq_extractor/mpq_extractor.gdextension new file mode 100644 index 0000000..c8ee819 --- /dev/null +++ b/addons/mpq_extractor/mpq_extractor.gdextension @@ -0,0 +1,11 @@ +[configuration] +entry_symbol = "mpq_extractor_init" +compatibility_minimum = "4.6" + +[libraries] +windows.x86_64.debug = "res://addons/mpq_extractor/bin/libmpq_extractor.windows.x86_64.dll" +windows.x86_64.release = "res://addons/mpq_extractor/bin/libmpq_extractor.windows.x86_64.dll" +linux.x86_64.debug = "res://addons/mpq_extractor/bin/libmpq_extractor.linux.x86_64.so" +linux.x86_64.release = "res://addons/mpq_extractor/bin/libmpq_extractor.linux.x86_64.so" +macos.debug = "res://addons/mpq_extractor/bin/libmpq_extractor.macos.universal.dylib" +macos.release = "res://addons/mpq_extractor/bin/libmpq_extractor.macos.universal.dylib" diff --git a/addons/mpq_extractor/mpq_extractor.gdextension.uid b/addons/mpq_extractor/mpq_extractor.gdextension.uid new file mode 100644 index 0000000..cd85e42 --- /dev/null +++ b/addons/mpq_extractor/mpq_extractor.gdextension.uid @@ -0,0 +1 @@ +uid://bd6x7bgktb61c diff --git a/addons/mpq_extractor/plugin.cfg b/addons/mpq_extractor/plugin.cfg new file mode 100644 index 0000000..4535e37 --- /dev/null +++ b/addons/mpq_extractor/plugin.cfg @@ -0,0 +1,6 @@ +[plugin] +name="MPQ Extractor" +description="Extracts WoW 3.3.5a (build 12340) MPQ archives respecting Blizzard client priority." +author="OpenWC" +version="1.0.0" +script="plugin.gd" diff --git a/addons/mpq_extractor/plugin.gd b/addons/mpq_extractor/plugin.gd new file mode 100644 index 0000000..6641bf4 --- /dev/null +++ b/addons/mpq_extractor/plugin.gd @@ -0,0 +1,21 @@ +@tool +extends EditorPlugin + +var _dock: Control + +func _enter_tree() -> void: + var script: Script = load("res://addons/mpq_extractor/ui/mpq_tool.gd") + if script == null: + push_error("MPQ Extractor: не удалось загрузить mpq_tool.gd") + return + _dock = VBoxContainer.new() + _dock.name = "MPQExtractorDock" + _dock.set_script(script) + add_control_to_bottom_panel(_dock, "MPQ Extractor") + make_bottom_panel_item_visible(_dock) + +func _exit_tree() -> void: + if _dock: + remove_control_from_bottom_panel(_dock) + _dock.queue_free() + _dock = null diff --git a/addons/mpq_extractor/plugin.gd.uid b/addons/mpq_extractor/plugin.gd.uid new file mode 100644 index 0000000..9bb6767 --- /dev/null +++ b/addons/mpq_extractor/plugin.gd.uid @@ -0,0 +1 @@ +uid://dds11be30harj diff --git a/addons/mpq_extractor/ui/mpq_tool.gd b/addons/mpq_extractor/ui/mpq_tool.gd new file mode 100644 index 0000000..933a1c1 --- /dev/null +++ b/addons/mpq_extractor/ui/mpq_tool.gd @@ -0,0 +1,191 @@ +@tool +extends VBoxContainer + +# ─── State ──────────────────────────────────────────────────────────────────── +var _mpq = null # MPQManager + +const LOCALES := ["ruRU", "enUS", "enGB", "deDE", "frFR", "esES", "esMX", + "koKR", "zhCN", "zhTW", "ptBR", "ptPT"] + +# ─── UI nodes (created in _ready) ───────────────────────────────────────────── +var _client_path_edit: LineEdit +var _locale_option: OptionButton +var _filter_edit: LineEdit +var _output_edit: LineEdit +var _open_btn: Button +var _extract_btn: Button +var _list_btn: Button +var _status_label: Label +var _file_list: ItemList +var _archive_list: ItemList +var _progress: ProgressBar + +# ─── Build UI ───────────────────────────────────────────────────────────────── +func _ready() -> void: + size_flags_horizontal = Control.SIZE_EXPAND_FILL + add_theme_constant_override("separation", 6) + + _add_title() + _add_separator() + _add_client_row() + _add_locale_row() + _open_btn = _add_button("Open Client Archives", _on_open_pressed) + _add_separator() + _add_label("Loaded archives (highest priority first):") + _archive_list = _add_item_list(100) + _add_separator() + _add_filter_row() + _add_output_row() + var btns := HBoxContainer.new(); add_child(btns) + _list_btn = _add_button_to("List Files", btns, _on_list_pressed) + _extract_btn = _add_button_to("Extract", btns, _on_extract_pressed) + _progress = ProgressBar.new(); _progress.visible = false; add_child(_progress) + _add_label("Files matching filter:") + _file_list = _add_item_list(0, true) # expand vertically + _status_label = _add_label("Ready.") + + _extract_btn.disabled = true + _list_btn.disabled = true + + +# ─── UI helpers ─────────────────────────────────────────────────────────────── +func _add_title() -> void: + var lbl := Label.new() + lbl.text = "MPQ Extractor (WoW 3.3.5a)" + lbl.add_theme_font_size_override("font_size", 14) + add_child(lbl) + +func _add_separator() -> void: + add_child(HSeparator.new()) + +func _add_label(text: String) -> Label: + var lbl := Label.new(); lbl.text = text + add_child(lbl); return lbl + +func _add_item_list(min_height: int, expand := false) -> ItemList: + var il := ItemList.new() + if min_height > 0: + il.custom_minimum_size = Vector2(0, min_height) + if expand: + il.size_flags_vertical = Control.SIZE_EXPAND_FILL + add_child(il); return il + +func _add_button(text: String, cb: Callable) -> Button: + var btn := Button.new(); btn.text = text + btn.pressed.connect(cb); add_child(btn); return btn + +func _add_button_to(text: String, parent: Control, cb: Callable) -> Button: + var btn := Button.new() + btn.text = text + btn.size_flags_horizontal = Control.SIZE_EXPAND_FILL + btn.pressed.connect(cb); parent.add_child(btn); return btn + +func _add_row(label_text: String) -> HBoxContainer: + var row := HBoxContainer.new(); add_child(row) + var lbl := Label.new() + lbl.text = label_text + lbl.custom_minimum_size = Vector2(90, 0) + row.add_child(lbl); return row + +func _add_client_row() -> void: + var row := _add_row("Client path") + _client_path_edit = LineEdit.new() + _client_path_edit.text = "res://sources" + _client_path_edit.size_flags_horizontal = Control.SIZE_EXPAND_FILL + _client_path_edit.placeholder_text = "res://sources" + row.add_child(_client_path_edit) + +func _add_locale_row() -> void: + var row := _add_row("Locale") + _locale_option = OptionButton.new() + _locale_option.size_flags_horizontal = Control.SIZE_EXPAND_FILL + for loc in LOCALES: + _locale_option.add_item(loc) + row.add_child(_locale_option) + +func _add_filter_row() -> void: + var row := _add_row("Filter") + _filter_edit = LineEdit.new() + _filter_edit.text = "*" + _filter_edit.size_flags_horizontal = Control.SIZE_EXPAND_FILL + _filter_edit.placeholder_text = "DBFilesClient\\*.dbc" + row.add_child(_filter_edit) + +func _add_output_row() -> void: + var row := _add_row("Output dir") + _output_edit = LineEdit.new() + _output_edit.text = "res://extracted" + _output_edit.size_flags_horizontal = Control.SIZE_EXPAND_FILL + row.add_child(_output_edit) + + +# ─── Handlers ───────────────────────────────────────────────────────────────── +func _on_open_pressed() -> void: + if not ClassDB.class_exists("MPQManager"): + _set_status("ERROR: MPQManager не найден. Собери GDExtension (build.bat Release).") + return + + if _mpq: + _mpq.call("close") + _mpq = ClassDB.instantiate("MPQManager") + + var client_path: String = ProjectSettings.globalize_path(_client_path_edit.text) + var locale: String = LOCALES[_locale_option.selected] + + _set_status("Opening archives…") + var count: int = _mpq.call("open_client", client_path, locale) + + if count == 0: + _set_status("ERROR: no archives opened. Check client path / locale.") + _extract_btn.disabled = true + _list_btn.disabled = true + return + + _archive_list.clear() + var info_list: Array = _mpq.call("get_archive_info") + for info in info_list: + var lbl_text := "[%d] %s (%d files)" % [ + info["priority"], + (info["path"] as String).get_file(), + info["file_count"] + ] + _archive_list.add_item(lbl_text) + + _set_status("Opened %d archives. Locale: %s" % [count, locale]) + _extract_btn.disabled = false + _list_btn.disabled = false + + +func _on_list_pressed() -> void: + if not _mpq: return + _file_list.clear() + _set_status("Listing files…") + + var filter: String = _filter_edit.text if not _filter_edit.text.is_empty() else "*" + var files: PackedStringArray = _mpq.call("list_files", filter) + for f in files: + _file_list.add_item(f) + _set_status("Found %d files matching '%s'" % [files.size(), filter]) + + +func _on_extract_pressed() -> void: + if not _mpq: return + + var filter: String = _filter_edit.text if not _filter_edit.text.is_empty() else "*" + var output_dir: String = ProjectSettings.globalize_path(_output_edit.text) + + _set_status("Extracting…") + _progress.visible = true + _progress.value = 0 + + var count: int = _mpq.call("extract_files", filter, output_dir) + + _progress.value = 100 + _progress.visible = false + _set_status("Extracted %d files → %s" % [count, output_dir]) + + +# ─── Helpers ────────────────────────────────────────────────────────────────── +func _set_status(text: String) -> void: + _status_label.text = text + print("[MPQTool] ", text) diff --git a/addons/mpq_extractor/ui/mpq_tool.gd.uid b/addons/mpq_extractor/ui/mpq_tool.gd.uid new file mode 100644 index 0000000..d98d167 --- /dev/null +++ b/addons/mpq_extractor/ui/mpq_tool.gd.uid @@ -0,0 +1 @@ +uid://b1s1aqegqtlg diff --git a/addons/mpq_extractor/ui/mpq_tool.tscn b/addons/mpq_extractor/ui/mpq_tool.tscn new file mode 100644 index 0000000..d1e4447 --- /dev/null +++ b/addons/mpq_extractor/ui/mpq_tool.tscn @@ -0,0 +1,102 @@ +[gd_scene load_steps=2 format=3 uid="uid://mpq_tool"] + +[ext_resource type="Script" path="res://addons/mpq_extractor/ui/mpq_tool.gd" id="1_script"] + +[node name="MPQTool" type="VBoxContainer"] +script = ExtResource("1_script") +custom_minimum_size = Vector2(280, 0) + +[node name="Title" type="Label" parent="."] +text = "MPQ Extractor (WoW 3.3.5a)" +theme_override_font_sizes/font_size = 14 + +[node name="HSep1" type="HSeparator" parent="."] + +[node name="ClientPathRow" type="HBoxContainer" parent="."] + +[node name="ClientLabel" type="Label" parent="ClientPathRow"] +text = "Client path" +custom_minimum_size = Vector2(80, 0) + +[node name="ClientPathEdit" type="LineEdit" parent="ClientPathRow"] +unique_name_in_owner = true +size_flags_horizontal = 3 +placeholder_text = "res://sources" + +[node name="LocaleRow" type="HBoxContainer" parent="."] + +[node name="LocaleLabel" type="Label" parent="LocaleRow"] +text = "Locale" +custom_minimum_size = Vector2(80, 0) + +[node name="LocaleOption" type="OptionButton" parent="LocaleRow"] +unique_name_in_owner = true +size_flags_horizontal = 3 + +[node name="OpenBtn" type="Button" parent="."] +unique_name_in_owner = true +text = "Open Client Archives" + +[node name="HSep2" type="HSeparator" parent="."] + +[node name="ArchiveLabel" type="Label" parent="."] +text = "Loaded archives (highest priority first):" + +[node name="ArchiveList" type="ItemList" parent="."] +unique_name_in_owner = true +custom_minimum_size = Vector2(0, 110) + +[node name="HSep3" type="HSeparator" parent="."] + +[node name="FilterRow" type="HBoxContainer" parent="."] + +[node name="FilterLabel" type="Label" parent="FilterRow"] +text = "Filter" +custom_minimum_size = Vector2(80, 0) + +[node name="FilterEdit" type="LineEdit" parent="FilterRow"] +unique_name_in_owner = true +size_flags_horizontal = 3 +placeholder_text = "DBFilesClient\\*.dbc" +text = "*" + +[node name="OutputRow" type="HBoxContainer" parent="."] + +[node name="OutputLabel" type="Label" parent="OutputRow"] +text = "Output dir" +custom_minimum_size = Vector2(80, 0) + +[node name="OutputEdit" type="LineEdit" parent="OutputRow"] +unique_name_in_owner = true +size_flags_horizontal = 3 +placeholder_text = "res://extracted" +text = "res://extracted" + +[node name="ActionRow" type="HBoxContainer" parent="."] + +[node name="ListBtn" type="Button" parent="ActionRow"] +unique_name_in_owner = true +size_flags_horizontal = 3 +text = "List Files" + +[node name="ExtractBtn" type="Button" parent="ActionRow"] +unique_name_in_owner = true +size_flags_horizontal = 3 +text = "Extract" + +[node name="ProgressBar" type="ProgressBar" parent="."] +unique_name_in_owner = true +visible = false + +[node name="FileListLabel" type="Label" parent="."] +text = "Files matching filter:" + +[node name="FileList" type="ItemList" parent="."] +unique_name_in_owner = true +size_flags_vertical = 3 +custom_minimum_size = Vector2(0, 200) + +[node name="StatusLabel" type="Label" parent="."] +unique_name_in_owner = true +text = "Ready." +autowrap_mode = 3 diff --git a/exported_glb/BloodElfFemale.glb b/exported_glb/BloodElfFemale.glb new file mode 100644 index 0000000..48e97bf Binary files /dev/null and b/exported_glb/BloodElfFemale.glb differ diff --git a/exported_glb/BloodElfFemale.glb.import b/exported_glb/BloodElfFemale.glb.import new file mode 100644 index 0000000..26c6d6e --- /dev/null +++ b/exported_glb/BloodElfFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d1hgbro27dodt" +path="res://.godot/imported/BloodElfFemale.glb-b1741861349e3fc4fb17e94f1918c49c.scn" + +[deps] + +source_file="res://exported_glb/BloodElfFemale.glb" +dest_files=["res://.godot/imported/BloodElfFemale.glb-b1741861349e3fc4fb17e94f1918c49c.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png b/exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png new file mode 100644 index 0000000..d17029c Binary files /dev/null and b/exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png differ diff --git a/exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png.import b/exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png.import new file mode 100644 index 0000000..7935eb1 --- /dev/null +++ b/exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3yq4bmdthh5k" +path.s3tc="res://.godot/imported/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png-0402444f90360f9f4e8cdddcdbbc6820.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e4357947558b2043edc1c7ee3887ce57" +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png" +dest_files=["res://.godot/imported/BloodElfFemale_BLOODELFFEMALEEYEGLOWGREEN.png-0402444f90360f9f4e8cdddcdbbc6820.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png b/exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png new file mode 100644 index 0000000..b19d959 Binary files /dev/null and b/exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png differ diff --git a/exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png.import b/exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png.import new file mode 100644 index 0000000..02ebae0 --- /dev/null +++ b/exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfv75i5np5o34" +path.s3tc="res://.godot/imported/BloodElfFemale_BLOODELFFEMALESKIN00_00.png-65eb8b7e90125863cb003a1d12b3c5f2.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "ca0783394a973566ae902d46a0ec18c5" +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_BLOODELFFEMALESKIN00_00.png" +dest_files=["res://.godot/imported/BloodElfFemale_BLOODELFFEMALESKIN00_00.png-65eb8b7e90125863cb003a1d12b3c5f2.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfFemale_HAIR00_00.png b/exported_glb/BloodElfFemale_HAIR00_00.png new file mode 100644 index 0000000..9017f17 Binary files /dev/null and b/exported_glb/BloodElfFemale_HAIR00_00.png differ diff --git a/exported_glb/BloodElfFemale_HAIR00_00.png.import b/exported_glb/BloodElfFemale_HAIR00_00.png.import new file mode 100644 index 0000000..48778b4 --- /dev/null +++ b/exported_glb/BloodElfFemale_HAIR00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccxw4dvqfcdlc" +path.s3tc="res://.godot/imported/BloodElfFemale_HAIR00_00.png-088bf1c3a201c9b95eaae625806fa47d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "4715cf74f5fc16ae5c7799dc1d350179" +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_HAIR00_00.png" +dest_files=["res://.godot/imported/BloodElfFemale_HAIR00_00.png-088bf1c3a201c9b95eaae625806fa47d.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfFemale_deathKnightEyeGlow.png b/exported_glb/BloodElfFemale_deathKnightEyeGlow.png new file mode 100644 index 0000000..b3bd31e Binary files /dev/null and b/exported_glb/BloodElfFemale_deathKnightEyeGlow.png differ diff --git a/exported_glb/BloodElfFemale_deathKnightEyeGlow.png.import b/exported_glb/BloodElfFemale_deathKnightEyeGlow.png.import new file mode 100644 index 0000000..4c237e9 --- /dev/null +++ b/exported_glb/BloodElfFemale_deathKnightEyeGlow.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bektfowjblk3w" +path.s3tc="res://.godot/imported/BloodElfFemale_deathKnightEyeGlow.png-53c34a083ecd3e17af912a6fcdd97056.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "de4c150e4cd2d49505d8aea5ac12e337" +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_deathKnightEyeGlow.png" +dest_files=["res://.godot/imported/BloodElfFemale_deathKnightEyeGlow.png-53c34a083ecd3e17af912a6fcdd97056.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_00.png b/exported_glb/BloodElfFemale_textures/face_lower_00_00.png new file mode 100644 index 0000000..960717b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_00.png.import new file mode 100644 index 0000000..f2a8953 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fswc0wa00p16" +path="res://.godot/imported/face_lower_00_00.png-56a7519d9ad23a24f0f94b4cf524ec40.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_00.png" +dest_files=["res://.godot/imported/face_lower_00_00.png-56a7519d9ad23a24f0f94b4cf524ec40.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_01.png b/exported_glb/BloodElfFemale_textures/face_lower_00_01.png new file mode 100644 index 0000000..0e097e3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_01.png.import new file mode 100644 index 0000000..f65e9d6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7hb2njov3pmt" +path="res://.godot/imported/face_lower_00_01.png-ada336a3632cc6b7594a349a5ab0afad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_01.png" +dest_files=["res://.godot/imported/face_lower_00_01.png-ada336a3632cc6b7594a349a5ab0afad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_02.png b/exported_glb/BloodElfFemale_textures/face_lower_00_02.png new file mode 100644 index 0000000..ca28e4a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_02.png.import new file mode 100644 index 0000000..fb18471 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvhx54078wh1" +path="res://.godot/imported/face_lower_00_02.png-db574ecdcf45eede4db14673c0b067a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_02.png" +dest_files=["res://.godot/imported/face_lower_00_02.png-db574ecdcf45eede4db14673c0b067a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_03.png b/exported_glb/BloodElfFemale_textures/face_lower_00_03.png new file mode 100644 index 0000000..4883940 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_03.png.import new file mode 100644 index 0000000..a945e4d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8mjqidjds1j" +path="res://.godot/imported/face_lower_00_03.png-149edb7caa0471aa54a5ff86ab3ea78d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_03.png" +dest_files=["res://.godot/imported/face_lower_00_03.png-149edb7caa0471aa54a5ff86ab3ea78d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_04.png b/exported_glb/BloodElfFemale_textures/face_lower_00_04.png new file mode 100644 index 0000000..f8af435 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_04.png.import new file mode 100644 index 0000000..7130df2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpfi88no1a0s1" +path="res://.godot/imported/face_lower_00_04.png-07e43b43898296ab0d51ff251261774b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_04.png" +dest_files=["res://.godot/imported/face_lower_00_04.png-07e43b43898296ab0d51ff251261774b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_05.png b/exported_glb/BloodElfFemale_textures/face_lower_00_05.png new file mode 100644 index 0000000..e9c993b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_05.png.import new file mode 100644 index 0000000..ea96b79 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b374h0bu1y21h" +path="res://.godot/imported/face_lower_00_05.png-4f5da848e008132e48e3999559ac8b88.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_05.png" +dest_files=["res://.godot/imported/face_lower_00_05.png-4f5da848e008132e48e3999559ac8b88.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_06.png b/exported_glb/BloodElfFemale_textures/face_lower_00_06.png new file mode 100644 index 0000000..8ac35ac Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_06.png.import new file mode 100644 index 0000000..91b5990 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyyjbyl5aymon" +path="res://.godot/imported/face_lower_00_06.png-91a5aca789a732af8ec6b51e22ea7468.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_06.png" +dest_files=["res://.godot/imported/face_lower_00_06.png-91a5aca789a732af8ec6b51e22ea7468.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_07.png b/exported_glb/BloodElfFemale_textures/face_lower_00_07.png new file mode 100644 index 0000000..3a9a6ef Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_07.png.import new file mode 100644 index 0000000..a511506 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b24cflepuw7em" +path="res://.godot/imported/face_lower_00_07.png-0a15e214166e3279421c558cd337c4cd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_07.png" +dest_files=["res://.godot/imported/face_lower_00_07.png-0a15e214166e3279421c558cd337c4cd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_08.png b/exported_glb/BloodElfFemale_textures/face_lower_00_08.png new file mode 100644 index 0000000..870bc4d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_08.png.import new file mode 100644 index 0000000..3a177a6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ducjruc8ttlmj" +path="res://.godot/imported/face_lower_00_08.png-12fac00a92211e9da24a4cd7dfb1a3e8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_08.png" +dest_files=["res://.godot/imported/face_lower_00_08.png-12fac00a92211e9da24a4cd7dfb1a3e8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_09.png b/exported_glb/BloodElfFemale_textures/face_lower_00_09.png new file mode 100644 index 0000000..5b08909 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_09.png.import new file mode 100644 index 0000000..1ff6773 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckejgoj6wevto" +path="res://.godot/imported/face_lower_00_09.png-1bf534f03d09c4c94908848d4599bc91.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_09.png" +dest_files=["res://.godot/imported/face_lower_00_09.png-1bf534f03d09c4c94908848d4599bc91.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_10.png b/exported_glb/BloodElfFemale_textures/face_lower_00_10.png new file mode 100644 index 0000000..bd9688a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_10.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_10.png.import new file mode 100644 index 0000000..ca301ab --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://caiwqqkeuwch" +path="res://.godot/imported/face_lower_00_10.png-878b133623f76c69f671b5d125eb1344.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_10.png" +dest_files=["res://.godot/imported/face_lower_00_10.png-878b133623f76c69f671b5d125eb1344.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_11.png b/exported_glb/BloodElfFemale_textures/face_lower_00_11.png new file mode 100644 index 0000000..1b012fd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_11.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_11.png.import new file mode 100644 index 0000000..b66e4dd --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7p2uxhu7464j" +path="res://.godot/imported/face_lower_00_11.png-9d8d5c808637e84e47df27fac3b9496d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_11.png" +dest_files=["res://.godot/imported/face_lower_00_11.png-9d8d5c808637e84e47df27fac3b9496d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_12.png b/exported_glb/BloodElfFemale_textures/face_lower_00_12.png new file mode 100644 index 0000000..98dc280 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_00_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_00_12.png.import b/exported_glb/BloodElfFemale_textures/face_lower_00_12.png.import new file mode 100644 index 0000000..c1dd195 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_00_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctwdh21wmfw04" +path="res://.godot/imported/face_lower_00_12.png-67280568396d23adc1218860d63fb7b0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_00_12.png" +dest_files=["res://.godot/imported/face_lower_00_12.png-67280568396d23adc1218860d63fb7b0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_00.png b/exported_glb/BloodElfFemale_textures/face_lower_01_00.png new file mode 100644 index 0000000..9f39789 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_00.png.import new file mode 100644 index 0000000..1ed0d84 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://befp1t0ahx3kq" +path="res://.godot/imported/face_lower_01_00.png-215dbe2e43ecbe1632f57e40d85b71e3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_00.png" +dest_files=["res://.godot/imported/face_lower_01_00.png-215dbe2e43ecbe1632f57e40d85b71e3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_01.png b/exported_glb/BloodElfFemale_textures/face_lower_01_01.png new file mode 100644 index 0000000..c7e892b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_01.png.import new file mode 100644 index 0000000..eca14db --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://df31jd8modpwp" +path="res://.godot/imported/face_lower_01_01.png-12e03019449c96f2d183ad302fc3bec6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_01.png" +dest_files=["res://.godot/imported/face_lower_01_01.png-12e03019449c96f2d183ad302fc3bec6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_02.png b/exported_glb/BloodElfFemale_textures/face_lower_01_02.png new file mode 100644 index 0000000..950a2de Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_02.png.import new file mode 100644 index 0000000..cbaa278 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ebhleyk0qa2k" +path="res://.godot/imported/face_lower_01_02.png-12aed3ccfec8639f0949e16d3bf2b165.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_02.png" +dest_files=["res://.godot/imported/face_lower_01_02.png-12aed3ccfec8639f0949e16d3bf2b165.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_03.png b/exported_glb/BloodElfFemale_textures/face_lower_01_03.png new file mode 100644 index 0000000..df53e84 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_03.png.import new file mode 100644 index 0000000..7cf5ce1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkht7l6gg4r3m" +path="res://.godot/imported/face_lower_01_03.png-d118d7d8314adc55fc19da76235dcbca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_03.png" +dest_files=["res://.godot/imported/face_lower_01_03.png-d118d7d8314adc55fc19da76235dcbca.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_04.png b/exported_glb/BloodElfFemale_textures/face_lower_01_04.png new file mode 100644 index 0000000..5d03c45 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_04.png.import new file mode 100644 index 0000000..7cc64aa --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0hv6rw2uigw1" +path="res://.godot/imported/face_lower_01_04.png-5413355ccd8c0229b53d71977511df02.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_04.png" +dest_files=["res://.godot/imported/face_lower_01_04.png-5413355ccd8c0229b53d71977511df02.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_05.png b/exported_glb/BloodElfFemale_textures/face_lower_01_05.png new file mode 100644 index 0000000..3fef30b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_05.png.import new file mode 100644 index 0000000..1c427d2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://f13k7r67tc6s" +path="res://.godot/imported/face_lower_01_05.png-018acfb2eb5861f6c7d6fff657daec04.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_05.png" +dest_files=["res://.godot/imported/face_lower_01_05.png-018acfb2eb5861f6c7d6fff657daec04.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_06.png b/exported_glb/BloodElfFemale_textures/face_lower_01_06.png new file mode 100644 index 0000000..af84719 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_06.png.import new file mode 100644 index 0000000..b2ac107 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6exxcl4t4way" +path="res://.godot/imported/face_lower_01_06.png-186fdded358b46411f84a6a132a2a1c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_06.png" +dest_files=["res://.godot/imported/face_lower_01_06.png-186fdded358b46411f84a6a132a2a1c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_07.png b/exported_glb/BloodElfFemale_textures/face_lower_01_07.png new file mode 100644 index 0000000..3c1d555 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_07.png.import new file mode 100644 index 0000000..b654062 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://waq2x8jf3xli" +path="res://.godot/imported/face_lower_01_07.png-9052d751ed01e5aff8a7de79101544b6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_07.png" +dest_files=["res://.godot/imported/face_lower_01_07.png-9052d751ed01e5aff8a7de79101544b6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_08.png b/exported_glb/BloodElfFemale_textures/face_lower_01_08.png new file mode 100644 index 0000000..43f986b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_08.png.import new file mode 100644 index 0000000..45ed66f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jlkna41didhf" +path="res://.godot/imported/face_lower_01_08.png-f18dd8d6ec81c37fc334c2595efc576d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_08.png" +dest_files=["res://.godot/imported/face_lower_01_08.png-f18dd8d6ec81c37fc334c2595efc576d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_09.png b/exported_glb/BloodElfFemale_textures/face_lower_01_09.png new file mode 100644 index 0000000..ad74ca5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_01_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_01_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_01_09.png.import new file mode 100644 index 0000000..01be9da --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_01_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dn6q7maum4fia" +path="res://.godot/imported/face_lower_01_09.png-caba5d6fff9c54be3f3c7137e853c471.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_01_09.png" +dest_files=["res://.godot/imported/face_lower_01_09.png-caba5d6fff9c54be3f3c7137e853c471.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_00.png b/exported_glb/BloodElfFemale_textures/face_lower_02_00.png new file mode 100644 index 0000000..9f09f90 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_00.png.import new file mode 100644 index 0000000..f583a51 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bebs2g42si2vn" +path="res://.godot/imported/face_lower_02_00.png-68e2702ad72042b72a3398ba7ef6d719.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_00.png" +dest_files=["res://.godot/imported/face_lower_02_00.png-68e2702ad72042b72a3398ba7ef6d719.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_01.png b/exported_glb/BloodElfFemale_textures/face_lower_02_01.png new file mode 100644 index 0000000..c7800ea Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_01.png.import new file mode 100644 index 0000000..dfd5047 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgh865wvtt5x0" +path="res://.godot/imported/face_lower_02_01.png-b577ad7674c39736144f82162fcd7128.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_01.png" +dest_files=["res://.godot/imported/face_lower_02_01.png-b577ad7674c39736144f82162fcd7128.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_02.png b/exported_glb/BloodElfFemale_textures/face_lower_02_02.png new file mode 100644 index 0000000..a8f0c41 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_02.png.import new file mode 100644 index 0000000..a379587 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://odwrutr0qxh5" +path="res://.godot/imported/face_lower_02_02.png-9afb8ca9ae0737f6ae3d112057573b48.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_02.png" +dest_files=["res://.godot/imported/face_lower_02_02.png-9afb8ca9ae0737f6ae3d112057573b48.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_03.png b/exported_glb/BloodElfFemale_textures/face_lower_02_03.png new file mode 100644 index 0000000..75f06f3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_03.png.import new file mode 100644 index 0000000..fbcc054 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmkjl0h7gqe2t" +path="res://.godot/imported/face_lower_02_03.png-e2faf35fe5ba2652d0f858a389dad498.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_03.png" +dest_files=["res://.godot/imported/face_lower_02_03.png-e2faf35fe5ba2652d0f858a389dad498.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_04.png b/exported_glb/BloodElfFemale_textures/face_lower_02_04.png new file mode 100644 index 0000000..8ecd636 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_04.png.import new file mode 100644 index 0000000..2e4be96 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cknvyuosyb4on" +path="res://.godot/imported/face_lower_02_04.png-8fcad97e37e49c38c433de744434e01e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_04.png" +dest_files=["res://.godot/imported/face_lower_02_04.png-8fcad97e37e49c38c433de744434e01e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_05.png b/exported_glb/BloodElfFemale_textures/face_lower_02_05.png new file mode 100644 index 0000000..db89021 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_05.png.import new file mode 100644 index 0000000..0aace45 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bun1g2ptkfyiq" +path="res://.godot/imported/face_lower_02_05.png-041bae345c5c8ed9a75b4cb6a80c9b6b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_05.png" +dest_files=["res://.godot/imported/face_lower_02_05.png-041bae345c5c8ed9a75b4cb6a80c9b6b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_06.png b/exported_glb/BloodElfFemale_textures/face_lower_02_06.png new file mode 100644 index 0000000..6f9dd35 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_06.png.import new file mode 100644 index 0000000..9b774ba --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bw13fnydvbdaj" +path="res://.godot/imported/face_lower_02_06.png-b0b2205b65b48bff278de38fe783c255.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_06.png" +dest_files=["res://.godot/imported/face_lower_02_06.png-b0b2205b65b48bff278de38fe783c255.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_07.png b/exported_glb/BloodElfFemale_textures/face_lower_02_07.png new file mode 100644 index 0000000..78bc3de Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_07.png.import new file mode 100644 index 0000000..7f383d6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6n6a2ycwm25q" +path="res://.godot/imported/face_lower_02_07.png-23d80ffc52e88e30e516a1f0b75be6fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_07.png" +dest_files=["res://.godot/imported/face_lower_02_07.png-23d80ffc52e88e30e516a1f0b75be6fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_08.png b/exported_glb/BloodElfFemale_textures/face_lower_02_08.png new file mode 100644 index 0000000..55cc576 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_08.png.import new file mode 100644 index 0000000..9a3989a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmnem56pxfks1" +path="res://.godot/imported/face_lower_02_08.png-58b31ce3886f8db0fb3f8a9d1b368fca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_08.png" +dest_files=["res://.godot/imported/face_lower_02_08.png-58b31ce3886f8db0fb3f8a9d1b368fca.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_09.png b/exported_glb/BloodElfFemale_textures/face_lower_02_09.png new file mode 100644 index 0000000..b31de7a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_02_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_02_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_02_09.png.import new file mode 100644 index 0000000..17967b8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_02_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdy7by3gijs46" +path="res://.godot/imported/face_lower_02_09.png-677462bb8a295d2b521f93c933a85c46.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_02_09.png" +dest_files=["res://.godot/imported/face_lower_02_09.png-677462bb8a295d2b521f93c933a85c46.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_00.png b/exported_glb/BloodElfFemale_textures/face_lower_03_00.png new file mode 100644 index 0000000..344f746 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_00.png.import new file mode 100644 index 0000000..ddcee6d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b80t15fq1h2hq" +path="res://.godot/imported/face_lower_03_00.png-c24c0ce17542b5c29d4980e56e9be0d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_00.png" +dest_files=["res://.godot/imported/face_lower_03_00.png-c24c0ce17542b5c29d4980e56e9be0d2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_01.png b/exported_glb/BloodElfFemale_textures/face_lower_03_01.png new file mode 100644 index 0000000..bf5465e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_01.png.import new file mode 100644 index 0000000..13b8de8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://daufph6fdd73" +path="res://.godot/imported/face_lower_03_01.png-7b70a3d04ef7cf20cc336539fb332eb0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_01.png" +dest_files=["res://.godot/imported/face_lower_03_01.png-7b70a3d04ef7cf20cc336539fb332eb0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_02.png b/exported_glb/BloodElfFemale_textures/face_lower_03_02.png new file mode 100644 index 0000000..9916360 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_02.png.import new file mode 100644 index 0000000..1e917f1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dush5gubg2yn8" +path="res://.godot/imported/face_lower_03_02.png-c15777d13ae3bb960711bf34a7ffc0bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_02.png" +dest_files=["res://.godot/imported/face_lower_03_02.png-c15777d13ae3bb960711bf34a7ffc0bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_03.png b/exported_glb/BloodElfFemale_textures/face_lower_03_03.png new file mode 100644 index 0000000..4e1a484 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_03.png.import new file mode 100644 index 0000000..d6150e3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8kondh2gstnn" +path="res://.godot/imported/face_lower_03_03.png-51d17bd54f34749ebbc48d2edf22de31.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_03.png" +dest_files=["res://.godot/imported/face_lower_03_03.png-51d17bd54f34749ebbc48d2edf22de31.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_04.png b/exported_glb/BloodElfFemale_textures/face_lower_03_04.png new file mode 100644 index 0000000..eb7d860 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_04.png.import new file mode 100644 index 0000000..ebcc3e5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ceeqxbwrhi76u" +path="res://.godot/imported/face_lower_03_04.png-cf889a19fbc357201de5ac1e8cb17025.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_04.png" +dest_files=["res://.godot/imported/face_lower_03_04.png-cf889a19fbc357201de5ac1e8cb17025.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_05.png b/exported_glb/BloodElfFemale_textures/face_lower_03_05.png new file mode 100644 index 0000000..ab4cf5a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_05.png.import new file mode 100644 index 0000000..5694137 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpxerofpqrqjv" +path="res://.godot/imported/face_lower_03_05.png-8458dd642ac786301c86b502ac8542f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_05.png" +dest_files=["res://.godot/imported/face_lower_03_05.png-8458dd642ac786301c86b502ac8542f2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_06.png b/exported_glb/BloodElfFemale_textures/face_lower_03_06.png new file mode 100644 index 0000000..48b31c8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_06.png.import new file mode 100644 index 0000000..2343998 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dubeg8d07yvla" +path="res://.godot/imported/face_lower_03_06.png-7ca20b330d534ec155acca8ce2d340de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_06.png" +dest_files=["res://.godot/imported/face_lower_03_06.png-7ca20b330d534ec155acca8ce2d340de.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_07.png b/exported_glb/BloodElfFemale_textures/face_lower_03_07.png new file mode 100644 index 0000000..9a438be Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_07.png.import new file mode 100644 index 0000000..01f0a6c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfqj3j04r6ntp" +path="res://.godot/imported/face_lower_03_07.png-46c8369582cb3056382c2b838d366bc2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_07.png" +dest_files=["res://.godot/imported/face_lower_03_07.png-46c8369582cb3056382c2b838d366bc2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_08.png b/exported_glb/BloodElfFemale_textures/face_lower_03_08.png new file mode 100644 index 0000000..f8c761c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_08.png.import new file mode 100644 index 0000000..1b6eaae --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0dd4loqna5mv" +path="res://.godot/imported/face_lower_03_08.png-4d86c50434d32af8e9222e6087c1c253.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_08.png" +dest_files=["res://.godot/imported/face_lower_03_08.png-4d86c50434d32af8e9222e6087c1c253.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_09.png b/exported_glb/BloodElfFemale_textures/face_lower_03_09.png new file mode 100644 index 0000000..6162238 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_09.png.import new file mode 100644 index 0000000..e75fdea --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkfdml16d3o4" +path="res://.godot/imported/face_lower_03_09.png-e0362f4ff0060f7abafeef3a9c03083a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_09.png" +dest_files=["res://.godot/imported/face_lower_03_09.png-e0362f4ff0060f7abafeef3a9c03083a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_10.png b/exported_glb/BloodElfFemale_textures/face_lower_03_10.png new file mode 100644 index 0000000..576fd9a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_10.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_10.png.import new file mode 100644 index 0000000..84feff2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1a0k5oud27wc" +path="res://.godot/imported/face_lower_03_10.png-cd42277a34f6cd45901b9e06d710abd0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_10.png" +dest_files=["res://.godot/imported/face_lower_03_10.png-cd42277a34f6cd45901b9e06d710abd0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_11.png b/exported_glb/BloodElfFemale_textures/face_lower_03_11.png new file mode 100644 index 0000000..a91976b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_11.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_11.png.import new file mode 100644 index 0000000..80e1a46 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8gqu38tdmbef" +path="res://.godot/imported/face_lower_03_11.png-b0113279722b60092f3eeee06453c6d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_11.png" +dest_files=["res://.godot/imported/face_lower_03_11.png-b0113279722b60092f3eeee06453c6d2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_12.png b/exported_glb/BloodElfFemale_textures/face_lower_03_12.png new file mode 100644 index 0000000..359222f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_03_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_03_12.png.import b/exported_glb/BloodElfFemale_textures/face_lower_03_12.png.import new file mode 100644 index 0000000..7b5a316 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_03_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cu57c5p3su2it" +path="res://.godot/imported/face_lower_03_12.png-b36a2f08d4cc30f4c9dc46459e3cc855.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_03_12.png" +dest_files=["res://.godot/imported/face_lower_03_12.png-b36a2f08d4cc30f4c9dc46459e3cc855.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_00.png b/exported_glb/BloodElfFemale_textures/face_lower_04_00.png new file mode 100644 index 0000000..8093450 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_00.png.import new file mode 100644 index 0000000..c55ca6d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bq8k83dc87q8h" +path="res://.godot/imported/face_lower_04_00.png-d0e69673628146646db0b7e144bcceab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_00.png" +dest_files=["res://.godot/imported/face_lower_04_00.png-d0e69673628146646db0b7e144bcceab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_01.png b/exported_glb/BloodElfFemale_textures/face_lower_04_01.png new file mode 100644 index 0000000..cf23370 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_01.png.import new file mode 100644 index 0000000..5254b26 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbmgcqf1k524b" +path="res://.godot/imported/face_lower_04_01.png-74d000fa91ba3a75c16e9249013212c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_01.png" +dest_files=["res://.godot/imported/face_lower_04_01.png-74d000fa91ba3a75c16e9249013212c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_02.png b/exported_glb/BloodElfFemale_textures/face_lower_04_02.png new file mode 100644 index 0000000..33bd5d6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_02.png.import new file mode 100644 index 0000000..f8039d7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2o1t64uum4rx" +path="res://.godot/imported/face_lower_04_02.png-44fe899c3f6ed5013abfbe782980af39.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_02.png" +dest_files=["res://.godot/imported/face_lower_04_02.png-44fe899c3f6ed5013abfbe782980af39.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_03.png b/exported_glb/BloodElfFemale_textures/face_lower_04_03.png new file mode 100644 index 0000000..0462057 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_03.png.import new file mode 100644 index 0000000..aa6ed0e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpu71k0sogkwm" +path="res://.godot/imported/face_lower_04_03.png-693e5cf2989ca43f667ca002f75bb13e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_03.png" +dest_files=["res://.godot/imported/face_lower_04_03.png-693e5cf2989ca43f667ca002f75bb13e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_04.png b/exported_glb/BloodElfFemale_textures/face_lower_04_04.png new file mode 100644 index 0000000..3f4931c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_04.png.import new file mode 100644 index 0000000..02dbc19 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8irfdsdlvwie" +path="res://.godot/imported/face_lower_04_04.png-34186d864389d9364e228c98af383965.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_04.png" +dest_files=["res://.godot/imported/face_lower_04_04.png-34186d864389d9364e228c98af383965.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_05.png b/exported_glb/BloodElfFemale_textures/face_lower_04_05.png new file mode 100644 index 0000000..1f6a4af Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_05.png.import new file mode 100644 index 0000000..04691d7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1mcp7smfyuj3" +path="res://.godot/imported/face_lower_04_05.png-94f40213c3ebcacbc458f63011935a0e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_05.png" +dest_files=["res://.godot/imported/face_lower_04_05.png-94f40213c3ebcacbc458f63011935a0e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_06.png b/exported_glb/BloodElfFemale_textures/face_lower_04_06.png new file mode 100644 index 0000000..c0a8e0e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_06.png.import new file mode 100644 index 0000000..163372b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wyfu1aiqkqyb" +path="res://.godot/imported/face_lower_04_06.png-4af66c1e93686a2bafb89d8a072c1506.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_06.png" +dest_files=["res://.godot/imported/face_lower_04_06.png-4af66c1e93686a2bafb89d8a072c1506.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_07.png b/exported_glb/BloodElfFemale_textures/face_lower_04_07.png new file mode 100644 index 0000000..fdc722e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_07.png.import new file mode 100644 index 0000000..dfdc446 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbkvripo363c5" +path="res://.godot/imported/face_lower_04_07.png-4cd0882154dfe0927de5e4d29ae7d031.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_07.png" +dest_files=["res://.godot/imported/face_lower_04_07.png-4cd0882154dfe0927de5e4d29ae7d031.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_08.png b/exported_glb/BloodElfFemale_textures/face_lower_04_08.png new file mode 100644 index 0000000..4d6958d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_08.png.import new file mode 100644 index 0000000..e371f79 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v6supc0rcel6" +path="res://.godot/imported/face_lower_04_08.png-722f00f46838180bee89122fa8f8a0c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_08.png" +dest_files=["res://.godot/imported/face_lower_04_08.png-722f00f46838180bee89122fa8f8a0c7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_09.png b/exported_glb/BloodElfFemale_textures/face_lower_04_09.png new file mode 100644 index 0000000..6e653b6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_04_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_04_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_04_09.png.import new file mode 100644 index 0000000..d2d4d24 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_04_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6digp6cypq3k" +path="res://.godot/imported/face_lower_04_09.png-2a9254d7056e512c4d782f9553407c84.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_04_09.png" +dest_files=["res://.godot/imported/face_lower_04_09.png-2a9254d7056e512c4d782f9553407c84.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_00.png b/exported_glb/BloodElfFemale_textures/face_lower_05_00.png new file mode 100644 index 0000000..4fff774 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_00.png.import new file mode 100644 index 0000000..b1a2f76 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wqie0gauh3km" +path="res://.godot/imported/face_lower_05_00.png-6f2b8f9682d19e905972b3b03400cfd5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_00.png" +dest_files=["res://.godot/imported/face_lower_05_00.png-6f2b8f9682d19e905972b3b03400cfd5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_01.png b/exported_glb/BloodElfFemale_textures/face_lower_05_01.png new file mode 100644 index 0000000..de3ebc5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_01.png.import new file mode 100644 index 0000000..6f4ee2d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfun0hiyytqex" +path="res://.godot/imported/face_lower_05_01.png-025ec55c288e3ecad1155aa1c415f07a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_01.png" +dest_files=["res://.godot/imported/face_lower_05_01.png-025ec55c288e3ecad1155aa1c415f07a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_02.png b/exported_glb/BloodElfFemale_textures/face_lower_05_02.png new file mode 100644 index 0000000..0ea4ac4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_02.png.import new file mode 100644 index 0000000..57b725e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck4s1smkirwxk" +path="res://.godot/imported/face_lower_05_02.png-081137ba53a3aa2612c8cee9c0fd7277.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_02.png" +dest_files=["res://.godot/imported/face_lower_05_02.png-081137ba53a3aa2612c8cee9c0fd7277.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_03.png b/exported_glb/BloodElfFemale_textures/face_lower_05_03.png new file mode 100644 index 0000000..7ce7648 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_03.png.import new file mode 100644 index 0000000..abc186c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs2csn5o6igwp" +path="res://.godot/imported/face_lower_05_03.png-9b9e4b09b37ab4a79a825f00e43eb9c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_03.png" +dest_files=["res://.godot/imported/face_lower_05_03.png-9b9e4b09b37ab4a79a825f00e43eb9c0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_04.png b/exported_glb/BloodElfFemale_textures/face_lower_05_04.png new file mode 100644 index 0000000..87f51a0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_04.png.import new file mode 100644 index 0000000..1cd81bd --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://42mbk3mf7wef" +path="res://.godot/imported/face_lower_05_04.png-ad989bd42162b57bd29c44b39a840ace.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_04.png" +dest_files=["res://.godot/imported/face_lower_05_04.png-ad989bd42162b57bd29c44b39a840ace.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_05.png b/exported_glb/BloodElfFemale_textures/face_lower_05_05.png new file mode 100644 index 0000000..ac7456b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_05.png.import new file mode 100644 index 0000000..4376961 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfnyd57rs61k3" +path="res://.godot/imported/face_lower_05_05.png-a499880e47e0d59ddee365a44bb344f1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_05.png" +dest_files=["res://.godot/imported/face_lower_05_05.png-a499880e47e0d59ddee365a44bb344f1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_06.png b/exported_glb/BloodElfFemale_textures/face_lower_05_06.png new file mode 100644 index 0000000..9fab7e9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_06.png.import new file mode 100644 index 0000000..e0f69ef --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dd70l68ogl2wh" +path="res://.godot/imported/face_lower_05_06.png-1962e44a24da8ed45582d2a485b66d90.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_06.png" +dest_files=["res://.godot/imported/face_lower_05_06.png-1962e44a24da8ed45582d2a485b66d90.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_07.png b/exported_glb/BloodElfFemale_textures/face_lower_05_07.png new file mode 100644 index 0000000..81f7a79 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_07.png.import new file mode 100644 index 0000000..f66bd3b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c411bg7rbh1t2" +path="res://.godot/imported/face_lower_05_07.png-59a3ba928b91199c578144a764fc5ccb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_07.png" +dest_files=["res://.godot/imported/face_lower_05_07.png-59a3ba928b91199c578144a764fc5ccb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_08.png b/exported_glb/BloodElfFemale_textures/face_lower_05_08.png new file mode 100644 index 0000000..cf49a5a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_08.png.import new file mode 100644 index 0000000..5840a0a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bogds4ffsr4tm" +path="res://.godot/imported/face_lower_05_08.png-fec867b3d4761560d0d6427481a01896.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_08.png" +dest_files=["res://.godot/imported/face_lower_05_08.png-fec867b3d4761560d0d6427481a01896.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_09.png b/exported_glb/BloodElfFemale_textures/face_lower_05_09.png new file mode 100644 index 0000000..3e2e91c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_05_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_05_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_05_09.png.import new file mode 100644 index 0000000..32165f4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_05_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ch7cxhl46hrxl" +path="res://.godot/imported/face_lower_05_09.png-05e8e6b2d69b6b0c004d466cb2db43a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_05_09.png" +dest_files=["res://.godot/imported/face_lower_05_09.png-05e8e6b2d69b6b0c004d466cb2db43a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_00.png b/exported_glb/BloodElfFemale_textures/face_lower_06_00.png new file mode 100644 index 0000000..cb56017 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_00.png.import new file mode 100644 index 0000000..59bee44 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byg7vg7lgivhc" +path="res://.godot/imported/face_lower_06_00.png-f50932ed495e68a4950d5783c833d131.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_00.png" +dest_files=["res://.godot/imported/face_lower_06_00.png-f50932ed495e68a4950d5783c833d131.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_01.png b/exported_glb/BloodElfFemale_textures/face_lower_06_01.png new file mode 100644 index 0000000..bad9efc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_01.png.import new file mode 100644 index 0000000..cff64d9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://81mhs4hxfn42" +path="res://.godot/imported/face_lower_06_01.png-65f8e46f6f19482dbdc069d372c709e0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_01.png" +dest_files=["res://.godot/imported/face_lower_06_01.png-65f8e46f6f19482dbdc069d372c709e0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_02.png b/exported_glb/BloodElfFemale_textures/face_lower_06_02.png new file mode 100644 index 0000000..f445d6a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_02.png.import new file mode 100644 index 0000000..48fbf53 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8gwpvgca4gxt" +path="res://.godot/imported/face_lower_06_02.png-145b47d30181a47d99e706cc7adf67d3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_02.png" +dest_files=["res://.godot/imported/face_lower_06_02.png-145b47d30181a47d99e706cc7adf67d3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_03.png b/exported_glb/BloodElfFemale_textures/face_lower_06_03.png new file mode 100644 index 0000000..ea7b8d0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_03.png.import new file mode 100644 index 0000000..855a44f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://du4ao6pnrddum" +path="res://.godot/imported/face_lower_06_03.png-f7c2230588a67be2ec87eb5b8ea03b2d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_03.png" +dest_files=["res://.godot/imported/face_lower_06_03.png-f7c2230588a67be2ec87eb5b8ea03b2d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_04.png b/exported_glb/BloodElfFemale_textures/face_lower_06_04.png new file mode 100644 index 0000000..0fbf2ee Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_04.png.import new file mode 100644 index 0000000..31f9bcb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb82fp4b1bkf1" +path="res://.godot/imported/face_lower_06_04.png-2a4b81b29c765c7911bbc920f25d9001.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_04.png" +dest_files=["res://.godot/imported/face_lower_06_04.png-2a4b81b29c765c7911bbc920f25d9001.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_05.png b/exported_glb/BloodElfFemale_textures/face_lower_06_05.png new file mode 100644 index 0000000..ad51d4a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_05.png.import new file mode 100644 index 0000000..68e4cdd --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg6q8xt1ubpmi" +path="res://.godot/imported/face_lower_06_05.png-da0f4d866239c2321697ccc558dc0c2e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_05.png" +dest_files=["res://.godot/imported/face_lower_06_05.png-da0f4d866239c2321697ccc558dc0c2e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_06.png b/exported_glb/BloodElfFemale_textures/face_lower_06_06.png new file mode 100644 index 0000000..ad353e6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_06.png.import new file mode 100644 index 0000000..0ec767a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3fhjnkvseldi" +path="res://.godot/imported/face_lower_06_06.png-044c3dae827527a90c3e057f9a946447.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_06.png" +dest_files=["res://.godot/imported/face_lower_06_06.png-044c3dae827527a90c3e057f9a946447.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_07.png b/exported_glb/BloodElfFemale_textures/face_lower_06_07.png new file mode 100644 index 0000000..63c1888 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_07.png.import new file mode 100644 index 0000000..43189c1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cgyyg5shjoxrv" +path="res://.godot/imported/face_lower_06_07.png-5a9bd8fff26a0a708e9e464b014a773c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_07.png" +dest_files=["res://.godot/imported/face_lower_06_07.png-5a9bd8fff26a0a708e9e464b014a773c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_08.png b/exported_glb/BloodElfFemale_textures/face_lower_06_08.png new file mode 100644 index 0000000..66d7bc8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_08.png.import new file mode 100644 index 0000000..eb7d817 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n1artlhe8i8y" +path="res://.godot/imported/face_lower_06_08.png-09e49c8e74954e1663f6f6bd37883f6f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_08.png" +dest_files=["res://.godot/imported/face_lower_06_08.png-09e49c8e74954e1663f6f6bd37883f6f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_09.png b/exported_glb/BloodElfFemale_textures/face_lower_06_09.png new file mode 100644 index 0000000..9b4882d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_06_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_06_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_06_09.png.import new file mode 100644 index 0000000..8114332 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_06_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tfc1g4w82gsv" +path="res://.godot/imported/face_lower_06_09.png-398787d401425f53e8f1304e938e1406.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_06_09.png" +dest_files=["res://.godot/imported/face_lower_06_09.png-398787d401425f53e8f1304e938e1406.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_00.png b/exported_glb/BloodElfFemale_textures/face_lower_07_00.png new file mode 100644 index 0000000..e694aec Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_00.png.import new file mode 100644 index 0000000..d5c3c69 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5lw5fkpcmb6x" +path="res://.godot/imported/face_lower_07_00.png-fc11ec80f06e5d0f736c94a75e3d4190.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_00.png" +dest_files=["res://.godot/imported/face_lower_07_00.png-fc11ec80f06e5d0f736c94a75e3d4190.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_01.png b/exported_glb/BloodElfFemale_textures/face_lower_07_01.png new file mode 100644 index 0000000..109dcdf Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_01.png.import new file mode 100644 index 0000000..43b8d91 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8ofcv0ddnrh3" +path="res://.godot/imported/face_lower_07_01.png-ca45c3ce3e0fd3484cbe825ef5341635.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_01.png" +dest_files=["res://.godot/imported/face_lower_07_01.png-ca45c3ce3e0fd3484cbe825ef5341635.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_02.png b/exported_glb/BloodElfFemale_textures/face_lower_07_02.png new file mode 100644 index 0000000..1d3e06d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_02.png.import new file mode 100644 index 0000000..6ef6bb4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dio1w6wy062wl" +path="res://.godot/imported/face_lower_07_02.png-d7b8db0b558e070afab99b62a6724e48.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_02.png" +dest_files=["res://.godot/imported/face_lower_07_02.png-d7b8db0b558e070afab99b62a6724e48.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_03.png b/exported_glb/BloodElfFemale_textures/face_lower_07_03.png new file mode 100644 index 0000000..431c89b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_03.png.import new file mode 100644 index 0000000..a20cd23 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnug3s7hhlcss" +path="res://.godot/imported/face_lower_07_03.png-d4cfbb1b0d1f42d14a516226f9dface9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_03.png" +dest_files=["res://.godot/imported/face_lower_07_03.png-d4cfbb1b0d1f42d14a516226f9dface9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_04.png b/exported_glb/BloodElfFemale_textures/face_lower_07_04.png new file mode 100644 index 0000000..2f3abf3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_04.png.import new file mode 100644 index 0000000..6cccc2b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://g4pcf75fs5bg" +path="res://.godot/imported/face_lower_07_04.png-5508f002af45ed9fe55115e8aa449128.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_04.png" +dest_files=["res://.godot/imported/face_lower_07_04.png-5508f002af45ed9fe55115e8aa449128.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_05.png b/exported_glb/BloodElfFemale_textures/face_lower_07_05.png new file mode 100644 index 0000000..6aa49e8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_05.png.import new file mode 100644 index 0000000..f072564 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckgs64m0b4bwy" +path="res://.godot/imported/face_lower_07_05.png-9b53c91ec15ffc4d2815c58ef12fed66.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_05.png" +dest_files=["res://.godot/imported/face_lower_07_05.png-9b53c91ec15ffc4d2815c58ef12fed66.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_06.png b/exported_glb/BloodElfFemale_textures/face_lower_07_06.png new file mode 100644 index 0000000..01e9ba9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_06.png.import new file mode 100644 index 0000000..e8daf95 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cod7erdtawr4v" +path="res://.godot/imported/face_lower_07_06.png-da1bd6366d7c282483061e977ab9f268.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_06.png" +dest_files=["res://.godot/imported/face_lower_07_06.png-da1bd6366d7c282483061e977ab9f268.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_07.png b/exported_glb/BloodElfFemale_textures/face_lower_07_07.png new file mode 100644 index 0000000..83b4395 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_07.png.import new file mode 100644 index 0000000..5853c48 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8pgdfwbfa3on" +path="res://.godot/imported/face_lower_07_07.png-4dac278545588b376c0a7aa96d8ec3a6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_07.png" +dest_files=["res://.godot/imported/face_lower_07_07.png-4dac278545588b376c0a7aa96d8ec3a6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_08.png b/exported_glb/BloodElfFemale_textures/face_lower_07_08.png new file mode 100644 index 0000000..3c59325 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_08.png.import new file mode 100644 index 0000000..44f3c70 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cg6k7353ipfp2" +path="res://.godot/imported/face_lower_07_08.png-fdbf44d5cb61ce8902d71e447f9afdf5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_08.png" +dest_files=["res://.godot/imported/face_lower_07_08.png-fdbf44d5cb61ce8902d71e447f9afdf5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_09.png b/exported_glb/BloodElfFemale_textures/face_lower_07_09.png new file mode 100644 index 0000000..8053cab Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_07_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_07_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_07_09.png.import new file mode 100644 index 0000000..363440d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_07_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnbhwigy7iwvv" +path="res://.godot/imported/face_lower_07_09.png-ac2776f710867d2afd8a9f414c71ac17.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_07_09.png" +dest_files=["res://.godot/imported/face_lower_07_09.png-ac2776f710867d2afd8a9f414c71ac17.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_00.png b/exported_glb/BloodElfFemale_textures/face_lower_08_00.png new file mode 100644 index 0000000..df5c6f7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_00.png.import new file mode 100644 index 0000000..8734b05 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do7oiuapjos2d" +path="res://.godot/imported/face_lower_08_00.png-fa9855bb03aa7846a741c2f2f3bf2274.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_00.png" +dest_files=["res://.godot/imported/face_lower_08_00.png-fa9855bb03aa7846a741c2f2f3bf2274.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_01.png b/exported_glb/BloodElfFemale_textures/face_lower_08_01.png new file mode 100644 index 0000000..8f7d8db Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_01.png.import new file mode 100644 index 0000000..e36a5d1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o3fwx632bny3" +path="res://.godot/imported/face_lower_08_01.png-57196a542c6f6eef8b1e8c2e097a8860.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_01.png" +dest_files=["res://.godot/imported/face_lower_08_01.png-57196a542c6f6eef8b1e8c2e097a8860.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_02.png b/exported_glb/BloodElfFemale_textures/face_lower_08_02.png new file mode 100644 index 0000000..08335f2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_02.png.import new file mode 100644 index 0000000..1a3eda2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cp71bll2osctt" +path="res://.godot/imported/face_lower_08_02.png-2f341420678e3fbc7adff1b2446dcc0b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_02.png" +dest_files=["res://.godot/imported/face_lower_08_02.png-2f341420678e3fbc7adff1b2446dcc0b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_03.png b/exported_glb/BloodElfFemale_textures/face_lower_08_03.png new file mode 100644 index 0000000..337c71c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_03.png.import new file mode 100644 index 0000000..a05bef7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://coxy0wkfegeuv" +path="res://.godot/imported/face_lower_08_03.png-db42101c32b5450f7f3a1419634eea9a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_03.png" +dest_files=["res://.godot/imported/face_lower_08_03.png-db42101c32b5450f7f3a1419634eea9a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_04.png b/exported_glb/BloodElfFemale_textures/face_lower_08_04.png new file mode 100644 index 0000000..ec3c417 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_04.png.import new file mode 100644 index 0000000..7d17941 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xw3v6kwb0wwj" +path="res://.godot/imported/face_lower_08_04.png-b7b3721c6e56a6783c656d4e060df595.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_04.png" +dest_files=["res://.godot/imported/face_lower_08_04.png-b7b3721c6e56a6783c656d4e060df595.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_05.png b/exported_glb/BloodElfFemale_textures/face_lower_08_05.png new file mode 100644 index 0000000..4ece9b4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_05.png.import new file mode 100644 index 0000000..2755311 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqlagdvbpyx0r" +path="res://.godot/imported/face_lower_08_05.png-8c2d6aac522558de91b4e8f4484f73ef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_05.png" +dest_files=["res://.godot/imported/face_lower_08_05.png-8c2d6aac522558de91b4e8f4484f73ef.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_06.png b/exported_glb/BloodElfFemale_textures/face_lower_08_06.png new file mode 100644 index 0000000..b9c74c7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_06.png.import new file mode 100644 index 0000000..158c250 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwc0ve05u2mod" +path="res://.godot/imported/face_lower_08_06.png-7d8d52fe109cf9c6337e83d65da344e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_06.png" +dest_files=["res://.godot/imported/face_lower_08_06.png-7d8d52fe109cf9c6337e83d65da344e6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_07.png b/exported_glb/BloodElfFemale_textures/face_lower_08_07.png new file mode 100644 index 0000000..efe6f2b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_07.png.import new file mode 100644 index 0000000..433af71 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6fa8y6w0oa3h" +path="res://.godot/imported/face_lower_08_07.png-0937b4da31e03cddb4736b9406289eea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_07.png" +dest_files=["res://.godot/imported/face_lower_08_07.png-0937b4da31e03cddb4736b9406289eea.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_08.png b/exported_glb/BloodElfFemale_textures/face_lower_08_08.png new file mode 100644 index 0000000..0ec64f4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_08.png.import new file mode 100644 index 0000000..d3d4a88 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7va8qkwobslg" +path="res://.godot/imported/face_lower_08_08.png-5968abd446de3d0dc9bbe10ca9efd131.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_08.png" +dest_files=["res://.godot/imported/face_lower_08_08.png-5968abd446de3d0dc9bbe10ca9efd131.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_09.png b/exported_glb/BloodElfFemale_textures/face_lower_08_09.png new file mode 100644 index 0000000..ac91507 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_09.png.import new file mode 100644 index 0000000..fb95964 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hhdtpm2fayl7" +path="res://.godot/imported/face_lower_08_09.png-735062d61aa2ca7126201b4bc9cea965.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_09.png" +dest_files=["res://.godot/imported/face_lower_08_09.png-735062d61aa2ca7126201b4bc9cea965.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_10.png b/exported_glb/BloodElfFemale_textures/face_lower_08_10.png new file mode 100644 index 0000000..08b5c03 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_10.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_10.png.import new file mode 100644 index 0000000..4cbb29f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsu4824wup210" +path="res://.godot/imported/face_lower_08_10.png-6fffd1a8554e765ec6789dbc6465063d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_10.png" +dest_files=["res://.godot/imported/face_lower_08_10.png-6fffd1a8554e765ec6789dbc6465063d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_11.png b/exported_glb/BloodElfFemale_textures/face_lower_08_11.png new file mode 100644 index 0000000..49030fb Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_11.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_11.png.import new file mode 100644 index 0000000..5a913e8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1eny0bjudl6d" +path="res://.godot/imported/face_lower_08_11.png-31ae86fd81c0ec207a6b8b86e0f46503.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_11.png" +dest_files=["res://.godot/imported/face_lower_08_11.png-31ae86fd81c0ec207a6b8b86e0f46503.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_12.png b/exported_glb/BloodElfFemale_textures/face_lower_08_12.png new file mode 100644 index 0000000..02cc279 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_08_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_08_12.png.import b/exported_glb/BloodElfFemale_textures/face_lower_08_12.png.import new file mode 100644 index 0000000..6a9a762 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_08_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmew7dihck7vw" +path="res://.godot/imported/face_lower_08_12.png-7e2c7db3298ba3d3417f0accd606a3de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_08_12.png" +dest_files=["res://.godot/imported/face_lower_08_12.png-7e2c7db3298ba3d3417f0accd606a3de.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_00.png b/exported_glb/BloodElfFemale_textures/face_lower_09_00.png new file mode 100644 index 0000000..a1a2c84 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_00.png.import new file mode 100644 index 0000000..224fb8c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://co4rt2h3xtoaq" +path="res://.godot/imported/face_lower_09_00.png-99ac50d5fd68a59f3545149c1a77503f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_00.png" +dest_files=["res://.godot/imported/face_lower_09_00.png-99ac50d5fd68a59f3545149c1a77503f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_01.png b/exported_glb/BloodElfFemale_textures/face_lower_09_01.png new file mode 100644 index 0000000..4293739 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_01.png.import new file mode 100644 index 0000000..3b2e5b5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3iof5rh7xput" +path="res://.godot/imported/face_lower_09_01.png-126ae52229881dff56fac2371ecb8abb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_01.png" +dest_files=["res://.godot/imported/face_lower_09_01.png-126ae52229881dff56fac2371ecb8abb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_02.png b/exported_glb/BloodElfFemale_textures/face_lower_09_02.png new file mode 100644 index 0000000..c282e0a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_02.png.import new file mode 100644 index 0000000..4def9bf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbrc8fnlfm75y" +path="res://.godot/imported/face_lower_09_02.png-9b18e2071a6d7c066681c2e488721dc3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_02.png" +dest_files=["res://.godot/imported/face_lower_09_02.png-9b18e2071a6d7c066681c2e488721dc3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_03.png b/exported_glb/BloodElfFemale_textures/face_lower_09_03.png new file mode 100644 index 0000000..4918e2c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_03.png.import new file mode 100644 index 0000000..5a366b7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://doembelolsn5q" +path="res://.godot/imported/face_lower_09_03.png-51c0edbdf6db4e00c075cb074ef97c1c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_03.png" +dest_files=["res://.godot/imported/face_lower_09_03.png-51c0edbdf6db4e00c075cb074ef97c1c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_04.png b/exported_glb/BloodElfFemale_textures/face_lower_09_04.png new file mode 100644 index 0000000..2dcf350 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_04.png.import new file mode 100644 index 0000000..b7d956f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3k8ct1xsrqwa" +path="res://.godot/imported/face_lower_09_04.png-7fd2ca8a698132940a1f614f2fd04e3b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_04.png" +dest_files=["res://.godot/imported/face_lower_09_04.png-7fd2ca8a698132940a1f614f2fd04e3b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_05.png b/exported_glb/BloodElfFemale_textures/face_lower_09_05.png new file mode 100644 index 0000000..c52d667 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_05.png.import new file mode 100644 index 0000000..1de10aa --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7apejr7vx4yl" +path="res://.godot/imported/face_lower_09_05.png-5624872a3402e996c85da29ec54e409e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_05.png" +dest_files=["res://.godot/imported/face_lower_09_05.png-5624872a3402e996c85da29ec54e409e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_06.png b/exported_glb/BloodElfFemale_textures/face_lower_09_06.png new file mode 100644 index 0000000..dad494b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_06.png.import new file mode 100644 index 0000000..f175b27 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0d0dyhssdg3" +path="res://.godot/imported/face_lower_09_06.png-d6f6b0ba47e73af1d6511b8900a22506.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_06.png" +dest_files=["res://.godot/imported/face_lower_09_06.png-d6f6b0ba47e73af1d6511b8900a22506.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_07.png b/exported_glb/BloodElfFemale_textures/face_lower_09_07.png new file mode 100644 index 0000000..71987ec Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_07.png.import new file mode 100644 index 0000000..3454bd3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4a01hge5abwh" +path="res://.godot/imported/face_lower_09_07.png-077d6cc4811eb0feff537ce215da5eec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_07.png" +dest_files=["res://.godot/imported/face_lower_09_07.png-077d6cc4811eb0feff537ce215da5eec.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_08.png b/exported_glb/BloodElfFemale_textures/face_lower_09_08.png new file mode 100644 index 0000000..02c88aa Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_08.png.import new file mode 100644 index 0000000..835ec52 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://sppe8gamq16x" +path="res://.godot/imported/face_lower_09_08.png-810694bfb08a7ce8abe462926356cac7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_08.png" +dest_files=["res://.godot/imported/face_lower_09_08.png-810694bfb08a7ce8abe462926356cac7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_09.png b/exported_glb/BloodElfFemale_textures/face_lower_09_09.png new file mode 100644 index 0000000..237c818 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_09_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_09_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_09_09.png.import new file mode 100644 index 0000000..b5afc71 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_09_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5ibguhbqn4jj" +path="res://.godot/imported/face_lower_09_09.png-cc9d9b8fb6f256d95a1622ac90eb34a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_09_09.png" +dest_files=["res://.godot/imported/face_lower_09_09.png-cc9d9b8fb6f256d95a1622ac90eb34a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_00.png b/exported_glb/BloodElfFemale_textures/face_lower_10_00.png new file mode 100644 index 0000000..e820fd3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_00.png.import new file mode 100644 index 0000000..611d0cc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brac487diq73d" +path="res://.godot/imported/face_lower_10_00.png-aac286013e20bda7e9a17ff083b7d8b5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_00.png" +dest_files=["res://.godot/imported/face_lower_10_00.png-aac286013e20bda7e9a17ff083b7d8b5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_01.png b/exported_glb/BloodElfFemale_textures/face_lower_10_01.png new file mode 100644 index 0000000..e326b06 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_01.png.import new file mode 100644 index 0000000..319ce8f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0hnuiwn4kjt5" +path="res://.godot/imported/face_lower_10_01.png-4315b46a4c7cd025aa01e53633cf74bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_01.png" +dest_files=["res://.godot/imported/face_lower_10_01.png-4315b46a4c7cd025aa01e53633cf74bb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_02.png b/exported_glb/BloodElfFemale_textures/face_lower_10_02.png new file mode 100644 index 0000000..24ec167 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_02.png.import new file mode 100644 index 0000000..0cf46cd --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://uvuqiufiiuuk" +path="res://.godot/imported/face_lower_10_02.png-b281d9282c805ec40a770ad25dd00212.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_02.png" +dest_files=["res://.godot/imported/face_lower_10_02.png-b281d9282c805ec40a770ad25dd00212.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_03.png b/exported_glb/BloodElfFemale_textures/face_lower_10_03.png new file mode 100644 index 0000000..427436e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_03.png.import new file mode 100644 index 0000000..1e54d4e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tbh1obmrtrxl" +path="res://.godot/imported/face_lower_10_03.png-de62588377eba734be5a73d628fdee95.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_03.png" +dest_files=["res://.godot/imported/face_lower_10_03.png-de62588377eba734be5a73d628fdee95.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_04.png b/exported_glb/BloodElfFemale_textures/face_lower_10_04.png new file mode 100644 index 0000000..79a08ae Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_04.png.import new file mode 100644 index 0000000..d916f17 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhhsbgefmsxlg" +path="res://.godot/imported/face_lower_10_04.png-4a796b927ab7c63869b51d3ace2bbc8e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_04.png" +dest_files=["res://.godot/imported/face_lower_10_04.png-4a796b927ab7c63869b51d3ace2bbc8e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_05.png b/exported_glb/BloodElfFemale_textures/face_lower_10_05.png new file mode 100644 index 0000000..d911d1e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_05.png.import new file mode 100644 index 0000000..8944dbb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhc71j4svg7fa" +path="res://.godot/imported/face_lower_10_05.png-408d34613ce4c4ec77a4f2a09cc112c9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_05.png" +dest_files=["res://.godot/imported/face_lower_10_05.png-408d34613ce4c4ec77a4f2a09cc112c9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_06.png b/exported_glb/BloodElfFemale_textures/face_lower_10_06.png new file mode 100644 index 0000000..bcec632 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_06.png.import new file mode 100644 index 0000000..02e91fb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2msl12peqnql" +path="res://.godot/imported/face_lower_10_06.png-36cfaa8ba9d6cdb88824ff4264aeabac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_06.png" +dest_files=["res://.godot/imported/face_lower_10_06.png-36cfaa8ba9d6cdb88824ff4264aeabac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_07.png b/exported_glb/BloodElfFemale_textures/face_lower_10_07.png new file mode 100644 index 0000000..6a9e495 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_07.png.import new file mode 100644 index 0000000..d2eeba7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwnn0yp3xevt5" +path="res://.godot/imported/face_lower_10_07.png-e5a2a568c0014cc321556d7e99e6f4da.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_07.png" +dest_files=["res://.godot/imported/face_lower_10_07.png-e5a2a568c0014cc321556d7e99e6f4da.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_08.png b/exported_glb/BloodElfFemale_textures/face_lower_10_08.png new file mode 100644 index 0000000..8a8f01d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_08.png.import new file mode 100644 index 0000000..236c568 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://i00ucfwkht74" +path="res://.godot/imported/face_lower_10_08.png-1bf8e436d2043a84fe1dad959c36e4ca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_08.png" +dest_files=["res://.godot/imported/face_lower_10_08.png-1bf8e436d2043a84fe1dad959c36e4ca.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_09.png b/exported_glb/BloodElfFemale_textures/face_lower_10_09.png new file mode 100644 index 0000000..e114763 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_10_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_10_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_10_09.png.import new file mode 100644 index 0000000..cf6e924 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_10_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qp88e8lq5m3h" +path="res://.godot/imported/face_lower_10_09.png-c8c23ae30143eb268e12048a6712890b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_10_09.png" +dest_files=["res://.godot/imported/face_lower_10_09.png-c8c23ae30143eb268e12048a6712890b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_00.png b/exported_glb/BloodElfFemale_textures/face_lower_11_00.png new file mode 100644 index 0000000..e263ded Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_00.png.import new file mode 100644 index 0000000..a4cb0b9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0eib5ino6i2" +path="res://.godot/imported/face_lower_11_00.png-e87265a1d613a0a59a58119423ef67a4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_00.png" +dest_files=["res://.godot/imported/face_lower_11_00.png-e87265a1d613a0a59a58119423ef67a4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_01.png b/exported_glb/BloodElfFemale_textures/face_lower_11_01.png new file mode 100644 index 0000000..a8fb3e0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_01.png.import new file mode 100644 index 0000000..51b9c2c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dli23gaantto6" +path="res://.godot/imported/face_lower_11_01.png-c8a4ddf932cf14d207b1fd31e7f5aaf6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_01.png" +dest_files=["res://.godot/imported/face_lower_11_01.png-c8a4ddf932cf14d207b1fd31e7f5aaf6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_02.png b/exported_glb/BloodElfFemale_textures/face_lower_11_02.png new file mode 100644 index 0000000..a96a603 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_02.png.import new file mode 100644 index 0000000..f690d40 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1v8c0s0o7f7i" +path="res://.godot/imported/face_lower_11_02.png-ffd97f4897b05cb4c99389e17ea08a56.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_02.png" +dest_files=["res://.godot/imported/face_lower_11_02.png-ffd97f4897b05cb4c99389e17ea08a56.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_03.png b/exported_glb/BloodElfFemale_textures/face_lower_11_03.png new file mode 100644 index 0000000..64f8351 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_03.png.import new file mode 100644 index 0000000..a90e329 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ruhiyekm2xhv" +path="res://.godot/imported/face_lower_11_03.png-54784276875748fe4124f5e5d162b612.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_03.png" +dest_files=["res://.godot/imported/face_lower_11_03.png-54784276875748fe4124f5e5d162b612.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_04.png b/exported_glb/BloodElfFemale_textures/face_lower_11_04.png new file mode 100644 index 0000000..364addf Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_04.png.import new file mode 100644 index 0000000..51746f5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cb3eongbt6ba1" +path="res://.godot/imported/face_lower_11_04.png-d48b38af3189809fcb139604f5b4370d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_04.png" +dest_files=["res://.godot/imported/face_lower_11_04.png-d48b38af3189809fcb139604f5b4370d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_05.png b/exported_glb/BloodElfFemale_textures/face_lower_11_05.png new file mode 100644 index 0000000..f3d6688 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_05.png.import new file mode 100644 index 0000000..dcebe14 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btrnuhpbk2t22" +path="res://.godot/imported/face_lower_11_05.png-4b3580cbd7d33277eebdd920b543ca91.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_05.png" +dest_files=["res://.godot/imported/face_lower_11_05.png-4b3580cbd7d33277eebdd920b543ca91.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_06.png b/exported_glb/BloodElfFemale_textures/face_lower_11_06.png new file mode 100644 index 0000000..edf34df Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_06.png.import new file mode 100644 index 0000000..a2574d6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mwoq3sn2lnfc" +path="res://.godot/imported/face_lower_11_06.png-407d60a9f7b86b58155e013230dfa353.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_06.png" +dest_files=["res://.godot/imported/face_lower_11_06.png-407d60a9f7b86b58155e013230dfa353.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_07.png b/exported_glb/BloodElfFemale_textures/face_lower_11_07.png new file mode 100644 index 0000000..56e7b4d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_07.png.import new file mode 100644 index 0000000..2f6f52b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmynje3sk551o" +path="res://.godot/imported/face_lower_11_07.png-d496456d9b46fc7305f6e3ed1c7743c1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_07.png" +dest_files=["res://.godot/imported/face_lower_11_07.png-d496456d9b46fc7305f6e3ed1c7743c1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_08.png b/exported_glb/BloodElfFemale_textures/face_lower_11_08.png new file mode 100644 index 0000000..d2a156f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_08.png.import new file mode 100644 index 0000000..c5f842c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0y5b0rw3en51" +path="res://.godot/imported/face_lower_11_08.png-0f502ad0659028eae4b48914addcf99c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_08.png" +dest_files=["res://.godot/imported/face_lower_11_08.png-0f502ad0659028eae4b48914addcf99c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_09.png b/exported_glb/BloodElfFemale_textures/face_lower_11_09.png new file mode 100644 index 0000000..a7bcde8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_11_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_11_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_11_09.png.import new file mode 100644 index 0000000..b17101c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_11_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmjqlorwhiul6" +path="res://.godot/imported/face_lower_11_09.png-ccfd397e25723b579e87ec5544e4552c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_11_09.png" +dest_files=["res://.godot/imported/face_lower_11_09.png-ccfd397e25723b579e87ec5544e4552c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_00.png b/exported_glb/BloodElfFemale_textures/face_lower_12_00.png new file mode 100644 index 0000000..bcb99f1 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_00.png.import new file mode 100644 index 0000000..5d8af4f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg7fgdebp1vad" +path="res://.godot/imported/face_lower_12_00.png-0c221617ed88b03f5902196340d7cf08.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_00.png" +dest_files=["res://.godot/imported/face_lower_12_00.png-0c221617ed88b03f5902196340d7cf08.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_01.png b/exported_glb/BloodElfFemale_textures/face_lower_12_01.png new file mode 100644 index 0000000..b7015e5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_01.png.import new file mode 100644 index 0000000..c91051e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2ktw424ntfwc" +path="res://.godot/imported/face_lower_12_01.png-56562601ee9479a4c5e2c8fba35439ea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_01.png" +dest_files=["res://.godot/imported/face_lower_12_01.png-56562601ee9479a4c5e2c8fba35439ea.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_02.png b/exported_glb/BloodElfFemale_textures/face_lower_12_02.png new file mode 100644 index 0000000..1ae11c0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_02.png.import new file mode 100644 index 0000000..5060fe8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://doc31ialr0j74" +path="res://.godot/imported/face_lower_12_02.png-ad58f5224d02d1ea87fd7d4ee5f897c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_02.png" +dest_files=["res://.godot/imported/face_lower_12_02.png-ad58f5224d02d1ea87fd7d4ee5f897c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_03.png b/exported_glb/BloodElfFemale_textures/face_lower_12_03.png new file mode 100644 index 0000000..11bf5ff Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_03.png.import new file mode 100644 index 0000000..6cc2d19 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3phnon7qb6jd" +path="res://.godot/imported/face_lower_12_03.png-efd469fc32b4d4b853faacbe769ef813.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_03.png" +dest_files=["res://.godot/imported/face_lower_12_03.png-efd469fc32b4d4b853faacbe769ef813.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_04.png b/exported_glb/BloodElfFemale_textures/face_lower_12_04.png new file mode 100644 index 0000000..2880787 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_04.png.import new file mode 100644 index 0000000..bed7544 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dksbsbccwpe1a" +path="res://.godot/imported/face_lower_12_04.png-899527cdc3aa743b53c67e5796e72662.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_04.png" +dest_files=["res://.godot/imported/face_lower_12_04.png-899527cdc3aa743b53c67e5796e72662.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_05.png b/exported_glb/BloodElfFemale_textures/face_lower_12_05.png new file mode 100644 index 0000000..0385298 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_05.png.import new file mode 100644 index 0000000..291f630 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5skq8q5cbexa" +path="res://.godot/imported/face_lower_12_05.png-12d188b1ba1cdcc5d152cf2cbf550489.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_05.png" +dest_files=["res://.godot/imported/face_lower_12_05.png-12d188b1ba1cdcc5d152cf2cbf550489.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_06.png b/exported_glb/BloodElfFemale_textures/face_lower_12_06.png new file mode 100644 index 0000000..b1fca37 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_06.png.import new file mode 100644 index 0000000..74143b5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmde4nuevcfvh" +path="res://.godot/imported/face_lower_12_06.png-8ac27ef8189b9523d5a51afa36d84219.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_06.png" +dest_files=["res://.godot/imported/face_lower_12_06.png-8ac27ef8189b9523d5a51afa36d84219.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_07.png b/exported_glb/BloodElfFemale_textures/face_lower_12_07.png new file mode 100644 index 0000000..e5676e9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_07.png.import new file mode 100644 index 0000000..36f5464 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bob1617e871hn" +path="res://.godot/imported/face_lower_12_07.png-e649e101e7e91ab8e42e7445f3e84194.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_07.png" +dest_files=["res://.godot/imported/face_lower_12_07.png-e649e101e7e91ab8e42e7445f3e84194.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_08.png b/exported_glb/BloodElfFemale_textures/face_lower_12_08.png new file mode 100644 index 0000000..28619c6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_08.png.import new file mode 100644 index 0000000..cfe55c7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjnqreu2x2cx6" +path="res://.godot/imported/face_lower_12_08.png-457bff1e28be1267f899f41aa1aef92c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_08.png" +dest_files=["res://.godot/imported/face_lower_12_08.png-457bff1e28be1267f899f41aa1aef92c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_09.png b/exported_glb/BloodElfFemale_textures/face_lower_12_09.png new file mode 100644 index 0000000..1daad4a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_12_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_12_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_12_09.png.import new file mode 100644 index 0000000..3858346 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_12_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xk2oe88g3ali" +path="res://.godot/imported/face_lower_12_09.png-df04649790ea8bdc19eb4672d9608740.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_12_09.png" +dest_files=["res://.godot/imported/face_lower_12_09.png-df04649790ea8bdc19eb4672d9608740.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_00.png b/exported_glb/BloodElfFemale_textures/face_lower_13_00.png new file mode 100644 index 0000000..b970ccd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_00.png.import new file mode 100644 index 0000000..c814aff --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buas3bfotisia" +path="res://.godot/imported/face_lower_13_00.png-d4e918615d2be1561e6900af605defd2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_00.png" +dest_files=["res://.godot/imported/face_lower_13_00.png-d4e918615d2be1561e6900af605defd2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_01.png b/exported_glb/BloodElfFemale_textures/face_lower_13_01.png new file mode 100644 index 0000000..e2128c8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_01.png.import new file mode 100644 index 0000000..1a76b66 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh11185bw6w1g" +path="res://.godot/imported/face_lower_13_01.png-9a0abc7a5a9b6dabf6f273e02636f165.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_01.png" +dest_files=["res://.godot/imported/face_lower_13_01.png-9a0abc7a5a9b6dabf6f273e02636f165.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_02.png b/exported_glb/BloodElfFemale_textures/face_lower_13_02.png new file mode 100644 index 0000000..ddfbc2a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_02.png.import new file mode 100644 index 0000000..8a2dd0f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjh5n0oaew2tm" +path="res://.godot/imported/face_lower_13_02.png-f4ba119d02fdf8c81a5c9d5e81c57a4e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_02.png" +dest_files=["res://.godot/imported/face_lower_13_02.png-f4ba119d02fdf8c81a5c9d5e81c57a4e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_03.png b/exported_glb/BloodElfFemale_textures/face_lower_13_03.png new file mode 100644 index 0000000..6c9aa73 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_03.png.import new file mode 100644 index 0000000..933eeb5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnm34g3x15sge" +path="res://.godot/imported/face_lower_13_03.png-fd8602488f61923fa441c42672e0ed6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_03.png" +dest_files=["res://.godot/imported/face_lower_13_03.png-fd8602488f61923fa441c42672e0ed6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_04.png b/exported_glb/BloodElfFemale_textures/face_lower_13_04.png new file mode 100644 index 0000000..e3f8661 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_04.png.import new file mode 100644 index 0000000..b3ff58e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://du6eoq5phhg7f" +path="res://.godot/imported/face_lower_13_04.png-1da99c5fafcac938404d5585f76c1af7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_04.png" +dest_files=["res://.godot/imported/face_lower_13_04.png-1da99c5fafcac938404d5585f76c1af7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_05.png b/exported_glb/BloodElfFemale_textures/face_lower_13_05.png new file mode 100644 index 0000000..c992be8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_05.png.import new file mode 100644 index 0000000..ffa4ec3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjjy13j77am5r" +path="res://.godot/imported/face_lower_13_05.png-d3fe0d377d1d0fb992f10be4d2707f62.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_05.png" +dest_files=["res://.godot/imported/face_lower_13_05.png-d3fe0d377d1d0fb992f10be4d2707f62.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_06.png b/exported_glb/BloodElfFemale_textures/face_lower_13_06.png new file mode 100644 index 0000000..057d272 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_06.png.import new file mode 100644 index 0000000..93be547 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crw4g7v6t84l2" +path="res://.godot/imported/face_lower_13_06.png-0912685084a05e6f79022478b74755a2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_06.png" +dest_files=["res://.godot/imported/face_lower_13_06.png-0912685084a05e6f79022478b74755a2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_07.png b/exported_glb/BloodElfFemale_textures/face_lower_13_07.png new file mode 100644 index 0000000..851e84c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_07.png.import new file mode 100644 index 0000000..db7fe85 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://yhlpe422asmu" +path="res://.godot/imported/face_lower_13_07.png-4f16f54f4214be915fcf91df4b25a062.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_07.png" +dest_files=["res://.godot/imported/face_lower_13_07.png-4f16f54f4214be915fcf91df4b25a062.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_08.png b/exported_glb/BloodElfFemale_textures/face_lower_13_08.png new file mode 100644 index 0000000..080e086 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_08.png.import new file mode 100644 index 0000000..b0ec6e8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bami8bvqe83yr" +path="res://.godot/imported/face_lower_13_08.png-a6c21c81c5acb7ba84b93393777ae81a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_08.png" +dest_files=["res://.godot/imported/face_lower_13_08.png-a6c21c81c5acb7ba84b93393777ae81a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_09.png b/exported_glb/BloodElfFemale_textures/face_lower_13_09.png new file mode 100644 index 0000000..2e1bdf8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_13_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_13_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_13_09.png.import new file mode 100644 index 0000000..24a0cd5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_13_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpgdru8ibmx5i" +path="res://.godot/imported/face_lower_13_09.png-b56527365f81befdae7191bb19c0ce7a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_13_09.png" +dest_files=["res://.godot/imported/face_lower_13_09.png-b56527365f81befdae7191bb19c0ce7a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_00.png b/exported_glb/BloodElfFemale_textures/face_lower_14_00.png new file mode 100644 index 0000000..76d0c30 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_00.png.import new file mode 100644 index 0000000..7e62fa5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2tfhnwwcwqa6" +path="res://.godot/imported/face_lower_14_00.png-f44b1445566b8a2617bee69310a21946.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_00.png" +dest_files=["res://.godot/imported/face_lower_14_00.png-f44b1445566b8a2617bee69310a21946.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_01.png b/exported_glb/BloodElfFemale_textures/face_lower_14_01.png new file mode 100644 index 0000000..6845cf0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_01.png.import new file mode 100644 index 0000000..9edb688 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://spphtwodi70f" +path="res://.godot/imported/face_lower_14_01.png-50d12895cad9c054f17b09a7043cbbaa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_01.png" +dest_files=["res://.godot/imported/face_lower_14_01.png-50d12895cad9c054f17b09a7043cbbaa.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_02.png b/exported_glb/BloodElfFemale_textures/face_lower_14_02.png new file mode 100644 index 0000000..8e070a8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_02.png.import new file mode 100644 index 0000000..46c72d8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djjr07mttsden" +path="res://.godot/imported/face_lower_14_02.png-9962d188bb8df28b525c266232fff228.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_02.png" +dest_files=["res://.godot/imported/face_lower_14_02.png-9962d188bb8df28b525c266232fff228.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_03.png b/exported_glb/BloodElfFemale_textures/face_lower_14_03.png new file mode 100644 index 0000000..93c46ca Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_03.png.import new file mode 100644 index 0000000..5737516 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://db1cfs8bnutg4" +path="res://.godot/imported/face_lower_14_03.png-a2b17387980718bfe789b4b65c96c914.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_03.png" +dest_files=["res://.godot/imported/face_lower_14_03.png-a2b17387980718bfe789b4b65c96c914.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_04.png b/exported_glb/BloodElfFemale_textures/face_lower_14_04.png new file mode 100644 index 0000000..6a645dc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_04.png.import new file mode 100644 index 0000000..97aed9e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://onjbe26nv70u" +path="res://.godot/imported/face_lower_14_04.png-e2b75cca4aee9b8c9b6951f903805f29.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_04.png" +dest_files=["res://.godot/imported/face_lower_14_04.png-e2b75cca4aee9b8c9b6951f903805f29.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_05.png b/exported_glb/BloodElfFemale_textures/face_lower_14_05.png new file mode 100644 index 0000000..ffaa584 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_05.png.import new file mode 100644 index 0000000..785ee24 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djyb3e8jm7q1i" +path="res://.godot/imported/face_lower_14_05.png-8bf525f46255cd138cd5f82817d62ea3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_05.png" +dest_files=["res://.godot/imported/face_lower_14_05.png-8bf525f46255cd138cd5f82817d62ea3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_06.png b/exported_glb/BloodElfFemale_textures/face_lower_14_06.png new file mode 100644 index 0000000..d5b2fb2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_06.png.import new file mode 100644 index 0000000..8843bb2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqmjk0mmhrxaa" +path="res://.godot/imported/face_lower_14_06.png-8149d0ef8448ab2dbfcdcfd9fa31dd18.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_06.png" +dest_files=["res://.godot/imported/face_lower_14_06.png-8149d0ef8448ab2dbfcdcfd9fa31dd18.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_07.png b/exported_glb/BloodElfFemale_textures/face_lower_14_07.png new file mode 100644 index 0000000..2718e93 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_07.png.import new file mode 100644 index 0000000..688d511 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://waamrteloj6h" +path="res://.godot/imported/face_lower_14_07.png-18771acafdb2fee99eec0910e6b2b8ff.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_07.png" +dest_files=["res://.godot/imported/face_lower_14_07.png-18771acafdb2fee99eec0910e6b2b8ff.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_08.png b/exported_glb/BloodElfFemale_textures/face_lower_14_08.png new file mode 100644 index 0000000..cfa198f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_08.png.import new file mode 100644 index 0000000..b534120 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://doclectrnt644" +path="res://.godot/imported/face_lower_14_08.png-eb8e4e64dfff41d7360cd12862f4a6f3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_08.png" +dest_files=["res://.godot/imported/face_lower_14_08.png-eb8e4e64dfff41d7360cd12862f4a6f3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_09.png b/exported_glb/BloodElfFemale_textures/face_lower_14_09.png new file mode 100644 index 0000000..7dbf359 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_14_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_14_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_14_09.png.import new file mode 100644 index 0000000..f883b74 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_14_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2v7a7hkxt0fx" +path="res://.godot/imported/face_lower_14_09.png-7006072482b5aa5aff726b0288fb0cb6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_14_09.png" +dest_files=["res://.godot/imported/face_lower_14_09.png-7006072482b5aa5aff726b0288fb0cb6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_00.png b/exported_glb/BloodElfFemale_textures/face_lower_15_00.png new file mode 100644 index 0000000..79ad715 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_00.png.import new file mode 100644 index 0000000..e9f626a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jd066kxgnuoo" +path="res://.godot/imported/face_lower_15_00.png-a6863ef84082a57e9b3134498f2eb6e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_00.png" +dest_files=["res://.godot/imported/face_lower_15_00.png-a6863ef84082a57e9b3134498f2eb6e6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_01.png b/exported_glb/BloodElfFemale_textures/face_lower_15_01.png new file mode 100644 index 0000000..a321df2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_01.png.import new file mode 100644 index 0000000..a64fabf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cr8ttxomamcl5" +path="res://.godot/imported/face_lower_15_01.png-b32d88979ecff7a6828fbc2e880cba72.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_01.png" +dest_files=["res://.godot/imported/face_lower_15_01.png-b32d88979ecff7a6828fbc2e880cba72.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_02.png b/exported_glb/BloodElfFemale_textures/face_lower_15_02.png new file mode 100644 index 0000000..9c50327 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_02.png.import new file mode 100644 index 0000000..c44abaf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpy62u8psx2pi" +path="res://.godot/imported/face_lower_15_02.png-804f5d03a3b3e66c09ee4ca0b62e80e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_02.png" +dest_files=["res://.godot/imported/face_lower_15_02.png-804f5d03a3b3e66c09ee4ca0b62e80e7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_03.png b/exported_glb/BloodElfFemale_textures/face_lower_15_03.png new file mode 100644 index 0000000..dfc5aa9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_03.png.import new file mode 100644 index 0000000..16dcdc7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs5vpeda377l6" +path="res://.godot/imported/face_lower_15_03.png-4d4b8193c25eec2d17d8c54d4cca0097.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_03.png" +dest_files=["res://.godot/imported/face_lower_15_03.png-4d4b8193c25eec2d17d8c54d4cca0097.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_04.png b/exported_glb/BloodElfFemale_textures/face_lower_15_04.png new file mode 100644 index 0000000..af0a1b4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_04.png.import new file mode 100644 index 0000000..4a62f31 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c01vgm3cga3xs" +path="res://.godot/imported/face_lower_15_04.png-95ca30d0654bcaa1c653432b83a0f5ae.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_04.png" +dest_files=["res://.godot/imported/face_lower_15_04.png-95ca30d0654bcaa1c653432b83a0f5ae.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_05.png b/exported_glb/BloodElfFemale_textures/face_lower_15_05.png new file mode 100644 index 0000000..dfdb09a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_05.png.import new file mode 100644 index 0000000..18dbca7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4itqwj4al006" +path="res://.godot/imported/face_lower_15_05.png-62809e0148758325c6af5f25c1a577b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_05.png" +dest_files=["res://.godot/imported/face_lower_15_05.png-62809e0148758325c6af5f25c1a577b9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_06.png b/exported_glb/BloodElfFemale_textures/face_lower_15_06.png new file mode 100644 index 0000000..3dbed23 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_06.png.import new file mode 100644 index 0000000..a156fb8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck28feuu46ye0" +path="res://.godot/imported/face_lower_15_06.png-1a0af63ec4c573a030e4f500462cc4e1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_06.png" +dest_files=["res://.godot/imported/face_lower_15_06.png-1a0af63ec4c573a030e4f500462cc4e1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_07.png b/exported_glb/BloodElfFemale_textures/face_lower_15_07.png new file mode 100644 index 0000000..0b5cda5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_07.png.import new file mode 100644 index 0000000..9792b5c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsxrrkgohe132" +path="res://.godot/imported/face_lower_15_07.png-ea8a4412199a08fdfd26e620a03d41e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_07.png" +dest_files=["res://.godot/imported/face_lower_15_07.png-ea8a4412199a08fdfd26e620a03d41e7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_08.png b/exported_glb/BloodElfFemale_textures/face_lower_15_08.png new file mode 100644 index 0000000..96b9b5d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_08.png.import new file mode 100644 index 0000000..8ceb9ab --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqsdfmgtp0ldr" +path="res://.godot/imported/face_lower_15_08.png-2463aaf246dc3ecf7522e8681be5be1e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_08.png" +dest_files=["res://.godot/imported/face_lower_15_08.png-2463aaf246dc3ecf7522e8681be5be1e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_09.png b/exported_glb/BloodElfFemale_textures/face_lower_15_09.png new file mode 100644 index 0000000..b2b7df9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_15_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_15_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_15_09.png.import new file mode 100644 index 0000000..43178aa --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_15_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dblioted53rij" +path="res://.godot/imported/face_lower_15_09.png-96bf5f65831d9e3ed46352405c74a582.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_15_09.png" +dest_files=["res://.godot/imported/face_lower_15_09.png-96bf5f65831d9e3ed46352405c74a582.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_00.png b/exported_glb/BloodElfFemale_textures/face_lower_16_00.png new file mode 100644 index 0000000..c4d835f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_00.png.import new file mode 100644 index 0000000..6ff0676 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c11xlc2t18wwg" +path="res://.godot/imported/face_lower_16_00.png-916082c90a40b0e37bc7e24501c8c0cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_00.png" +dest_files=["res://.godot/imported/face_lower_16_00.png-916082c90a40b0e37bc7e24501c8c0cc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_01.png b/exported_glb/BloodElfFemale_textures/face_lower_16_01.png new file mode 100644 index 0000000..d7ad0ff Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_01.png.import new file mode 100644 index 0000000..5e342e5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cojga1uwxwrkk" +path="res://.godot/imported/face_lower_16_01.png-a88400c17cc17c95e34b3d51c04c90cd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_01.png" +dest_files=["res://.godot/imported/face_lower_16_01.png-a88400c17cc17c95e34b3d51c04c90cd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_02.png b/exported_glb/BloodElfFemale_textures/face_lower_16_02.png new file mode 100644 index 0000000..90da7c9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_02.png.import new file mode 100644 index 0000000..b2e3764 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wo1tp2ax6kx3" +path="res://.godot/imported/face_lower_16_02.png-086f1539606c904b098e4d01240c7d50.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_02.png" +dest_files=["res://.godot/imported/face_lower_16_02.png-086f1539606c904b098e4d01240c7d50.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_03.png b/exported_glb/BloodElfFemale_textures/face_lower_16_03.png new file mode 100644 index 0000000..3e1d4ca Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_03.png.import new file mode 100644 index 0000000..d018c22 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://e671nn25wp3r" +path="res://.godot/imported/face_lower_16_03.png-60d5ec203e9e0c8f15b457eb58a57f5d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_03.png" +dest_files=["res://.godot/imported/face_lower_16_03.png-60d5ec203e9e0c8f15b457eb58a57f5d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_04.png b/exported_glb/BloodElfFemale_textures/face_lower_16_04.png new file mode 100644 index 0000000..106f70f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_04.png.import new file mode 100644 index 0000000..3772acb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfwd2maypr3te" +path="res://.godot/imported/face_lower_16_04.png-248aaa5d5454aec4880a903ce4eefaaa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_04.png" +dest_files=["res://.godot/imported/face_lower_16_04.png-248aaa5d5454aec4880a903ce4eefaaa.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_05.png b/exported_glb/BloodElfFemale_textures/face_lower_16_05.png new file mode 100644 index 0000000..f2ac65f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_05.png.import new file mode 100644 index 0000000..0aebd83 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1pmlfjcfv6le" +path="res://.godot/imported/face_lower_16_05.png-58250352fa21370eff9c336d54b91a2a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_05.png" +dest_files=["res://.godot/imported/face_lower_16_05.png-58250352fa21370eff9c336d54b91a2a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_06.png b/exported_glb/BloodElfFemale_textures/face_lower_16_06.png new file mode 100644 index 0000000..10a8e9b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_06.png.import new file mode 100644 index 0000000..af66ca4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bx07iag5dalqn" +path="res://.godot/imported/face_lower_16_06.png-7f22d611a87c663b998d1b434c37cb4e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_06.png" +dest_files=["res://.godot/imported/face_lower_16_06.png-7f22d611a87c663b998d1b434c37cb4e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_07.png b/exported_glb/BloodElfFemale_textures/face_lower_16_07.png new file mode 100644 index 0000000..0cd207d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_07.png.import new file mode 100644 index 0000000..c2c5281 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hya84krsywnj" +path="res://.godot/imported/face_lower_16_07.png-106e60e273f505728d598bcba4a77566.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_07.png" +dest_files=["res://.godot/imported/face_lower_16_07.png-106e60e273f505728d598bcba4a77566.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_08.png b/exported_glb/BloodElfFemale_textures/face_lower_16_08.png new file mode 100644 index 0000000..844fc3a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_08.png.import new file mode 100644 index 0000000..0f0531c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfblmfjs2os30" +path="res://.godot/imported/face_lower_16_08.png-e84c8f8bca97cb1e477bada79523646d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_08.png" +dest_files=["res://.godot/imported/face_lower_16_08.png-e84c8f8bca97cb1e477bada79523646d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_09.png b/exported_glb/BloodElfFemale_textures/face_lower_16_09.png new file mode 100644 index 0000000..a145013 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_16_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_16_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_16_09.png.import new file mode 100644 index 0000000..d9a5236 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_16_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcb17dg8tdk6a" +path="res://.godot/imported/face_lower_16_09.png-37b515184b74894f7aed1153802c875d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_16_09.png" +dest_files=["res://.godot/imported/face_lower_16_09.png-37b515184b74894f7aed1153802c875d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_00.png b/exported_glb/BloodElfFemale_textures/face_lower_17_00.png new file mode 100644 index 0000000..c3abb33 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_00.png.import new file mode 100644 index 0000000..8e4f913 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bed5nmhs6erm5" +path="res://.godot/imported/face_lower_17_00.png-d386b8903e69d96fd4dde5dff6b34ef9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_00.png" +dest_files=["res://.godot/imported/face_lower_17_00.png-d386b8903e69d96fd4dde5dff6b34ef9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_01.png b/exported_glb/BloodElfFemale_textures/face_lower_17_01.png new file mode 100644 index 0000000..fb5fc5a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_01.png.import new file mode 100644 index 0000000..45367ba --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dua2m8n51hwqd" +path="res://.godot/imported/face_lower_17_01.png-284ca801bbc8cdba340b2bacc8aad5c2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_01.png" +dest_files=["res://.godot/imported/face_lower_17_01.png-284ca801bbc8cdba340b2bacc8aad5c2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_02.png b/exported_glb/BloodElfFemale_textures/face_lower_17_02.png new file mode 100644 index 0000000..ff8f241 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_02.png.import new file mode 100644 index 0000000..0c97abc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xhjnq0lc4kw3" +path="res://.godot/imported/face_lower_17_02.png-5e5fe1d21e4591c2c3a4174b679b9481.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_02.png" +dest_files=["res://.godot/imported/face_lower_17_02.png-5e5fe1d21e4591c2c3a4174b679b9481.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_03.png b/exported_glb/BloodElfFemale_textures/face_lower_17_03.png new file mode 100644 index 0000000..49cd893 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_03.png.import new file mode 100644 index 0000000..cb1f04e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://g72j342gbr36" +path="res://.godot/imported/face_lower_17_03.png-aaebd5dce836c62d2c7d8feecb25da38.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_03.png" +dest_files=["res://.godot/imported/face_lower_17_03.png-aaebd5dce836c62d2c7d8feecb25da38.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_04.png b/exported_glb/BloodElfFemale_textures/face_lower_17_04.png new file mode 100644 index 0000000..c77d7f1 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_04.png.import new file mode 100644 index 0000000..a9c07cb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwms64tqn6ub6" +path="res://.godot/imported/face_lower_17_04.png-d6d85872272e1c7ae7f374221b8879be.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_04.png" +dest_files=["res://.godot/imported/face_lower_17_04.png-d6d85872272e1c7ae7f374221b8879be.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_05.png b/exported_glb/BloodElfFemale_textures/face_lower_17_05.png new file mode 100644 index 0000000..7a61864 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_05.png.import new file mode 100644 index 0000000..1a5e950 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chn1jqf7ig7kw" +path="res://.godot/imported/face_lower_17_05.png-d33553830bdc073563a1f218c23a93cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_05.png" +dest_files=["res://.godot/imported/face_lower_17_05.png-d33553830bdc073563a1f218c23a93cc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_06.png b/exported_glb/BloodElfFemale_textures/face_lower_17_06.png new file mode 100644 index 0000000..a9a3330 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_06.png.import new file mode 100644 index 0000000..b55a4a4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxx6cpwhfytc3" +path="res://.godot/imported/face_lower_17_06.png-a6be4ae120645e098ec03519d395737f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_06.png" +dest_files=["res://.godot/imported/face_lower_17_06.png-a6be4ae120645e098ec03519d395737f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_07.png b/exported_glb/BloodElfFemale_textures/face_lower_17_07.png new file mode 100644 index 0000000..9dd5616 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_07.png.import new file mode 100644 index 0000000..527c863 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cs7f42ynjkdcu" +path="res://.godot/imported/face_lower_17_07.png-7b8ba1e23a2332a3ec480e1057d5c748.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_07.png" +dest_files=["res://.godot/imported/face_lower_17_07.png-7b8ba1e23a2332a3ec480e1057d5c748.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_08.png b/exported_glb/BloodElfFemale_textures/face_lower_17_08.png new file mode 100644 index 0000000..bbf6515 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_08.png.import new file mode 100644 index 0000000..d43b06e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://muh2gu0usma1" +path="res://.godot/imported/face_lower_17_08.png-680939ea5206ba3370886c21469ba615.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_08.png" +dest_files=["res://.godot/imported/face_lower_17_08.png-680939ea5206ba3370886c21469ba615.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_09.png b/exported_glb/BloodElfFemale_textures/face_lower_17_09.png new file mode 100644 index 0000000..48d94bc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_17_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_17_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_17_09.png.import new file mode 100644 index 0000000..0f65550 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_17_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqy23hpjhk0o5" +path="res://.godot/imported/face_lower_17_09.png-630ea1b7485f0c873ede02124264f76a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_17_09.png" +dest_files=["res://.godot/imported/face_lower_17_09.png-630ea1b7485f0c873ede02124264f76a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_00.png b/exported_glb/BloodElfFemale_textures/face_lower_18_00.png new file mode 100644 index 0000000..0e9e195 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_00.png.import new file mode 100644 index 0000000..60ed645 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b3270s8odt0py" +path="res://.godot/imported/face_lower_18_00.png-b74eae7b5cd89e7a945aa17b0c4fa771.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_00.png" +dest_files=["res://.godot/imported/face_lower_18_00.png-b74eae7b5cd89e7a945aa17b0c4fa771.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_01.png b/exported_glb/BloodElfFemale_textures/face_lower_18_01.png new file mode 100644 index 0000000..625fe72 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_01.png.import new file mode 100644 index 0000000..82d8114 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm267pkw7a1gq" +path="res://.godot/imported/face_lower_18_01.png-f4177362a2d2ec7a22439bf52710fbc2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_01.png" +dest_files=["res://.godot/imported/face_lower_18_01.png-f4177362a2d2ec7a22439bf52710fbc2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_02.png b/exported_glb/BloodElfFemale_textures/face_lower_18_02.png new file mode 100644 index 0000000..ae505c3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_02.png.import new file mode 100644 index 0000000..f6b853f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk2ubnj8r7hn3" +path="res://.godot/imported/face_lower_18_02.png-f499380af362b0d75d1989e783e4000e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_02.png" +dest_files=["res://.godot/imported/face_lower_18_02.png-f499380af362b0d75d1989e783e4000e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_03.png b/exported_glb/BloodElfFemale_textures/face_lower_18_03.png new file mode 100644 index 0000000..85d8523 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_03.png.import new file mode 100644 index 0000000..e4d78dd --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hlcytw81ud00" +path="res://.godot/imported/face_lower_18_03.png-3e190da851085a9ffc3c7031aaddb2c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_03.png" +dest_files=["res://.godot/imported/face_lower_18_03.png-3e190da851085a9ffc3c7031aaddb2c5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_04.png b/exported_glb/BloodElfFemale_textures/face_lower_18_04.png new file mode 100644 index 0000000..b68ba52 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_04.png.import new file mode 100644 index 0000000..bad6f99 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvtunnabdunh4" +path="res://.godot/imported/face_lower_18_04.png-73ee4b997c3f4aadf78d24ea64700f2a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_04.png" +dest_files=["res://.godot/imported/face_lower_18_04.png-73ee4b997c3f4aadf78d24ea64700f2a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_05.png b/exported_glb/BloodElfFemale_textures/face_lower_18_05.png new file mode 100644 index 0000000..61d2cb0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_05.png.import new file mode 100644 index 0000000..e75042c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpcsxntkw43p6" +path="res://.godot/imported/face_lower_18_05.png-11acd1a8883c7a01c13d221ef5f8ce09.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_05.png" +dest_files=["res://.godot/imported/face_lower_18_05.png-11acd1a8883c7a01c13d221ef5f8ce09.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_06.png b/exported_glb/BloodElfFemale_textures/face_lower_18_06.png new file mode 100644 index 0000000..62460b3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_06.png.import new file mode 100644 index 0000000..dee819f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1oi4a1sbw076" +path="res://.godot/imported/face_lower_18_06.png-ad29c097557cd9fbeb54bf400f6ec275.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_06.png" +dest_files=["res://.godot/imported/face_lower_18_06.png-ad29c097557cd9fbeb54bf400f6ec275.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_07.png b/exported_glb/BloodElfFemale_textures/face_lower_18_07.png new file mode 100644 index 0000000..acdf3ff Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_07.png.import new file mode 100644 index 0000000..778b005 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhmq8woxy0b5s" +path="res://.godot/imported/face_lower_18_07.png-31ac1bc873b8da711116c85d8fb2b162.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_07.png" +dest_files=["res://.godot/imported/face_lower_18_07.png-31ac1bc873b8da711116c85d8fb2b162.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_08.png b/exported_glb/BloodElfFemale_textures/face_lower_18_08.png new file mode 100644 index 0000000..fa7cfa7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_08.png.import new file mode 100644 index 0000000..9a08c7f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://by27aoj2cr632" +path="res://.godot/imported/face_lower_18_08.png-3e4f4107cf29ae62d0499e7f86bfced7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_08.png" +dest_files=["res://.godot/imported/face_lower_18_08.png-3e4f4107cf29ae62d0499e7f86bfced7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_09.png b/exported_glb/BloodElfFemale_textures/face_lower_18_09.png new file mode 100644 index 0000000..524addf Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_18_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_18_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_18_09.png.import new file mode 100644 index 0000000..cdc2dbf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_18_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://p2biuep6l5h" +path="res://.godot/imported/face_lower_18_09.png-abc47ae6318cd8311b7217b2b538e1c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_18_09.png" +dest_files=["res://.godot/imported/face_lower_18_09.png-abc47ae6318cd8311b7217b2b538e1c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_00.png b/exported_glb/BloodElfFemale_textures/face_lower_19_00.png new file mode 100644 index 0000000..9000177 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_00.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_00.png.import new file mode 100644 index 0000000..e9ddcff --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1yt0qq85mksp" +path="res://.godot/imported/face_lower_19_00.png-7a2f052eb5600f911c64062e6589f54a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_00.png" +dest_files=["res://.godot/imported/face_lower_19_00.png-7a2f052eb5600f911c64062e6589f54a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_01.png b/exported_glb/BloodElfFemale_textures/face_lower_19_01.png new file mode 100644 index 0000000..71b54a1 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_01.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_01.png.import new file mode 100644 index 0000000..782789a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccm7cyyxjus6" +path="res://.godot/imported/face_lower_19_01.png-374a2e8589fe5fd0fe18408824066614.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_01.png" +dest_files=["res://.godot/imported/face_lower_19_01.png-374a2e8589fe5fd0fe18408824066614.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_02.png b/exported_glb/BloodElfFemale_textures/face_lower_19_02.png new file mode 100644 index 0000000..e5b8c16 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_02.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_02.png.import new file mode 100644 index 0000000..d1084d4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brw2nquu3msh" +path="res://.godot/imported/face_lower_19_02.png-1ebbd03196bc889cee19d0404e6b41cb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_02.png" +dest_files=["res://.godot/imported/face_lower_19_02.png-1ebbd03196bc889cee19d0404e6b41cb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_03.png b/exported_glb/BloodElfFemale_textures/face_lower_19_03.png new file mode 100644 index 0000000..7ae3fbc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_03.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_03.png.import new file mode 100644 index 0000000..3649267 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bel75u2xlpri3" +path="res://.godot/imported/face_lower_19_03.png-2c114260fa3f04957e5a446f9f111656.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_03.png" +dest_files=["res://.godot/imported/face_lower_19_03.png-2c114260fa3f04957e5a446f9f111656.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_04.png b/exported_glb/BloodElfFemale_textures/face_lower_19_04.png new file mode 100644 index 0000000..e1eb5b3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_04.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_04.png.import new file mode 100644 index 0000000..80bcc6e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dutk7r6gxeyyh" +path="res://.godot/imported/face_lower_19_04.png-0f76a045308bed10f8f3cc67034bf3de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_04.png" +dest_files=["res://.godot/imported/face_lower_19_04.png-0f76a045308bed10f8f3cc67034bf3de.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_05.png b/exported_glb/BloodElfFemale_textures/face_lower_19_05.png new file mode 100644 index 0000000..e5dba9a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_05.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_05.png.import new file mode 100644 index 0000000..d99b0c9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccojsd4ndtrwx" +path="res://.godot/imported/face_lower_19_05.png-39db544c2aeebe853cc8f2ae02fcc260.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_05.png" +dest_files=["res://.godot/imported/face_lower_19_05.png-39db544c2aeebe853cc8f2ae02fcc260.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_06.png b/exported_glb/BloodElfFemale_textures/face_lower_19_06.png new file mode 100644 index 0000000..110a785 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_06.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_06.png.import new file mode 100644 index 0000000..b46df5f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbm26ck1ng14j" +path="res://.godot/imported/face_lower_19_06.png-e0d44428519316f8f521dccaf228de98.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_06.png" +dest_files=["res://.godot/imported/face_lower_19_06.png-e0d44428519316f8f521dccaf228de98.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_07.png b/exported_glb/BloodElfFemale_textures/face_lower_19_07.png new file mode 100644 index 0000000..1bb2319 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_07.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_07.png.import new file mode 100644 index 0000000..83da35e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1fsnen5hvvw1" +path="res://.godot/imported/face_lower_19_07.png-fc4c663b1e90a21aa277ec39b7b4f1dd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_07.png" +dest_files=["res://.godot/imported/face_lower_19_07.png-fc4c663b1e90a21aa277ec39b7b4f1dd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_08.png b/exported_glb/BloodElfFemale_textures/face_lower_19_08.png new file mode 100644 index 0000000..09f8f22 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_08.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_08.png.import new file mode 100644 index 0000000..ec5cb44 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bctjrbyg0msf8" +path="res://.godot/imported/face_lower_19_08.png-4c605f17d89d54e7581879a25e2b468e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_08.png" +dest_files=["res://.godot/imported/face_lower_19_08.png-4c605f17d89d54e7581879a25e2b468e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_09.png b/exported_glb/BloodElfFemale_textures/face_lower_19_09.png new file mode 100644 index 0000000..3361d45 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_lower_19_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_lower_19_09.png.import b/exported_glb/BloodElfFemale_textures/face_lower_19_09.png.import new file mode 100644 index 0000000..baee6e0 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_lower_19_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://65o66kckgdi5" +path="res://.godot/imported/face_lower_19_09.png-32ff05ea057f9b250b68bcfc3a1dc70f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_lower_19_09.png" +dest_files=["res://.godot/imported/face_lower_19_09.png-32ff05ea057f9b250b68bcfc3a1dc70f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_00.png b/exported_glb/BloodElfFemale_textures/face_upper_00_00.png new file mode 100644 index 0000000..e6bcaa2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_00.png.import new file mode 100644 index 0000000..4200001 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cgb5b2o15aej7" +path="res://.godot/imported/face_upper_00_00.png-5adc0031ae563124fa0c38b85030e081.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_00.png" +dest_files=["res://.godot/imported/face_upper_00_00.png-5adc0031ae563124fa0c38b85030e081.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_01.png b/exported_glb/BloodElfFemale_textures/face_upper_00_01.png new file mode 100644 index 0000000..dfb1fc0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_01.png.import new file mode 100644 index 0000000..b23399f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wr4abpu6p72c" +path="res://.godot/imported/face_upper_00_01.png-3e72da20621ba8a4ebb71d96f7a669c3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_01.png" +dest_files=["res://.godot/imported/face_upper_00_01.png-3e72da20621ba8a4ebb71d96f7a669c3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_02.png b/exported_glb/BloodElfFemale_textures/face_upper_00_02.png new file mode 100644 index 0000000..4d83650 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_02.png.import new file mode 100644 index 0000000..0b38073 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dootuuc0vgwww" +path="res://.godot/imported/face_upper_00_02.png-0ade3407578ba9926c8b969c277d0add.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_02.png" +dest_files=["res://.godot/imported/face_upper_00_02.png-0ade3407578ba9926c8b969c277d0add.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_03.png b/exported_glb/BloodElfFemale_textures/face_upper_00_03.png new file mode 100644 index 0000000..da00262 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_03.png.import new file mode 100644 index 0000000..0491257 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3r6qas3gpokw" +path="res://.godot/imported/face_upper_00_03.png-8b5a4e74677aabe1fe07bf290c968690.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_03.png" +dest_files=["res://.godot/imported/face_upper_00_03.png-8b5a4e74677aabe1fe07bf290c968690.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_04.png b/exported_glb/BloodElfFemale_textures/face_upper_00_04.png new file mode 100644 index 0000000..35cbe57 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_04.png.import new file mode 100644 index 0000000..791f23d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtoy0e4tup1r" +path="res://.godot/imported/face_upper_00_04.png-15cbfe430e3d8f31792388b7618f368f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_04.png" +dest_files=["res://.godot/imported/face_upper_00_04.png-15cbfe430e3d8f31792388b7618f368f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_05.png b/exported_glb/BloodElfFemale_textures/face_upper_00_05.png new file mode 100644 index 0000000..ba6bf62 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_05.png.import new file mode 100644 index 0000000..6a6c20b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bku8o337dp5ib" +path="res://.godot/imported/face_upper_00_05.png-de385bdc0166c11598d1247ae00335b0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_05.png" +dest_files=["res://.godot/imported/face_upper_00_05.png-de385bdc0166c11598d1247ae00335b0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_06.png b/exported_glb/BloodElfFemale_textures/face_upper_00_06.png new file mode 100644 index 0000000..57c9be3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_06.png.import new file mode 100644 index 0000000..9173329 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cq6oae1w4ehi6" +path="res://.godot/imported/face_upper_00_06.png-6c00c3ceab9890b84c7fe923dcfa6a6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_06.png" +dest_files=["res://.godot/imported/face_upper_00_06.png-6c00c3ceab9890b84c7fe923dcfa6a6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_07.png b/exported_glb/BloodElfFemale_textures/face_upper_00_07.png new file mode 100644 index 0000000..85fd67f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_07.png.import new file mode 100644 index 0000000..16cc3dc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bev516r2wgm5u" +path="res://.godot/imported/face_upper_00_07.png-af8db57ea9db3528c1342ef449bf7b65.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_07.png" +dest_files=["res://.godot/imported/face_upper_00_07.png-af8db57ea9db3528c1342ef449bf7b65.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_08.png b/exported_glb/BloodElfFemale_textures/face_upper_00_08.png new file mode 100644 index 0000000..ae100e0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_08.png.import new file mode 100644 index 0000000..3595602 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cs6es67jjkuq0" +path="res://.godot/imported/face_upper_00_08.png-50690a785139f31ddb22f4b3164154cb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_08.png" +dest_files=["res://.godot/imported/face_upper_00_08.png-50690a785139f31ddb22f4b3164154cb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_09.png b/exported_glb/BloodElfFemale_textures/face_upper_00_09.png new file mode 100644 index 0000000..d6fa796 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_09.png.import new file mode 100644 index 0000000..b7a6f5c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckm5mg5t8uofm" +path="res://.godot/imported/face_upper_00_09.png-4fedc4d6e5c6c74af865bbcb066cc896.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_09.png" +dest_files=["res://.godot/imported/face_upper_00_09.png-4fedc4d6e5c6c74af865bbcb066cc896.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_10.png b/exported_glb/BloodElfFemale_textures/face_upper_00_10.png new file mode 100644 index 0000000..f3cd116 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_10.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_10.png.import new file mode 100644 index 0000000..1e5db26 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rmauaq3xa1xi" +path="res://.godot/imported/face_upper_00_10.png-ca0f272ada9f1f5e652b3f691bf0b23d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_10.png" +dest_files=["res://.godot/imported/face_upper_00_10.png-ca0f272ada9f1f5e652b3f691bf0b23d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_11.png b/exported_glb/BloodElfFemale_textures/face_upper_00_11.png new file mode 100644 index 0000000..dae33c9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_11.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_11.png.import new file mode 100644 index 0000000..e14bfe9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxsn7pq70wu6y" +path="res://.godot/imported/face_upper_00_11.png-a39ef1351205a35ce2ccd3b1a883d5e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_11.png" +dest_files=["res://.godot/imported/face_upper_00_11.png-a39ef1351205a35ce2ccd3b1a883d5e9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_12.png b/exported_glb/BloodElfFemale_textures/face_upper_00_12.png new file mode 100644 index 0000000..87c48c7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_00_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_00_12.png.import b/exported_glb/BloodElfFemale_textures/face_upper_00_12.png.import new file mode 100644 index 0000000..17420b6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_00_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l04wsah3fk11" +path="res://.godot/imported/face_upper_00_12.png-95c1b80e6ecebaa98c2bda2b7993946c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_00_12.png" +dest_files=["res://.godot/imported/face_upper_00_12.png-95c1b80e6ecebaa98c2bda2b7993946c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_00.png b/exported_glb/BloodElfFemale_textures/face_upper_01_00.png new file mode 100644 index 0000000..473b285 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_00.png.import new file mode 100644 index 0000000..37cbd6c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcodeg4ffcjuc" +path="res://.godot/imported/face_upper_01_00.png-4a4d79e59bc20dbbd7d59bbd5ee7ec17.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_00.png" +dest_files=["res://.godot/imported/face_upper_01_00.png-4a4d79e59bc20dbbd7d59bbd5ee7ec17.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_01.png b/exported_glb/BloodElfFemale_textures/face_upper_01_01.png new file mode 100644 index 0000000..9977c66 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_01.png.import new file mode 100644 index 0000000..ab307d4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dami4mwqo53x8" +path="res://.godot/imported/face_upper_01_01.png-0beb723471cb36ffa0371cb2c9b3f4f1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_01.png" +dest_files=["res://.godot/imported/face_upper_01_01.png-0beb723471cb36ffa0371cb2c9b3f4f1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_02.png b/exported_glb/BloodElfFemale_textures/face_upper_01_02.png new file mode 100644 index 0000000..9ad00e0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_02.png.import new file mode 100644 index 0000000..51404e8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi5otat37lpqh" +path="res://.godot/imported/face_upper_01_02.png-999c2528b68543103bca582a71634240.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_02.png" +dest_files=["res://.godot/imported/face_upper_01_02.png-999c2528b68543103bca582a71634240.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_03.png b/exported_glb/BloodElfFemale_textures/face_upper_01_03.png new file mode 100644 index 0000000..07ff8d2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_03.png.import new file mode 100644 index 0000000..9eddf63 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0g4obrosaoh1" +path="res://.godot/imported/face_upper_01_03.png-22bc1480a8f82b7cb4e1f780f702d462.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_03.png" +dest_files=["res://.godot/imported/face_upper_01_03.png-22bc1480a8f82b7cb4e1f780f702d462.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_04.png b/exported_glb/BloodElfFemale_textures/face_upper_01_04.png new file mode 100644 index 0000000..7ce0735 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_04.png.import new file mode 100644 index 0000000..46b6291 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vxtpnr11r0s2" +path="res://.godot/imported/face_upper_01_04.png-c4e29192398c3422f7668f636cf8bb02.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_04.png" +dest_files=["res://.godot/imported/face_upper_01_04.png-c4e29192398c3422f7668f636cf8bb02.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_05.png b/exported_glb/BloodElfFemale_textures/face_upper_01_05.png new file mode 100644 index 0000000..694b580 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_05.png.import new file mode 100644 index 0000000..6c1b9c8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdoxjnpo7541h" +path="res://.godot/imported/face_upper_01_05.png-928c80d7979d386d939e2d7a728079d8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_05.png" +dest_files=["res://.godot/imported/face_upper_01_05.png-928c80d7979d386d939e2d7a728079d8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_06.png b/exported_glb/BloodElfFemale_textures/face_upper_01_06.png new file mode 100644 index 0000000..2dc1e6d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_06.png.import new file mode 100644 index 0000000..86a326c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c11vdg113jrqq" +path="res://.godot/imported/face_upper_01_06.png-40e10b884cbd39520555ebe7416f222f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_06.png" +dest_files=["res://.godot/imported/face_upper_01_06.png-40e10b884cbd39520555ebe7416f222f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_07.png b/exported_glb/BloodElfFemale_textures/face_upper_01_07.png new file mode 100644 index 0000000..c7da93c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_07.png.import new file mode 100644 index 0000000..3c34270 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pcac8g4wg0vr" +path="res://.godot/imported/face_upper_01_07.png-d99774121f0feb5caed992b450fea1c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_07.png" +dest_files=["res://.godot/imported/face_upper_01_07.png-d99774121f0feb5caed992b450fea1c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_08.png b/exported_glb/BloodElfFemale_textures/face_upper_01_08.png new file mode 100644 index 0000000..adeb118 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_08.png.import new file mode 100644 index 0000000..fed1c78 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfda1qhf8wwp0" +path="res://.godot/imported/face_upper_01_08.png-a93f47880a09ba04ab323ac4a84a84f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_08.png" +dest_files=["res://.godot/imported/face_upper_01_08.png-a93f47880a09ba04ab323ac4a84a84f0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_09.png b/exported_glb/BloodElfFemale_textures/face_upper_01_09.png new file mode 100644 index 0000000..a9da67f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_01_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_01_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_01_09.png.import new file mode 100644 index 0000000..2272e04 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_01_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvfwvkb8nvgys" +path="res://.godot/imported/face_upper_01_09.png-a0ef32c81dcd413075df274ba2059d01.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_01_09.png" +dest_files=["res://.godot/imported/face_upper_01_09.png-a0ef32c81dcd413075df274ba2059d01.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_00.png b/exported_glb/BloodElfFemale_textures/face_upper_02_00.png new file mode 100644 index 0000000..7162308 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_00.png.import new file mode 100644 index 0000000..00dd49a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xa7h0unalnk" +path="res://.godot/imported/face_upper_02_00.png-7636f771ca2381cac8e290e00ea17e43.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_00.png" +dest_files=["res://.godot/imported/face_upper_02_00.png-7636f771ca2381cac8e290e00ea17e43.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_01.png b/exported_glb/BloodElfFemale_textures/face_upper_02_01.png new file mode 100644 index 0000000..2346434 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_01.png.import new file mode 100644 index 0000000..b230f1b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dr787hq05j7qv" +path="res://.godot/imported/face_upper_02_01.png-79d45afc956c72f1b6da134103d34436.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_01.png" +dest_files=["res://.godot/imported/face_upper_02_01.png-79d45afc956c72f1b6da134103d34436.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_02.png b/exported_glb/BloodElfFemale_textures/face_upper_02_02.png new file mode 100644 index 0000000..1e82383 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_02.png.import new file mode 100644 index 0000000..693ba79 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs55pfkyb7tp7" +path="res://.godot/imported/face_upper_02_02.png-c78760707bdf2edadb9ee6e61ca9b690.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_02.png" +dest_files=["res://.godot/imported/face_upper_02_02.png-c78760707bdf2edadb9ee6e61ca9b690.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_03.png b/exported_glb/BloodElfFemale_textures/face_upper_02_03.png new file mode 100644 index 0000000..cb80b05 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_03.png.import new file mode 100644 index 0000000..7fa815f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyfcbxikh4uwq" +path="res://.godot/imported/face_upper_02_03.png-fe8dbe000cdd44d43bfe842ebf4f66f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_03.png" +dest_files=["res://.godot/imported/face_upper_02_03.png-fe8dbe000cdd44d43bfe842ebf4f66f9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_04.png b/exported_glb/BloodElfFemale_textures/face_upper_02_04.png new file mode 100644 index 0000000..130295a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_04.png.import new file mode 100644 index 0000000..4348c4e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnr06ch0qrkf4" +path="res://.godot/imported/face_upper_02_04.png-f6cf9a0a24f3dfb262ef5174e100a721.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_04.png" +dest_files=["res://.godot/imported/face_upper_02_04.png-f6cf9a0a24f3dfb262ef5174e100a721.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_05.png b/exported_glb/BloodElfFemale_textures/face_upper_02_05.png new file mode 100644 index 0000000..fd2a174 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_05.png.import new file mode 100644 index 0000000..d932162 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brrbogtiug8v6" +path="res://.godot/imported/face_upper_02_05.png-b2c11b387355d4caa5d975cda519c0a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_05.png" +dest_files=["res://.godot/imported/face_upper_02_05.png-b2c11b387355d4caa5d975cda519c0a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_06.png b/exported_glb/BloodElfFemale_textures/face_upper_02_06.png new file mode 100644 index 0000000..49df5cf Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_06.png.import new file mode 100644 index 0000000..c2f3274 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhqaksjcqu0o2" +path="res://.godot/imported/face_upper_02_06.png-a48649251434935d382d1bfb02f007df.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_06.png" +dest_files=["res://.godot/imported/face_upper_02_06.png-a48649251434935d382d1bfb02f007df.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_07.png b/exported_glb/BloodElfFemale_textures/face_upper_02_07.png new file mode 100644 index 0000000..1f77107 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_07.png.import new file mode 100644 index 0000000..967f02f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c87v4b7d1ipay" +path="res://.godot/imported/face_upper_02_07.png-a6900cc1b7050ff6f2b5be9dc8448892.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_07.png" +dest_files=["res://.godot/imported/face_upper_02_07.png-a6900cc1b7050ff6f2b5be9dc8448892.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_08.png b/exported_glb/BloodElfFemale_textures/face_upper_02_08.png new file mode 100644 index 0000000..1b87a36 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_08.png.import new file mode 100644 index 0000000..9bf86ee --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8nmm8p3vplcl" +path="res://.godot/imported/face_upper_02_08.png-23d2a640b3e702746a6eb4120fd251e2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_08.png" +dest_files=["res://.godot/imported/face_upper_02_08.png-23d2a640b3e702746a6eb4120fd251e2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_09.png b/exported_glb/BloodElfFemale_textures/face_upper_02_09.png new file mode 100644 index 0000000..289b3f2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_02_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_02_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_02_09.png.import new file mode 100644 index 0000000..c1af680 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_02_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccmq83up0hi8l" +path="res://.godot/imported/face_upper_02_09.png-489d2e02e789c8b435f5cfaf5ba16251.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_02_09.png" +dest_files=["res://.godot/imported/face_upper_02_09.png-489d2e02e789c8b435f5cfaf5ba16251.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_00.png b/exported_glb/BloodElfFemale_textures/face_upper_03_00.png new file mode 100644 index 0000000..6187b70 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_00.png.import new file mode 100644 index 0000000..8c7b484 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://boca1q8syuwfj" +path="res://.godot/imported/face_upper_03_00.png-6a1bfd8134939d587b53da42b467f994.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_00.png" +dest_files=["res://.godot/imported/face_upper_03_00.png-6a1bfd8134939d587b53da42b467f994.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_01.png b/exported_glb/BloodElfFemale_textures/face_upper_03_01.png new file mode 100644 index 0000000..1b66b69 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_01.png.import new file mode 100644 index 0000000..60992df --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0ie7wewdbfhu" +path="res://.godot/imported/face_upper_03_01.png-e28cf481379031731f08c9db987b3c8b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_01.png" +dest_files=["res://.godot/imported/face_upper_03_01.png-e28cf481379031731f08c9db987b3c8b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_02.png b/exported_glb/BloodElfFemale_textures/face_upper_03_02.png new file mode 100644 index 0000000..01f00c6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_02.png.import new file mode 100644 index 0000000..e827480 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4iiq7fff48yd" +path="res://.godot/imported/face_upper_03_02.png-a144784b6bd1614091d75d2217bf4b20.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_02.png" +dest_files=["res://.godot/imported/face_upper_03_02.png-a144784b6bd1614091d75d2217bf4b20.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_03.png b/exported_glb/BloodElfFemale_textures/face_upper_03_03.png new file mode 100644 index 0000000..c1b2591 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_03.png.import new file mode 100644 index 0000000..f279e50 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duelkp8ukhphf" +path="res://.godot/imported/face_upper_03_03.png-40a683e4273d6af0e03cc31eed177db4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_03.png" +dest_files=["res://.godot/imported/face_upper_03_03.png-40a683e4273d6af0e03cc31eed177db4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_04.png b/exported_glb/BloodElfFemale_textures/face_upper_03_04.png new file mode 100644 index 0000000..e2ea2f8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_04.png.import new file mode 100644 index 0000000..18ea193 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpgwmfs0fax7g" +path="res://.godot/imported/face_upper_03_04.png-5af6fa0aafdf78fa253a87e39159a204.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_04.png" +dest_files=["res://.godot/imported/face_upper_03_04.png-5af6fa0aafdf78fa253a87e39159a204.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_05.png b/exported_glb/BloodElfFemale_textures/face_upper_03_05.png new file mode 100644 index 0000000..d84daba Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_05.png.import new file mode 100644 index 0000000..f76b525 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dl08ltbmq0hfw" +path="res://.godot/imported/face_upper_03_05.png-9c666f34a734afd6030e82d58173510f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_05.png" +dest_files=["res://.godot/imported/face_upper_03_05.png-9c666f34a734afd6030e82d58173510f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_06.png b/exported_glb/BloodElfFemale_textures/face_upper_03_06.png new file mode 100644 index 0000000..8e20356 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_06.png.import new file mode 100644 index 0000000..74495d9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhnb4gs0bvyg4" +path="res://.godot/imported/face_upper_03_06.png-d9f99455a01ccdc063b62d0f9c754132.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_06.png" +dest_files=["res://.godot/imported/face_upper_03_06.png-d9f99455a01ccdc063b62d0f9c754132.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_07.png b/exported_glb/BloodElfFemale_textures/face_upper_03_07.png new file mode 100644 index 0000000..0e814be Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_07.png.import new file mode 100644 index 0000000..c250dee --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bq0160bq7rs18" +path="res://.godot/imported/face_upper_03_07.png-f39aed5132e013156f6a515966ec2f31.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_07.png" +dest_files=["res://.godot/imported/face_upper_03_07.png-f39aed5132e013156f6a515966ec2f31.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_08.png b/exported_glb/BloodElfFemale_textures/face_upper_03_08.png new file mode 100644 index 0000000..12dee4a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_08.png.import new file mode 100644 index 0000000..6c3e7b6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ndrsein8bsg8" +path="res://.godot/imported/face_upper_03_08.png-ca27fa17a55474e8d0089ea3c189b007.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_08.png" +dest_files=["res://.godot/imported/face_upper_03_08.png-ca27fa17a55474e8d0089ea3c189b007.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_09.png b/exported_glb/BloodElfFemale_textures/face_upper_03_09.png new file mode 100644 index 0000000..7aa497f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_09.png.import new file mode 100644 index 0000000..bd50ba3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh6o67a3mkwfy" +path="res://.godot/imported/face_upper_03_09.png-249f1c8e4c5860eecdb6c044ac2851be.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_09.png" +dest_files=["res://.godot/imported/face_upper_03_09.png-249f1c8e4c5860eecdb6c044ac2851be.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_10.png b/exported_glb/BloodElfFemale_textures/face_upper_03_10.png new file mode 100644 index 0000000..d90cbdb Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_10.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_10.png.import new file mode 100644 index 0000000..b7c1f54 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjwtbpgxmlqbs" +path="res://.godot/imported/face_upper_03_10.png-e9f410b5eddd159e4ceff724ee6837d4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_10.png" +dest_files=["res://.godot/imported/face_upper_03_10.png-e9f410b5eddd159e4ceff724ee6837d4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_11.png b/exported_glb/BloodElfFemale_textures/face_upper_03_11.png new file mode 100644 index 0000000..0dbd112 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_11.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_11.png.import new file mode 100644 index 0000000..16346f0 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mb7vgdi7a3hf" +path="res://.godot/imported/face_upper_03_11.png-a86318de43a9f3cef17b2dd45a533aed.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_11.png" +dest_files=["res://.godot/imported/face_upper_03_11.png-a86318de43a9f3cef17b2dd45a533aed.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_12.png b/exported_glb/BloodElfFemale_textures/face_upper_03_12.png new file mode 100644 index 0000000..31b3369 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_03_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_03_12.png.import b/exported_glb/BloodElfFemale_textures/face_upper_03_12.png.import new file mode 100644 index 0000000..f688007 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_03_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnmvvjxo3yqac" +path="res://.godot/imported/face_upper_03_12.png-2ab95321ecfa6916516457a5a5e73257.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_03_12.png" +dest_files=["res://.godot/imported/face_upper_03_12.png-2ab95321ecfa6916516457a5a5e73257.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_00.png b/exported_glb/BloodElfFemale_textures/face_upper_04_00.png new file mode 100644 index 0000000..88ff71b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_00.png.import new file mode 100644 index 0000000..cf767d1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b52qyw84swy6t" +path="res://.godot/imported/face_upper_04_00.png-1630dc4ff44873a4163ae8489b21633d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_00.png" +dest_files=["res://.godot/imported/face_upper_04_00.png-1630dc4ff44873a4163ae8489b21633d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_01.png b/exported_glb/BloodElfFemale_textures/face_upper_04_01.png new file mode 100644 index 0000000..2346434 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_01.png.import new file mode 100644 index 0000000..ec9fa86 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnetk7bywmbiv" +path="res://.godot/imported/face_upper_04_01.png-7eb469a6e2a9ab4bda8e7bad14f7e02c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_01.png" +dest_files=["res://.godot/imported/face_upper_04_01.png-7eb469a6e2a9ab4bda8e7bad14f7e02c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_02.png b/exported_glb/BloodElfFemale_textures/face_upper_04_02.png new file mode 100644 index 0000000..405f6e9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_02.png.import new file mode 100644 index 0000000..bddf7fb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l01wttxwdes2" +path="res://.godot/imported/face_upper_04_02.png-2e3e22a8209d5a53be7b5019cc8c4a84.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_02.png" +dest_files=["res://.godot/imported/face_upper_04_02.png-2e3e22a8209d5a53be7b5019cc8c4a84.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_03.png b/exported_glb/BloodElfFemale_textures/face_upper_04_03.png new file mode 100644 index 0000000..0bc6cea Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_03.png.import new file mode 100644 index 0000000..2be2405 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dd63th86dy1an" +path="res://.godot/imported/face_upper_04_03.png-fb61347813a28975dc2a2239ba7588be.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_03.png" +dest_files=["res://.godot/imported/face_upper_04_03.png-fb61347813a28975dc2a2239ba7588be.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_04.png b/exported_glb/BloodElfFemale_textures/face_upper_04_04.png new file mode 100644 index 0000000..b552f23 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_04.png.import new file mode 100644 index 0000000..6250fbe --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtqqfk0h7u130" +path="res://.godot/imported/face_upper_04_04.png-c09f3fe468ffef6486d26fede9e785f1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_04.png" +dest_files=["res://.godot/imported/face_upper_04_04.png-c09f3fe468ffef6486d26fede9e785f1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_05.png b/exported_glb/BloodElfFemale_textures/face_upper_04_05.png new file mode 100644 index 0000000..7aa5077 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_05.png.import new file mode 100644 index 0000000..8b243b8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgj8r3cmaxr3e" +path="res://.godot/imported/face_upper_04_05.png-b169dea5beb0f652da4ece70f4133b2b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_05.png" +dest_files=["res://.godot/imported/face_upper_04_05.png-b169dea5beb0f652da4ece70f4133b2b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_06.png b/exported_glb/BloodElfFemale_textures/face_upper_04_06.png new file mode 100644 index 0000000..5fcc435 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_06.png.import new file mode 100644 index 0000000..144fa6e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsopqfgo7qoxn" +path="res://.godot/imported/face_upper_04_06.png-f595095e28453c7d806da9db03b8ee36.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_06.png" +dest_files=["res://.godot/imported/face_upper_04_06.png-f595095e28453c7d806da9db03b8ee36.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_07.png b/exported_glb/BloodElfFemale_textures/face_upper_04_07.png new file mode 100644 index 0000000..b7baa15 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_07.png.import new file mode 100644 index 0000000..89c6708 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b27lgiua751cb" +path="res://.godot/imported/face_upper_04_07.png-7afe280bcf9d1de5ba22b2b92fb62af0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_07.png" +dest_files=["res://.godot/imported/face_upper_04_07.png-7afe280bcf9d1de5ba22b2b92fb62af0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_08.png b/exported_glb/BloodElfFemale_textures/face_upper_04_08.png new file mode 100644 index 0000000..180cdbd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_08.png.import new file mode 100644 index 0000000..87cfca8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dumtk11qkx6eq" +path="res://.godot/imported/face_upper_04_08.png-c4918e58a2c2193345a030a2250904a8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_08.png" +dest_files=["res://.godot/imported/face_upper_04_08.png-c4918e58a2c2193345a030a2250904a8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_09.png b/exported_glb/BloodElfFemale_textures/face_upper_04_09.png new file mode 100644 index 0000000..15bdcd1 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_04_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_04_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_04_09.png.import new file mode 100644 index 0000000..63cbef1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_04_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1nedf0e0wsh3" +path="res://.godot/imported/face_upper_04_09.png-b7c9048a929e3da8616af1137c162f67.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_04_09.png" +dest_files=["res://.godot/imported/face_upper_04_09.png-b7c9048a929e3da8616af1137c162f67.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_00.png b/exported_glb/BloodElfFemale_textures/face_upper_05_00.png new file mode 100644 index 0000000..5ae9201 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_00.png.import new file mode 100644 index 0000000..15591fb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duyaimqk7etba" +path="res://.godot/imported/face_upper_05_00.png-760c32cf6a1acc824b9b2eaeb4883342.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_00.png" +dest_files=["res://.godot/imported/face_upper_05_00.png-760c32cf6a1acc824b9b2eaeb4883342.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_01.png b/exported_glb/BloodElfFemale_textures/face_upper_05_01.png new file mode 100644 index 0000000..fc5e596 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_01.png.import new file mode 100644 index 0000000..7452e2a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5ovna6vsaj84" +path="res://.godot/imported/face_upper_05_01.png-f5305bb5894dc885a4e6c038d0717729.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_01.png" +dest_files=["res://.godot/imported/face_upper_05_01.png-f5305bb5894dc885a4e6c038d0717729.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_02.png b/exported_glb/BloodElfFemale_textures/face_upper_05_02.png new file mode 100644 index 0000000..38936c9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_02.png.import new file mode 100644 index 0000000..9abadc8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsl1tafp3aaby" +path="res://.godot/imported/face_upper_05_02.png-d9bf09eb58d1f0aa54353dfcfb667081.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_02.png" +dest_files=["res://.godot/imported/face_upper_05_02.png-d9bf09eb58d1f0aa54353dfcfb667081.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_03.png b/exported_glb/BloodElfFemale_textures/face_upper_05_03.png new file mode 100644 index 0000000..78724be Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_03.png.import new file mode 100644 index 0000000..83f1f65 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blqimskhan03f" +path="res://.godot/imported/face_upper_05_03.png-f2c468a433ef0517a2f065e906735217.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_03.png" +dest_files=["res://.godot/imported/face_upper_05_03.png-f2c468a433ef0517a2f065e906735217.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_04.png b/exported_glb/BloodElfFemale_textures/face_upper_05_04.png new file mode 100644 index 0000000..8d080ba Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_04.png.import new file mode 100644 index 0000000..c6307c8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://br731vftajl4t" +path="res://.godot/imported/face_upper_05_04.png-334b75c22b37f15fbf7a3fa7c51a036e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_04.png" +dest_files=["res://.godot/imported/face_upper_05_04.png-334b75c22b37f15fbf7a3fa7c51a036e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_05.png b/exported_glb/BloodElfFemale_textures/face_upper_05_05.png new file mode 100644 index 0000000..fcabfec Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_05.png.import new file mode 100644 index 0000000..6ea5016 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chlmr7b7r8vca" +path="res://.godot/imported/face_upper_05_05.png-17dee658f6de05940b8911b5755d09ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_05.png" +dest_files=["res://.godot/imported/face_upper_05_05.png-17dee658f6de05940b8911b5755d09ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_06.png b/exported_glb/BloodElfFemale_textures/face_upper_05_06.png new file mode 100644 index 0000000..5acb8e6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_06.png.import new file mode 100644 index 0000000..e05ff5d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqpxmsp7l8qcg" +path="res://.godot/imported/face_upper_05_06.png-c698a8a564f6e400f5343420ee628d6b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_06.png" +dest_files=["res://.godot/imported/face_upper_05_06.png-c698a8a564f6e400f5343420ee628d6b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_07.png b/exported_glb/BloodElfFemale_textures/face_upper_05_07.png new file mode 100644 index 0000000..15a21a5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_07.png.import new file mode 100644 index 0000000..4510fd9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2hl0fjbki0it" +path="res://.godot/imported/face_upper_05_07.png-f1dd6bd71def9fe6d3e03e2c2b3f4d58.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_07.png" +dest_files=["res://.godot/imported/face_upper_05_07.png-f1dd6bd71def9fe6d3e03e2c2b3f4d58.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_08.png b/exported_glb/BloodElfFemale_textures/face_upper_05_08.png new file mode 100644 index 0000000..cad113e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_08.png.import new file mode 100644 index 0000000..9d189b8 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cl58jx8syoo7k" +path="res://.godot/imported/face_upper_05_08.png-01413a57541f56f5c388c5f9b73f04e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_08.png" +dest_files=["res://.godot/imported/face_upper_05_08.png-01413a57541f56f5c388c5f9b73f04e6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_09.png b/exported_glb/BloodElfFemale_textures/face_upper_05_09.png new file mode 100644 index 0000000..6797b03 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_05_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_05_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_05_09.png.import new file mode 100644 index 0000000..1eef029 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_05_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1vqc4rexvmb1" +path="res://.godot/imported/face_upper_05_09.png-45dc85bf60c2683cc101481df3a4715c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_05_09.png" +dest_files=["res://.godot/imported/face_upper_05_09.png-45dc85bf60c2683cc101481df3a4715c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_00.png b/exported_glb/BloodElfFemale_textures/face_upper_06_00.png new file mode 100644 index 0000000..232cd50 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_00.png.import new file mode 100644 index 0000000..509e641 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ik1wlkdcytrp" +path="res://.godot/imported/face_upper_06_00.png-d348854ef7e321d9686e51ed6c5a9290.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_00.png" +dest_files=["res://.godot/imported/face_upper_06_00.png-d348854ef7e321d9686e51ed6c5a9290.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_01.png b/exported_glb/BloodElfFemale_textures/face_upper_06_01.png new file mode 100644 index 0000000..6a3551d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_01.png.import new file mode 100644 index 0000000..6d6d473 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccnd204gum1bi" +path="res://.godot/imported/face_upper_06_01.png-f8bdcc66b6849e02aab7b933b95a02b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_01.png" +dest_files=["res://.godot/imported/face_upper_06_01.png-f8bdcc66b6849e02aab7b933b95a02b3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_02.png b/exported_glb/BloodElfFemale_textures/face_upper_06_02.png new file mode 100644 index 0000000..291dc12 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_02.png.import new file mode 100644 index 0000000..2fcfbe6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwj6kvy188rc6" +path="res://.godot/imported/face_upper_06_02.png-b173c0873f3de6ac61b317043c45d1d7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_02.png" +dest_files=["res://.godot/imported/face_upper_06_02.png-b173c0873f3de6ac61b317043c45d1d7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_03.png b/exported_glb/BloodElfFemale_textures/face_upper_06_03.png new file mode 100644 index 0000000..2b3091d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_03.png.import new file mode 100644 index 0000000..69b5819 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dek5ojij4sl7f" +path="res://.godot/imported/face_upper_06_03.png-36ff4f90654f8908207bad889271ddab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_03.png" +dest_files=["res://.godot/imported/face_upper_06_03.png-36ff4f90654f8908207bad889271ddab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_04.png b/exported_glb/BloodElfFemale_textures/face_upper_06_04.png new file mode 100644 index 0000000..5d4f6b4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_04.png.import new file mode 100644 index 0000000..004cad4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsjb04rd46w43" +path="res://.godot/imported/face_upper_06_04.png-e3bf9e8647e8ad2cda235b972e55d936.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_04.png" +dest_files=["res://.godot/imported/face_upper_06_04.png-e3bf9e8647e8ad2cda235b972e55d936.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_05.png b/exported_glb/BloodElfFemale_textures/face_upper_06_05.png new file mode 100644 index 0000000..92cb6c4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_05.png.import new file mode 100644 index 0000000..6da20b9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm51tn0tp4tu3" +path="res://.godot/imported/face_upper_06_05.png-8c778ac9b055dfa382b6db9f475f98ef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_05.png" +dest_files=["res://.godot/imported/face_upper_06_05.png-8c778ac9b055dfa382b6db9f475f98ef.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_06.png b/exported_glb/BloodElfFemale_textures/face_upper_06_06.png new file mode 100644 index 0000000..c30b8ca Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_06.png.import new file mode 100644 index 0000000..85e950a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bptfa78raq6c5" +path="res://.godot/imported/face_upper_06_06.png-5ee7816c91b0e8f6554b48ca5c65f8e0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_06.png" +dest_files=["res://.godot/imported/face_upper_06_06.png-5ee7816c91b0e8f6554b48ca5c65f8e0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_07.png b/exported_glb/BloodElfFemale_textures/face_upper_06_07.png new file mode 100644 index 0000000..1283f1c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_07.png.import new file mode 100644 index 0000000..23d553c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bj5pjqgg36fx6" +path="res://.godot/imported/face_upper_06_07.png-4c308e2cdc1562e5cee6b17220a6c154.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_07.png" +dest_files=["res://.godot/imported/face_upper_06_07.png-4c308e2cdc1562e5cee6b17220a6c154.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_08.png b/exported_glb/BloodElfFemale_textures/face_upper_06_08.png new file mode 100644 index 0000000..789c6e4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_08.png.import new file mode 100644 index 0000000..7a24343 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b60xdde60higm" +path="res://.godot/imported/face_upper_06_08.png-7756fc29bb471fe9533c47ed1eb207f1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_08.png" +dest_files=["res://.godot/imported/face_upper_06_08.png-7756fc29bb471fe9533c47ed1eb207f1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_09.png b/exported_glb/BloodElfFemale_textures/face_upper_06_09.png new file mode 100644 index 0000000..62ac712 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_06_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_06_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_06_09.png.import new file mode 100644 index 0000000..72165a5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_06_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dn660cgltc61i" +path="res://.godot/imported/face_upper_06_09.png-23b7f4722b8051672d3ba1524bb906cf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_06_09.png" +dest_files=["res://.godot/imported/face_upper_06_09.png-23b7f4722b8051672d3ba1524bb906cf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_00.png b/exported_glb/BloodElfFemale_textures/face_upper_07_00.png new file mode 100644 index 0000000..36b5e47 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_00.png.import new file mode 100644 index 0000000..5c1413a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c70aprjw48f3s" +path="res://.godot/imported/face_upper_07_00.png-a5edfa302622aef5921c86beaa799fd9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_00.png" +dest_files=["res://.godot/imported/face_upper_07_00.png-a5edfa302622aef5921c86beaa799fd9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_01.png b/exported_glb/BloodElfFemale_textures/face_upper_07_01.png new file mode 100644 index 0000000..1fc557c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_01.png.import new file mode 100644 index 0000000..8f261d6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djitnk55i8q8t" +path="res://.godot/imported/face_upper_07_01.png-3aa999d71725b195d615a4c66e973a9e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_01.png" +dest_files=["res://.godot/imported/face_upper_07_01.png-3aa999d71725b195d615a4c66e973a9e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_02.png b/exported_glb/BloodElfFemale_textures/face_upper_07_02.png new file mode 100644 index 0000000..e351fd5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_02.png.import new file mode 100644 index 0000000..1873a28 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v1nxeak2sbce" +path="res://.godot/imported/face_upper_07_02.png-2e5c98008d608009a0d12bb4d33a7373.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_02.png" +dest_files=["res://.godot/imported/face_upper_07_02.png-2e5c98008d608009a0d12bb4d33a7373.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_03.png b/exported_glb/BloodElfFemale_textures/face_upper_07_03.png new file mode 100644 index 0000000..f8b5a95 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_03.png.import new file mode 100644 index 0000000..64dc249 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bokw12658ou5j" +path="res://.godot/imported/face_upper_07_03.png-b107e4f132097768e9d534c3e707ce84.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_03.png" +dest_files=["res://.godot/imported/face_upper_07_03.png-b107e4f132097768e9d534c3e707ce84.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_04.png b/exported_glb/BloodElfFemale_textures/face_upper_07_04.png new file mode 100644 index 0000000..4881d0c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_04.png.import new file mode 100644 index 0000000..998d062 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnnhf0i6j6hdj" +path="res://.godot/imported/face_upper_07_04.png-318e114521d50ad5f1444bf6734fe16e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_04.png" +dest_files=["res://.godot/imported/face_upper_07_04.png-318e114521d50ad5f1444bf6734fe16e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_05.png b/exported_glb/BloodElfFemale_textures/face_upper_07_05.png new file mode 100644 index 0000000..873bfbb Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_05.png.import new file mode 100644 index 0000000..e8895b6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://w6w1vvtmcpy4" +path="res://.godot/imported/face_upper_07_05.png-b4c93eb8447a09d4a3a8cbc371472854.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_05.png" +dest_files=["res://.godot/imported/face_upper_07_05.png-b4c93eb8447a09d4a3a8cbc371472854.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_06.png b/exported_glb/BloodElfFemale_textures/face_upper_07_06.png new file mode 100644 index 0000000..015259c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_06.png.import new file mode 100644 index 0000000..47ce864 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfk4shs8jksyn" +path="res://.godot/imported/face_upper_07_06.png-271a6664d05463cff39178f3b994c13a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_06.png" +dest_files=["res://.godot/imported/face_upper_07_06.png-271a6664d05463cff39178f3b994c13a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_07.png b/exported_glb/BloodElfFemale_textures/face_upper_07_07.png new file mode 100644 index 0000000..b0143da Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_07.png.import new file mode 100644 index 0000000..96bf695 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdl5q0l155xik" +path="res://.godot/imported/face_upper_07_07.png-ad576d016edc8c90c4c272bffe722f84.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_07.png" +dest_files=["res://.godot/imported/face_upper_07_07.png-ad576d016edc8c90c4c272bffe722f84.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_08.png b/exported_glb/BloodElfFemale_textures/face_upper_07_08.png new file mode 100644 index 0000000..ae1e9d9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_08.png.import new file mode 100644 index 0000000..668f269 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5262ic8q5xhb" +path="res://.godot/imported/face_upper_07_08.png-d8b52b6dcb846fe38d5441db08e313c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_08.png" +dest_files=["res://.godot/imported/face_upper_07_08.png-d8b52b6dcb846fe38d5441db08e313c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_09.png b/exported_glb/BloodElfFemale_textures/face_upper_07_09.png new file mode 100644 index 0000000..69f0c81 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_07_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_07_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_07_09.png.import new file mode 100644 index 0000000..0c0096a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_07_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lf7qtk7371ks" +path="res://.godot/imported/face_upper_07_09.png-5bf5fe0387e12fc3d7b891ea752f1f0d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_07_09.png" +dest_files=["res://.godot/imported/face_upper_07_09.png-5bf5fe0387e12fc3d7b891ea752f1f0d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_00.png b/exported_glb/BloodElfFemale_textures/face_upper_08_00.png new file mode 100644 index 0000000..6b14127 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_00.png.import new file mode 100644 index 0000000..19b0744 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chcruaerjfbal" +path="res://.godot/imported/face_upper_08_00.png-61106b19bd4b197060eb6a4446631010.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_00.png" +dest_files=["res://.godot/imported/face_upper_08_00.png-61106b19bd4b197060eb6a4446631010.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_01.png b/exported_glb/BloodElfFemale_textures/face_upper_08_01.png new file mode 100644 index 0000000..d5601d7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_01.png.import new file mode 100644 index 0000000..bd5a3da --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3mpo1bmrsw31" +path="res://.godot/imported/face_upper_08_01.png-8ee4ac44f33491af222b94f664fd864f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_01.png" +dest_files=["res://.godot/imported/face_upper_08_01.png-8ee4ac44f33491af222b94f664fd864f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_02.png b/exported_glb/BloodElfFemale_textures/face_upper_08_02.png new file mode 100644 index 0000000..3594758 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_02.png.import new file mode 100644 index 0000000..ccfcf1b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ce8w4xvuoj4gt" +path="res://.godot/imported/face_upper_08_02.png-90ca350fe3b296c25e7ec07396178555.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_02.png" +dest_files=["res://.godot/imported/face_upper_08_02.png-90ca350fe3b296c25e7ec07396178555.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_03.png b/exported_glb/BloodElfFemale_textures/face_upper_08_03.png new file mode 100644 index 0000000..30994f1 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_03.png.import new file mode 100644 index 0000000..f9266f2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsa82wib2d110" +path="res://.godot/imported/face_upper_08_03.png-3e869dc28e69ab37a4a1186b610aede2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_03.png" +dest_files=["res://.godot/imported/face_upper_08_03.png-3e869dc28e69ab37a4a1186b610aede2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_04.png b/exported_glb/BloodElfFemale_textures/face_upper_08_04.png new file mode 100644 index 0000000..8f428de Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_04.png.import new file mode 100644 index 0000000..018cf73 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tjsbk3if5427" +path="res://.godot/imported/face_upper_08_04.png-5fb5968db5cb29891f23226cee5bbee4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_04.png" +dest_files=["res://.godot/imported/face_upper_08_04.png-5fb5968db5cb29891f23226cee5bbee4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_05.png b/exported_glb/BloodElfFemale_textures/face_upper_08_05.png new file mode 100644 index 0000000..dedc78d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_05.png.import new file mode 100644 index 0000000..25f8f36 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwad73e1llbn" +path="res://.godot/imported/face_upper_08_05.png-ce92020cc9d8320048fb9a7dc22a29bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_05.png" +dest_files=["res://.godot/imported/face_upper_08_05.png-ce92020cc9d8320048fb9a7dc22a29bb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_06.png b/exported_glb/BloodElfFemale_textures/face_upper_08_06.png new file mode 100644 index 0000000..8221232 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_06.png.import new file mode 100644 index 0000000..e39f258 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4a7n1be1t7hv" +path="res://.godot/imported/face_upper_08_06.png-db21cee84119cb83c0177f2f449f182d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_06.png" +dest_files=["res://.godot/imported/face_upper_08_06.png-db21cee84119cb83c0177f2f449f182d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_07.png b/exported_glb/BloodElfFemale_textures/face_upper_08_07.png new file mode 100644 index 0000000..4d9b6a6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_07.png.import new file mode 100644 index 0000000..d36e2b3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx66qqyktd8be" +path="res://.godot/imported/face_upper_08_07.png-90a3a4897e1faa2b639081f7532fb81f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_07.png" +dest_files=["res://.godot/imported/face_upper_08_07.png-90a3a4897e1faa2b639081f7532fb81f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_08.png b/exported_glb/BloodElfFemale_textures/face_upper_08_08.png new file mode 100644 index 0000000..d832ba2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_08.png.import new file mode 100644 index 0000000..180ab03 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://oi5hc2j0nvjn" +path="res://.godot/imported/face_upper_08_08.png-3eca6041a2500bc53be2d2b165414b2f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_08.png" +dest_files=["res://.godot/imported/face_upper_08_08.png-3eca6041a2500bc53be2d2b165414b2f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_09.png b/exported_glb/BloodElfFemale_textures/face_upper_08_09.png new file mode 100644 index 0000000..9a508fd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_09.png.import new file mode 100644 index 0000000..c87e057 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fr8nrbs6k3bl" +path="res://.godot/imported/face_upper_08_09.png-e7d5ed790e14c3149da0d1df547eea61.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_09.png" +dest_files=["res://.godot/imported/face_upper_08_09.png-e7d5ed790e14c3149da0d1df547eea61.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_10.png b/exported_glb/BloodElfFemale_textures/face_upper_08_10.png new file mode 100644 index 0000000..f8e11ce Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_10.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_10.png.import new file mode 100644 index 0000000..8d40560 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crn5jl3owfh27" +path="res://.godot/imported/face_upper_08_10.png-54f1911a44396eddd49201751af5d927.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_10.png" +dest_files=["res://.godot/imported/face_upper_08_10.png-54f1911a44396eddd49201751af5d927.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_11.png b/exported_glb/BloodElfFemale_textures/face_upper_08_11.png new file mode 100644 index 0000000..06d12a1 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_11.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_11.png.import new file mode 100644 index 0000000..c62f8fa --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3phuck5f2302" +path="res://.godot/imported/face_upper_08_11.png-416e2ca8ff704c14b631a1750ac0b54e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_11.png" +dest_files=["res://.godot/imported/face_upper_08_11.png-416e2ca8ff704c14b631a1750ac0b54e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_12.png b/exported_glb/BloodElfFemale_textures/face_upper_08_12.png new file mode 100644 index 0000000..e13e559 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_08_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_08_12.png.import b/exported_glb/BloodElfFemale_textures/face_upper_08_12.png.import new file mode 100644 index 0000000..d3e7212 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_08_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b83ndtdg84e1q" +path="res://.godot/imported/face_upper_08_12.png-b2e4b1e25bf55ee46624a3677ed75cae.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_08_12.png" +dest_files=["res://.godot/imported/face_upper_08_12.png-b2e4b1e25bf55ee46624a3677ed75cae.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_00.png b/exported_glb/BloodElfFemale_textures/face_upper_09_00.png new file mode 100644 index 0000000..b95ac29 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_00.png.import new file mode 100644 index 0000000..185fe12 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnfoyjiva5nve" +path="res://.godot/imported/face_upper_09_00.png-a1f30dccf988fba787e8507525f7c4b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_00.png" +dest_files=["res://.godot/imported/face_upper_09_00.png-a1f30dccf988fba787e8507525f7c4b8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_01.png b/exported_glb/BloodElfFemale_textures/face_upper_09_01.png new file mode 100644 index 0000000..a3969fd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_01.png.import new file mode 100644 index 0000000..dcc51c1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2i8k37uabcp" +path="res://.godot/imported/face_upper_09_01.png-ca3f50d36ea50037ac6746ab47ed0cdf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_01.png" +dest_files=["res://.godot/imported/face_upper_09_01.png-ca3f50d36ea50037ac6746ab47ed0cdf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_02.png b/exported_glb/BloodElfFemale_textures/face_upper_09_02.png new file mode 100644 index 0000000..635182d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_02.png.import new file mode 100644 index 0000000..2f6809d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4e2kvudi8tk6" +path="res://.godot/imported/face_upper_09_02.png-48c2366cba56153259f2ea9593d7c916.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_02.png" +dest_files=["res://.godot/imported/face_upper_09_02.png-48c2366cba56153259f2ea9593d7c916.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_03.png b/exported_glb/BloodElfFemale_textures/face_upper_09_03.png new file mode 100644 index 0000000..124b028 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_03.png.import new file mode 100644 index 0000000..d0f2f80 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjwfrw3frmo27" +path="res://.godot/imported/face_upper_09_03.png-1c7f387a1e11cc4f3a547a7a747a7fcf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_03.png" +dest_files=["res://.godot/imported/face_upper_09_03.png-1c7f387a1e11cc4f3a547a7a747a7fcf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_04.png b/exported_glb/BloodElfFemale_textures/face_upper_09_04.png new file mode 100644 index 0000000..f0c4095 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_04.png.import new file mode 100644 index 0000000..8f02a26 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpk71ro1kvctx" +path="res://.godot/imported/face_upper_09_04.png-906fb156c075ec22cbdea20cea31b582.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_04.png" +dest_files=["res://.godot/imported/face_upper_09_04.png-906fb156c075ec22cbdea20cea31b582.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_05.png b/exported_glb/BloodElfFemale_textures/face_upper_09_05.png new file mode 100644 index 0000000..8fd2e60 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_05.png.import new file mode 100644 index 0000000..e09f2b2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4iaj8didm02f" +path="res://.godot/imported/face_upper_09_05.png-d487c6f434af8c94f3dbdd917089b583.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_05.png" +dest_files=["res://.godot/imported/face_upper_09_05.png-d487c6f434af8c94f3dbdd917089b583.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_06.png b/exported_glb/BloodElfFemale_textures/face_upper_09_06.png new file mode 100644 index 0000000..efb01b2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_06.png.import new file mode 100644 index 0000000..7f19258 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lsh7h5b6hx2y" +path="res://.godot/imported/face_upper_09_06.png-5441be8dbbc31dd8f71f013a8fc56e31.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_06.png" +dest_files=["res://.godot/imported/face_upper_09_06.png-5441be8dbbc31dd8f71f013a8fc56e31.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_07.png b/exported_glb/BloodElfFemale_textures/face_upper_09_07.png new file mode 100644 index 0000000..5a53256 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_07.png.import new file mode 100644 index 0000000..68dec18 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5wq4kcsvrb5s" +path="res://.godot/imported/face_upper_09_07.png-36bf5802ce38aa481ec6b947e2b6ecee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_07.png" +dest_files=["res://.godot/imported/face_upper_09_07.png-36bf5802ce38aa481ec6b947e2b6ecee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_08.png b/exported_glb/BloodElfFemale_textures/face_upper_09_08.png new file mode 100644 index 0000000..e95f9d6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_08.png.import new file mode 100644 index 0000000..c28a66d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnu0qkt7ogeb1" +path="res://.godot/imported/face_upper_09_08.png-9b719f36d852d825e641d98091fe313c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_08.png" +dest_files=["res://.godot/imported/face_upper_09_08.png-9b719f36d852d825e641d98091fe313c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_09.png b/exported_glb/BloodElfFemale_textures/face_upper_09_09.png new file mode 100644 index 0000000..cc77e3f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_09_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_09_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_09_09.png.import new file mode 100644 index 0000000..a78711f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_09_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw7q41fdgkqhl" +path="res://.godot/imported/face_upper_09_09.png-98aaf1f9ca5019cfc1e7ded3bb357e6d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_09_09.png" +dest_files=["res://.godot/imported/face_upper_09_09.png-98aaf1f9ca5019cfc1e7ded3bb357e6d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_00.png b/exported_glb/BloodElfFemale_textures/face_upper_10_00.png new file mode 100644 index 0000000..3800d2b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_00.png.import new file mode 100644 index 0000000..e71f1ef --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ds1kocdo8t3sa" +path="res://.godot/imported/face_upper_10_00.png-ca01b4aa3e6ab767f06e963465bcac01.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_00.png" +dest_files=["res://.godot/imported/face_upper_10_00.png-ca01b4aa3e6ab767f06e963465bcac01.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_01.png b/exported_glb/BloodElfFemale_textures/face_upper_10_01.png new file mode 100644 index 0000000..7208beb Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_01.png.import new file mode 100644 index 0000000..b8bf189 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccbuaqbafqw5x" +path="res://.godot/imported/face_upper_10_01.png-0f98028c280e4478357095e30d1438db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_01.png" +dest_files=["res://.godot/imported/face_upper_10_01.png-0f98028c280e4478357095e30d1438db.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_02.png b/exported_glb/BloodElfFemale_textures/face_upper_10_02.png new file mode 100644 index 0000000..7f2c76d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_02.png.import new file mode 100644 index 0000000..b30d157 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxgbyvlm1e8sk" +path="res://.godot/imported/face_upper_10_02.png-2f25a3ffef318044f34acd43b194f168.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_02.png" +dest_files=["res://.godot/imported/face_upper_10_02.png-2f25a3ffef318044f34acd43b194f168.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_03.png b/exported_glb/BloodElfFemale_textures/face_upper_10_03.png new file mode 100644 index 0000000..814d625 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_03.png.import new file mode 100644 index 0000000..35a52d9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnjibeinyupo8" +path="res://.godot/imported/face_upper_10_03.png-ed2d3cf4df259354a7a2a929be7085a2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_03.png" +dest_files=["res://.godot/imported/face_upper_10_03.png-ed2d3cf4df259354a7a2a929be7085a2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_04.png b/exported_glb/BloodElfFemale_textures/face_upper_10_04.png new file mode 100644 index 0000000..034343f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_04.png.import new file mode 100644 index 0000000..9dd476c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lwka0dtlp2c7" +path="res://.godot/imported/face_upper_10_04.png-844e023348959a32700449e2b76617bd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_04.png" +dest_files=["res://.godot/imported/face_upper_10_04.png-844e023348959a32700449e2b76617bd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_05.png b/exported_glb/BloodElfFemale_textures/face_upper_10_05.png new file mode 100644 index 0000000..d24cc50 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_05.png.import new file mode 100644 index 0000000..f12c7d9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx18sywkqy5ng" +path="res://.godot/imported/face_upper_10_05.png-0266c0a715c7d7403754101fd5a2c908.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_05.png" +dest_files=["res://.godot/imported/face_upper_10_05.png-0266c0a715c7d7403754101fd5a2c908.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_06.png b/exported_glb/BloodElfFemale_textures/face_upper_10_06.png new file mode 100644 index 0000000..2a8c243 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_06.png.import new file mode 100644 index 0000000..ffb8a09 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvair7je8orbb" +path="res://.godot/imported/face_upper_10_06.png-4248421e247d5ae24859434bf499d553.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_06.png" +dest_files=["res://.godot/imported/face_upper_10_06.png-4248421e247d5ae24859434bf499d553.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_07.png b/exported_glb/BloodElfFemale_textures/face_upper_10_07.png new file mode 100644 index 0000000..2a1def2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_07.png.import new file mode 100644 index 0000000..bb96196 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi62o13lhqlsp" +path="res://.godot/imported/face_upper_10_07.png-d00ab3f422f145d8d115cb3726016889.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_07.png" +dest_files=["res://.godot/imported/face_upper_10_07.png-d00ab3f422f145d8d115cb3726016889.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_08.png b/exported_glb/BloodElfFemale_textures/face_upper_10_08.png new file mode 100644 index 0000000..1b11d1d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_08.png.import new file mode 100644 index 0000000..f1bce3f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvsfx3owmox7o" +path="res://.godot/imported/face_upper_10_08.png-dc02d06fbc53b733bfb5225289a20f8e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_08.png" +dest_files=["res://.godot/imported/face_upper_10_08.png-dc02d06fbc53b733bfb5225289a20f8e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_09.png b/exported_glb/BloodElfFemale_textures/face_upper_10_09.png new file mode 100644 index 0000000..e3f3a63 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_10_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_10_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_10_09.png.import new file mode 100644 index 0000000..17a1b3a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_10_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvokplo8jpdmg" +path="res://.godot/imported/face_upper_10_09.png-2c12d6d208cc6d9cf070e08c793102d8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_10_09.png" +dest_files=["res://.godot/imported/face_upper_10_09.png-2c12d6d208cc6d9cf070e08c793102d8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_00.png b/exported_glb/BloodElfFemale_textures/face_upper_11_00.png new file mode 100644 index 0000000..61d075f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_00.png.import new file mode 100644 index 0000000..f8169cf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cokg06s400522" +path="res://.godot/imported/face_upper_11_00.png-464f9b9711f659b6d5d33a52b58907fb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_00.png" +dest_files=["res://.godot/imported/face_upper_11_00.png-464f9b9711f659b6d5d33a52b58907fb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_01.png b/exported_glb/BloodElfFemale_textures/face_upper_11_01.png new file mode 100644 index 0000000..2c61534 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_01.png.import new file mode 100644 index 0000000..d72f08f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdk2tdx85wn6u" +path="res://.godot/imported/face_upper_11_01.png-f875b545c851125624ac4dacbc5266be.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_01.png" +dest_files=["res://.godot/imported/face_upper_11_01.png-f875b545c851125624ac4dacbc5266be.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_02.png b/exported_glb/BloodElfFemale_textures/face_upper_11_02.png new file mode 100644 index 0000000..59f6f6d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_02.png.import new file mode 100644 index 0000000..128efcb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnh2amccga0xx" +path="res://.godot/imported/face_upper_11_02.png-1e0ebc1b7562e5dd0fd6f988ce5df998.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_02.png" +dest_files=["res://.godot/imported/face_upper_11_02.png-1e0ebc1b7562e5dd0fd6f988ce5df998.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_03.png b/exported_glb/BloodElfFemale_textures/face_upper_11_03.png new file mode 100644 index 0000000..d2aa6d5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_03.png.import new file mode 100644 index 0000000..3fb29a7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0su0sy2mjpjg" +path="res://.godot/imported/face_upper_11_03.png-563c6c50b554ec85c446ef7c3abee454.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_03.png" +dest_files=["res://.godot/imported/face_upper_11_03.png-563c6c50b554ec85c446ef7c3abee454.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_04.png b/exported_glb/BloodElfFemale_textures/face_upper_11_04.png new file mode 100644 index 0000000..157097a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_04.png.import new file mode 100644 index 0000000..caa8c16 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3ijyn8etsb4i" +path="res://.godot/imported/face_upper_11_04.png-0c55e2fca23097d9de61f4eb043b9a1c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_04.png" +dest_files=["res://.godot/imported/face_upper_11_04.png-0c55e2fca23097d9de61f4eb043b9a1c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_05.png b/exported_glb/BloodElfFemale_textures/face_upper_11_05.png new file mode 100644 index 0000000..2213a2a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_05.png.import new file mode 100644 index 0000000..2f3eb43 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpdran1yudkc5" +path="res://.godot/imported/face_upper_11_05.png-816dc9d87d362f8285ea9e34442c2505.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_05.png" +dest_files=["res://.godot/imported/face_upper_11_05.png-816dc9d87d362f8285ea9e34442c2505.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_06.png b/exported_glb/BloodElfFemale_textures/face_upper_11_06.png new file mode 100644 index 0000000..5fd7b46 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_06.png.import new file mode 100644 index 0000000..6a567c9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ds34glnnatsx4" +path="res://.godot/imported/face_upper_11_06.png-e394921fb160910d4f0bb2ac48841ca0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_06.png" +dest_files=["res://.godot/imported/face_upper_11_06.png-e394921fb160910d4f0bb2ac48841ca0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_07.png b/exported_glb/BloodElfFemale_textures/face_upper_11_07.png new file mode 100644 index 0000000..fedbf52 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_07.png.import new file mode 100644 index 0000000..e762902 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjwmco16ts2q0" +path="res://.godot/imported/face_upper_11_07.png-355bccb9916c0421f75584b80ecc8318.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_07.png" +dest_files=["res://.godot/imported/face_upper_11_07.png-355bccb9916c0421f75584b80ecc8318.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_08.png b/exported_glb/BloodElfFemale_textures/face_upper_11_08.png new file mode 100644 index 0000000..c2bb371 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_08.png.import new file mode 100644 index 0000000..a6aa7f2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3cydx0ydfdvp" +path="res://.godot/imported/face_upper_11_08.png-6567e0741027ea9706efc798a0228d4e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_08.png" +dest_files=["res://.godot/imported/face_upper_11_08.png-6567e0741027ea9706efc798a0228d4e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_09.png b/exported_glb/BloodElfFemale_textures/face_upper_11_09.png new file mode 100644 index 0000000..dd4c24c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_11_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_11_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_11_09.png.import new file mode 100644 index 0000000..ddf21c6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_11_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b22a4tvu1obe1" +path="res://.godot/imported/face_upper_11_09.png-dc031f0fd5db0b8eaf65c3b1d0c9fd53.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_11_09.png" +dest_files=["res://.godot/imported/face_upper_11_09.png-dc031f0fd5db0b8eaf65c3b1d0c9fd53.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_00.png b/exported_glb/BloodElfFemale_textures/face_upper_12_00.png new file mode 100644 index 0000000..023a1cc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_00.png.import new file mode 100644 index 0000000..e62fefc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://du2lepgeabipb" +path="res://.godot/imported/face_upper_12_00.png-4c1d2b455bcc4dc625ebf7718d8a7fbc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_00.png" +dest_files=["res://.godot/imported/face_upper_12_00.png-4c1d2b455bcc4dc625ebf7718d8a7fbc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_01.png b/exported_glb/BloodElfFemale_textures/face_upper_12_01.png new file mode 100644 index 0000000..63855fb Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_01.png.import new file mode 100644 index 0000000..b319b83 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://s7f7741n3yet" +path="res://.godot/imported/face_upper_12_01.png-4019ced14e2e067ce83a7e07322bda7f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_01.png" +dest_files=["res://.godot/imported/face_upper_12_01.png-4019ced14e2e067ce83a7e07322bda7f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_02.png b/exported_glb/BloodElfFemale_textures/face_upper_12_02.png new file mode 100644 index 0000000..95a86bc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_02.png.import new file mode 100644 index 0000000..2117bee --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ca4dkr6t65xo3" +path="res://.godot/imported/face_upper_12_02.png-9fde6ad0c37643fc2a636e08176acd30.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_02.png" +dest_files=["res://.godot/imported/face_upper_12_02.png-9fde6ad0c37643fc2a636e08176acd30.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_03.png b/exported_glb/BloodElfFemale_textures/face_upper_12_03.png new file mode 100644 index 0000000..bac50bd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_03.png.import new file mode 100644 index 0000000..7e3e603 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chv7wto62cdgh" +path="res://.godot/imported/face_upper_12_03.png-0be2b08fca51079c6f247bfe8eaae68d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_03.png" +dest_files=["res://.godot/imported/face_upper_12_03.png-0be2b08fca51079c6f247bfe8eaae68d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_04.png b/exported_glb/BloodElfFemale_textures/face_upper_12_04.png new file mode 100644 index 0000000..c300d4c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_04.png.import new file mode 100644 index 0000000..f051fa5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://eiysh7ngy1oj" +path="res://.godot/imported/face_upper_12_04.png-24a6a01d67fb815648c27b6dc91d5c7d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_04.png" +dest_files=["res://.godot/imported/face_upper_12_04.png-24a6a01d67fb815648c27b6dc91d5c7d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_05.png b/exported_glb/BloodElfFemale_textures/face_upper_12_05.png new file mode 100644 index 0000000..1f73771 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_05.png.import new file mode 100644 index 0000000..d99f1d4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwbg16ihio8ui" +path="res://.godot/imported/face_upper_12_05.png-2fb9f639b0b2527cd73a427b3097dbe4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_05.png" +dest_files=["res://.godot/imported/face_upper_12_05.png-2fb9f639b0b2527cd73a427b3097dbe4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_06.png b/exported_glb/BloodElfFemale_textures/face_upper_12_06.png new file mode 100644 index 0000000..22f9b04 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_06.png.import new file mode 100644 index 0000000..c274e3d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://oskw6keswbwq" +path="res://.godot/imported/face_upper_12_06.png-3d7af0a00cf5accaee1a108a79c6a93e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_06.png" +dest_files=["res://.godot/imported/face_upper_12_06.png-3d7af0a00cf5accaee1a108a79c6a93e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_07.png b/exported_glb/BloodElfFemale_textures/face_upper_12_07.png new file mode 100644 index 0000000..ba1f3d8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_07.png.import new file mode 100644 index 0000000..eb1cbeb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cevpd4nteb638" +path="res://.godot/imported/face_upper_12_07.png-06a7d9bb4d97670eac7e6b7a164e1731.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_07.png" +dest_files=["res://.godot/imported/face_upper_12_07.png-06a7d9bb4d97670eac7e6b7a164e1731.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_08.png b/exported_glb/BloodElfFemale_textures/face_upper_12_08.png new file mode 100644 index 0000000..c95d8c6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_08.png.import new file mode 100644 index 0000000..0f7276b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8vo01obkqtce" +path="res://.godot/imported/face_upper_12_08.png-fdc096715f022fabb957f6d17e43131c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_08.png" +dest_files=["res://.godot/imported/face_upper_12_08.png-fdc096715f022fabb957f6d17e43131c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_09.png b/exported_glb/BloodElfFemale_textures/face_upper_12_09.png new file mode 100644 index 0000000..770974d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_12_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_12_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_12_09.png.import new file mode 100644 index 0000000..77085a2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_12_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ur30yr0fvu3q" +path="res://.godot/imported/face_upper_12_09.png-c01a01e427302d1ed9e2dcff20eeb606.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_12_09.png" +dest_files=["res://.godot/imported/face_upper_12_09.png-c01a01e427302d1ed9e2dcff20eeb606.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_00.png b/exported_glb/BloodElfFemale_textures/face_upper_13_00.png new file mode 100644 index 0000000..b74db80 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_00.png.import new file mode 100644 index 0000000..9f862d9 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gyfrq5lobaco" +path="res://.godot/imported/face_upper_13_00.png-481b902eca37b9c703e26534bd1944ab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_00.png" +dest_files=["res://.godot/imported/face_upper_13_00.png-481b902eca37b9c703e26534bd1944ab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_01.png b/exported_glb/BloodElfFemale_textures/face_upper_13_01.png new file mode 100644 index 0000000..5cb34bd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_01.png.import new file mode 100644 index 0000000..6e38168 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://snlgrfo1i8gs" +path="res://.godot/imported/face_upper_13_01.png-a25166fccb97e0056c45abfe01b09230.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_01.png" +dest_files=["res://.godot/imported/face_upper_13_01.png-a25166fccb97e0056c45abfe01b09230.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_02.png b/exported_glb/BloodElfFemale_textures/face_upper_13_02.png new file mode 100644 index 0000000..ddbf5dc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_02.png.import new file mode 100644 index 0000000..dda339f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0hr8uudein37" +path="res://.godot/imported/face_upper_13_02.png-14067af518125f65f3b35574a7bf5292.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_02.png" +dest_files=["res://.godot/imported/face_upper_13_02.png-14067af518125f65f3b35574a7bf5292.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_03.png b/exported_glb/BloodElfFemale_textures/face_upper_13_03.png new file mode 100644 index 0000000..b9eba92 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_03.png.import new file mode 100644 index 0000000..87a25ca --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6bngigv888js" +path="res://.godot/imported/face_upper_13_03.png-4c582ced2e9ac73a88960819eb9357fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_03.png" +dest_files=["res://.godot/imported/face_upper_13_03.png-4c582ced2e9ac73a88960819eb9357fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_04.png b/exported_glb/BloodElfFemale_textures/face_upper_13_04.png new file mode 100644 index 0000000..efcf635 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_04.png.import new file mode 100644 index 0000000..0a742a6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dr1lgomjcb4ig" +path="res://.godot/imported/face_upper_13_04.png-2230e33ce09b702416327434b6d55537.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_04.png" +dest_files=["res://.godot/imported/face_upper_13_04.png-2230e33ce09b702416327434b6d55537.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_05.png b/exported_glb/BloodElfFemale_textures/face_upper_13_05.png new file mode 100644 index 0000000..9271e81 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_05.png.import new file mode 100644 index 0000000..281d76e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbjnvkljrl8ny" +path="res://.godot/imported/face_upper_13_05.png-5a7cbb75610e54df78ff6dbef3232dcc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_05.png" +dest_files=["res://.godot/imported/face_upper_13_05.png-5a7cbb75610e54df78ff6dbef3232dcc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_06.png b/exported_glb/BloodElfFemale_textures/face_upper_13_06.png new file mode 100644 index 0000000..483c815 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_06.png.import new file mode 100644 index 0000000..f337e56 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1848hdnmoqd" +path="res://.godot/imported/face_upper_13_06.png-35f2d8bc16fbbfb444bc7cf30e26c331.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_06.png" +dest_files=["res://.godot/imported/face_upper_13_06.png-35f2d8bc16fbbfb444bc7cf30e26c331.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_07.png b/exported_glb/BloodElfFemale_textures/face_upper_13_07.png new file mode 100644 index 0000000..c94d0dc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_07.png.import new file mode 100644 index 0000000..902fe26 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbvssj6cm4fc" +path="res://.godot/imported/face_upper_13_07.png-24627b70e9f46b9ea0b78a58389b70ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_07.png" +dest_files=["res://.godot/imported/face_upper_13_07.png-24627b70e9f46b9ea0b78a58389b70ba.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_08.png b/exported_glb/BloodElfFemale_textures/face_upper_13_08.png new file mode 100644 index 0000000..774a732 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_08.png.import new file mode 100644 index 0000000..2ac3cfc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3qjnewmvxefq" +path="res://.godot/imported/face_upper_13_08.png-afb7a08c827031fb4274034c1bb08853.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_08.png" +dest_files=["res://.godot/imported/face_upper_13_08.png-afb7a08c827031fb4274034c1bb08853.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_09.png b/exported_glb/BloodElfFemale_textures/face_upper_13_09.png new file mode 100644 index 0000000..0774c9a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_13_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_13_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_13_09.png.import new file mode 100644 index 0000000..799ced3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_13_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg0usfjk0u81n" +path="res://.godot/imported/face_upper_13_09.png-2bb720d0634efa57450daf2952d343bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_13_09.png" +dest_files=["res://.godot/imported/face_upper_13_09.png-2bb720d0634efa57450daf2952d343bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_00.png b/exported_glb/BloodElfFemale_textures/face_upper_14_00.png new file mode 100644 index 0000000..15ae822 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_00.png.import new file mode 100644 index 0000000..ac4e112 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bkyn0shbht5tu" +path="res://.godot/imported/face_upper_14_00.png-a4a4ed86129a2b87f810d31ba72b046f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_00.png" +dest_files=["res://.godot/imported/face_upper_14_00.png-a4a4ed86129a2b87f810d31ba72b046f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_01.png b/exported_glb/BloodElfFemale_textures/face_upper_14_01.png new file mode 100644 index 0000000..4b1be1d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_01.png.import new file mode 100644 index 0000000..dc80c1c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://kjsyl8pvchrn" +path="res://.godot/imported/face_upper_14_01.png-3c7f82474b5f4dbe2fa1a63d4a10c549.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_01.png" +dest_files=["res://.godot/imported/face_upper_14_01.png-3c7f82474b5f4dbe2fa1a63d4a10c549.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_02.png b/exported_glb/BloodElfFemale_textures/face_upper_14_02.png new file mode 100644 index 0000000..95a86bc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_02.png.import new file mode 100644 index 0000000..ce7f200 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7pd0q5vikacp" +path="res://.godot/imported/face_upper_14_02.png-b9169d7db887f2d1d7d49e54534209e3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_02.png" +dest_files=["res://.godot/imported/face_upper_14_02.png-b9169d7db887f2d1d7d49e54534209e3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_03.png b/exported_glb/BloodElfFemale_textures/face_upper_14_03.png new file mode 100644 index 0000000..2f46e5a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_03.png.import new file mode 100644 index 0000000..91b18c0 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3lcal887wx2k" +path="res://.godot/imported/face_upper_14_03.png-8ebc17c153f9b37af24a01481aaa7725.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_03.png" +dest_files=["res://.godot/imported/face_upper_14_03.png-8ebc17c153f9b37af24a01481aaa7725.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_04.png b/exported_glb/BloodElfFemale_textures/face_upper_14_04.png new file mode 100644 index 0000000..ee0d0a6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_04.png.import new file mode 100644 index 0000000..4ea81b2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di7rr27b7colo" +path="res://.godot/imported/face_upper_14_04.png-e26d997cd4bcf7ba4f8a29985e8e84db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_04.png" +dest_files=["res://.godot/imported/face_upper_14_04.png-e26d997cd4bcf7ba4f8a29985e8e84db.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_05.png b/exported_glb/BloodElfFemale_textures/face_upper_14_05.png new file mode 100644 index 0000000..84a4689 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_05.png.import new file mode 100644 index 0000000..6a6c1cf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l5gdfixkmydm" +path="res://.godot/imported/face_upper_14_05.png-60c4f29756e1d49181c91c865435a9ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_05.png" +dest_files=["res://.godot/imported/face_upper_14_05.png-60c4f29756e1d49181c91c865435a9ee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_06.png b/exported_glb/BloodElfFemale_textures/face_upper_14_06.png new file mode 100644 index 0000000..ba949e4 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_06.png.import new file mode 100644 index 0000000..15ae2bc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wv6uhg0c0h8l" +path="res://.godot/imported/face_upper_14_06.png-f7a8bd3b17c9eea3185fdea8988769ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_06.png" +dest_files=["res://.godot/imported/face_upper_14_06.png-f7a8bd3b17c9eea3185fdea8988769ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_07.png b/exported_glb/BloodElfFemale_textures/face_upper_14_07.png new file mode 100644 index 0000000..1e36b06 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_07.png.import new file mode 100644 index 0000000..1eb0a4d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csofquxjj4rxl" +path="res://.godot/imported/face_upper_14_07.png-66608652abcf80184844df72394b5f45.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_07.png" +dest_files=["res://.godot/imported/face_upper_14_07.png-66608652abcf80184844df72394b5f45.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_08.png b/exported_glb/BloodElfFemale_textures/face_upper_14_08.png new file mode 100644 index 0000000..99a1eda Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_08.png.import new file mode 100644 index 0000000..03ad5fc --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xu6l3umjbnkr" +path="res://.godot/imported/face_upper_14_08.png-e9e3730bfcc0a1dd415a5d94ef742379.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_08.png" +dest_files=["res://.godot/imported/face_upper_14_08.png-e9e3730bfcc0a1dd415a5d94ef742379.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_09.png b/exported_glb/BloodElfFemale_textures/face_upper_14_09.png new file mode 100644 index 0000000..3c266a0 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_14_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_14_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_14_09.png.import new file mode 100644 index 0000000..36e4c19 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_14_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csgep503mj4ri" +path="res://.godot/imported/face_upper_14_09.png-d027ee0534fb8b2f031e94e7c058f392.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_14_09.png" +dest_files=["res://.godot/imported/face_upper_14_09.png-d027ee0534fb8b2f031e94e7c058f392.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_00.png b/exported_glb/BloodElfFemale_textures/face_upper_15_00.png new file mode 100644 index 0000000..7ffa173 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_00.png.import new file mode 100644 index 0000000..e7c90a7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://du8bfmyu1l6tx" +path="res://.godot/imported/face_upper_15_00.png-e0889add919f0af6be233c4ba27abc4e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_00.png" +dest_files=["res://.godot/imported/face_upper_15_00.png-e0889add919f0af6be233c4ba27abc4e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_01.png b/exported_glb/BloodElfFemale_textures/face_upper_15_01.png new file mode 100644 index 0000000..8e09eb6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_01.png.import new file mode 100644 index 0000000..d265eb4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wkiy7qentmp8" +path="res://.godot/imported/face_upper_15_01.png-8fc902d8fe9ba2ac79c800531c8faf83.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_01.png" +dest_files=["res://.godot/imported/face_upper_15_01.png-8fc902d8fe9ba2ac79c800531c8faf83.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_02.png b/exported_glb/BloodElfFemale_textures/face_upper_15_02.png new file mode 100644 index 0000000..742a9da Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_02.png.import new file mode 100644 index 0000000..54e157f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://y2iuki5u6k10" +path="res://.godot/imported/face_upper_15_02.png-0ca0089fc7cc92ed2619d53ce5b091b1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_02.png" +dest_files=["res://.godot/imported/face_upper_15_02.png-0ca0089fc7cc92ed2619d53ce5b091b1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_03.png b/exported_glb/BloodElfFemale_textures/face_upper_15_03.png new file mode 100644 index 0000000..445ff26 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_03.png.import new file mode 100644 index 0000000..e8933d0 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba47ywrqquoag" +path="res://.godot/imported/face_upper_15_03.png-534289bfe557a9898d04c3f066bbb7c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_03.png" +dest_files=["res://.godot/imported/face_upper_15_03.png-534289bfe557a9898d04c3f066bbb7c5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_04.png b/exported_glb/BloodElfFemale_textures/face_upper_15_04.png new file mode 100644 index 0000000..d0501ad Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_04.png.import new file mode 100644 index 0000000..ab6b6ab --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4kggoh0rlk0o" +path="res://.godot/imported/face_upper_15_04.png-3517c62432b6714def347e53ba34cd5c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_04.png" +dest_files=["res://.godot/imported/face_upper_15_04.png-3517c62432b6714def347e53ba34cd5c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_05.png b/exported_glb/BloodElfFemale_textures/face_upper_15_05.png new file mode 100644 index 0000000..91cf897 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_05.png.import new file mode 100644 index 0000000..b767ee2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfhqxgwwog3a4" +path="res://.godot/imported/face_upper_15_05.png-e85f85884727f15e511dd8dbc0ff8a82.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_05.png" +dest_files=["res://.godot/imported/face_upper_15_05.png-e85f85884727f15e511dd8dbc0ff8a82.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_06.png b/exported_glb/BloodElfFemale_textures/face_upper_15_06.png new file mode 100644 index 0000000..6f03a44 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_06.png.import new file mode 100644 index 0000000..09e2207 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://deyjw6eqnawwx" +path="res://.godot/imported/face_upper_15_06.png-83369fcfc377d6166ebe1ddcc2e228b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_06.png" +dest_files=["res://.godot/imported/face_upper_15_06.png-83369fcfc377d6166ebe1ddcc2e228b9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_07.png b/exported_glb/BloodElfFemale_textures/face_upper_15_07.png new file mode 100644 index 0000000..cfdb934 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_07.png.import new file mode 100644 index 0000000..fe38a86 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu7x4onltyf5o" +path="res://.godot/imported/face_upper_15_07.png-c6fba8037266c378e6e24adb33738f43.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_07.png" +dest_files=["res://.godot/imported/face_upper_15_07.png-c6fba8037266c378e6e24adb33738f43.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_08.png b/exported_glb/BloodElfFemale_textures/face_upper_15_08.png new file mode 100644 index 0000000..467c879 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_08.png.import new file mode 100644 index 0000000..e30670e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dewb8dysbr8fa" +path="res://.godot/imported/face_upper_15_08.png-3f71ddab7bbd174d4600245296323aff.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_08.png" +dest_files=["res://.godot/imported/face_upper_15_08.png-3f71ddab7bbd174d4600245296323aff.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_09.png b/exported_glb/BloodElfFemale_textures/face_upper_15_09.png new file mode 100644 index 0000000..e519c65 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_15_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_15_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_15_09.png.import new file mode 100644 index 0000000..fb9ead2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_15_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh4ctbnieisav" +path="res://.godot/imported/face_upper_15_09.png-85c7fddc9c31306a5a6cffa2bbfd37f4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_15_09.png" +dest_files=["res://.godot/imported/face_upper_15_09.png-85c7fddc9c31306a5a6cffa2bbfd37f4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_00.png b/exported_glb/BloodElfFemale_textures/face_upper_16_00.png new file mode 100644 index 0000000..2594a40 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_00.png.import new file mode 100644 index 0000000..5e25e91 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b48umdcduvdqf" +path="res://.godot/imported/face_upper_16_00.png-d175015a1eb91f0d5b4d0da4f126fcb5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_00.png" +dest_files=["res://.godot/imported/face_upper_16_00.png-d175015a1eb91f0d5b4d0da4f126fcb5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_01.png b/exported_glb/BloodElfFemale_textures/face_upper_16_01.png new file mode 100644 index 0000000..95806f8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_01.png.import new file mode 100644 index 0000000..29f9922 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d01aod8d4c2h5" +path="res://.godot/imported/face_upper_16_01.png-f09a7425e3a0a5920a986131413c1c7a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_01.png" +dest_files=["res://.godot/imported/face_upper_16_01.png-f09a7425e3a0a5920a986131413c1c7a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_02.png b/exported_glb/BloodElfFemale_textures/face_upper_16_02.png new file mode 100644 index 0000000..a44c898 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_02.png.import new file mode 100644 index 0000000..32d6564 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0h57h0bc7uw1" +path="res://.godot/imported/face_upper_16_02.png-3a9941052d1aff189b8af082ff19bb0f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_02.png" +dest_files=["res://.godot/imported/face_upper_16_02.png-3a9941052d1aff189b8af082ff19bb0f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_03.png b/exported_glb/BloodElfFemale_textures/face_upper_16_03.png new file mode 100644 index 0000000..7639575 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_03.png.import new file mode 100644 index 0000000..d89f5f2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx3aquanph0g7" +path="res://.godot/imported/face_upper_16_03.png-a2ad9daadae91d875f944ddb62aca0ce.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_03.png" +dest_files=["res://.godot/imported/face_upper_16_03.png-a2ad9daadae91d875f944ddb62aca0ce.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_04.png b/exported_glb/BloodElfFemale_textures/face_upper_16_04.png new file mode 100644 index 0000000..bf730ae Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_04.png.import new file mode 100644 index 0000000..5c00f1c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmuo7vtbtcwsu" +path="res://.godot/imported/face_upper_16_04.png-2feec324f3e5477da275bb651f82a05d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_04.png" +dest_files=["res://.godot/imported/face_upper_16_04.png-2feec324f3e5477da275bb651f82a05d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_05.png b/exported_glb/BloodElfFemale_textures/face_upper_16_05.png new file mode 100644 index 0000000..d2a809b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_05.png.import new file mode 100644 index 0000000..8326812 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dus2l3q1cq7qx" +path="res://.godot/imported/face_upper_16_05.png-1a85bcc863f1554f4a45882bbd01ef80.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_05.png" +dest_files=["res://.godot/imported/face_upper_16_05.png-1a85bcc863f1554f4a45882bbd01ef80.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_06.png b/exported_glb/BloodElfFemale_textures/face_upper_16_06.png new file mode 100644 index 0000000..95458bf Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_06.png.import new file mode 100644 index 0000000..ab49c4e --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckg4fjshq2wug" +path="res://.godot/imported/face_upper_16_06.png-2daa34f1a689d5f33af0f856fbe6b514.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_06.png" +dest_files=["res://.godot/imported/face_upper_16_06.png-2daa34f1a689d5f33af0f856fbe6b514.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_07.png b/exported_glb/BloodElfFemale_textures/face_upper_16_07.png new file mode 100644 index 0000000..b9bd814 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_07.png.import new file mode 100644 index 0000000..b6a3fc3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buiy08a31hcju" +path="res://.godot/imported/face_upper_16_07.png-708f24a799a8fabccd3b92f2e76d5f77.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_07.png" +dest_files=["res://.godot/imported/face_upper_16_07.png-708f24a799a8fabccd3b92f2e76d5f77.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_08.png b/exported_glb/BloodElfFemale_textures/face_upper_16_08.png new file mode 100644 index 0000000..5cfeec6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_08.png.import new file mode 100644 index 0000000..801b268 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbhahxyjl2bk0" +path="res://.godot/imported/face_upper_16_08.png-231751a566a8316d328f639a8551e25e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_08.png" +dest_files=["res://.godot/imported/face_upper_16_08.png-231751a566a8316d328f639a8551e25e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_09.png b/exported_glb/BloodElfFemale_textures/face_upper_16_09.png new file mode 100644 index 0000000..d0dc2b3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_16_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_16_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_16_09.png.import new file mode 100644 index 0000000..4d80a5a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_16_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://iryt041lrynn" +path="res://.godot/imported/face_upper_16_09.png-e315971dd914c7d247f60bc92a742823.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_16_09.png" +dest_files=["res://.godot/imported/face_upper_16_09.png-e315971dd914c7d247f60bc92a742823.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_00.png b/exported_glb/BloodElfFemale_textures/face_upper_17_00.png new file mode 100644 index 0000000..1f43753 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_00.png.import new file mode 100644 index 0000000..cd4a562 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmpdnpfwn34vd" +path="res://.godot/imported/face_upper_17_00.png-432365b8188392994bc7ac00ae62f4d8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_00.png" +dest_files=["res://.godot/imported/face_upper_17_00.png-432365b8188392994bc7ac00ae62f4d8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_01.png b/exported_glb/BloodElfFemale_textures/face_upper_17_01.png new file mode 100644 index 0000000..cc89f12 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_01.png.import new file mode 100644 index 0000000..75e187b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chcojn45gdcbb" +path="res://.godot/imported/face_upper_17_01.png-98ff56e4ee3b01eb237eebe32a5cb7ab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_01.png" +dest_files=["res://.godot/imported/face_upper_17_01.png-98ff56e4ee3b01eb237eebe32a5cb7ab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_02.png b/exported_glb/BloodElfFemale_textures/face_upper_17_02.png new file mode 100644 index 0000000..e2b1fa8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_02.png.import new file mode 100644 index 0000000..71c288f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1ws6dvh1h6kf" +path="res://.godot/imported/face_upper_17_02.png-11752ba6c3d2bb6b09a8c45b87d5768c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_02.png" +dest_files=["res://.godot/imported/face_upper_17_02.png-11752ba6c3d2bb6b09a8c45b87d5768c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_03.png b/exported_glb/BloodElfFemale_textures/face_upper_17_03.png new file mode 100644 index 0000000..27ecee7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_03.png.import new file mode 100644 index 0000000..4fc55b4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqn6hpgne8pik" +path="res://.godot/imported/face_upper_17_03.png-9635bf0893479fed32c911095ad028e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_03.png" +dest_files=["res://.godot/imported/face_upper_17_03.png-9635bf0893479fed32c911095ad028e6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_04.png b/exported_glb/BloodElfFemale_textures/face_upper_17_04.png new file mode 100644 index 0000000..cf3ef53 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_04.png.import new file mode 100644 index 0000000..4eeac63 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bplh0nulsjpsq" +path="res://.godot/imported/face_upper_17_04.png-c4d7641f265f232d8aedd6386252e67d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_04.png" +dest_files=["res://.godot/imported/face_upper_17_04.png-c4d7641f265f232d8aedd6386252e67d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_05.png b/exported_glb/BloodElfFemale_textures/face_upper_17_05.png new file mode 100644 index 0000000..65fd67f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_05.png.import new file mode 100644 index 0000000..91a9eef --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://day45eit5fdhq" +path="res://.godot/imported/face_upper_17_05.png-a561adbb400bd8f41694c66e53407274.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_05.png" +dest_files=["res://.godot/imported/face_upper_17_05.png-a561adbb400bd8f41694c66e53407274.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_06.png b/exported_glb/BloodElfFemale_textures/face_upper_17_06.png new file mode 100644 index 0000000..546008d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_06.png.import new file mode 100644 index 0000000..93e64bd --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vwyfbafgllk5" +path="res://.godot/imported/face_upper_17_06.png-4c75a8a872444a326d96b5cfcb16cc2d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_06.png" +dest_files=["res://.godot/imported/face_upper_17_06.png-4c75a8a872444a326d96b5cfcb16cc2d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_07.png b/exported_glb/BloodElfFemale_textures/face_upper_17_07.png new file mode 100644 index 0000000..d7e3208 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_07.png.import new file mode 100644 index 0000000..661179d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvlbn4ftnc8ld" +path="res://.godot/imported/face_upper_17_07.png-98d0562fbc276cf4d50a2c5018db3b5d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_07.png" +dest_files=["res://.godot/imported/face_upper_17_07.png-98d0562fbc276cf4d50a2c5018db3b5d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_08.png b/exported_glb/BloodElfFemale_textures/face_upper_17_08.png new file mode 100644 index 0000000..7a8ee39 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_08.png.import new file mode 100644 index 0000000..4905920 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2d77ptkrwppg" +path="res://.godot/imported/face_upper_17_08.png-756a729f34f121dc093f662d66bb4778.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_08.png" +dest_files=["res://.godot/imported/face_upper_17_08.png-756a729f34f121dc093f662d66bb4778.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_09.png b/exported_glb/BloodElfFemale_textures/face_upper_17_09.png new file mode 100644 index 0000000..98e3b0f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_17_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_17_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_17_09.png.import new file mode 100644 index 0000000..cc988f7 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_17_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxikr5ypkhsbm" +path="res://.godot/imported/face_upper_17_09.png-75b749a468f5721631534d2f0b363111.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_17_09.png" +dest_files=["res://.godot/imported/face_upper_17_09.png-75b749a468f5721631534d2f0b363111.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_00.png b/exported_glb/BloodElfFemale_textures/face_upper_18_00.png new file mode 100644 index 0000000..f3b4aa8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_00.png.import new file mode 100644 index 0000000..fb2d753 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuna0i4gx0icg" +path="res://.godot/imported/face_upper_18_00.png-c0dd99f77d3199b25334aaa9d2a7df01.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_00.png" +dest_files=["res://.godot/imported/face_upper_18_00.png-c0dd99f77d3199b25334aaa9d2a7df01.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_01.png b/exported_glb/BloodElfFemale_textures/face_upper_18_01.png new file mode 100644 index 0000000..a9772dc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_01.png.import new file mode 100644 index 0000000..3da3367 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d12n2sgrphl5e" +path="res://.godot/imported/face_upper_18_01.png-e80a1b01372ff9602b21149b2d71c439.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_01.png" +dest_files=["res://.godot/imported/face_upper_18_01.png-e80a1b01372ff9602b21149b2d71c439.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_02.png b/exported_glb/BloodElfFemale_textures/face_upper_18_02.png new file mode 100644 index 0000000..970e0c3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_02.png.import new file mode 100644 index 0000000..f5ee359 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfv1rfaag08uo" +path="res://.godot/imported/face_upper_18_02.png-0ec4b91a2d04f8eac30093da6db88881.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_02.png" +dest_files=["res://.godot/imported/face_upper_18_02.png-0ec4b91a2d04f8eac30093da6db88881.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_03.png b/exported_glb/BloodElfFemale_textures/face_upper_18_03.png new file mode 100644 index 0000000..4c8a014 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_03.png.import new file mode 100644 index 0000000..f54eb82 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c13r3rmh0ri5r" +path="res://.godot/imported/face_upper_18_03.png-caf0dc59ec0babd7eb77e7d99a83a1c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_03.png" +dest_files=["res://.godot/imported/face_upper_18_03.png-caf0dc59ec0babd7eb77e7d99a83a1c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_04.png b/exported_glb/BloodElfFemale_textures/face_upper_18_04.png new file mode 100644 index 0000000..efc72fc Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_04.png.import new file mode 100644 index 0000000..afecfac --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2jwokitcs14r" +path="res://.godot/imported/face_upper_18_04.png-ca35d08ca1f8cc79512c746be3a012eb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_04.png" +dest_files=["res://.godot/imported/face_upper_18_04.png-ca35d08ca1f8cc79512c746be3a012eb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_05.png b/exported_glb/BloodElfFemale_textures/face_upper_18_05.png new file mode 100644 index 0000000..1468a2e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_05.png.import new file mode 100644 index 0000000..7053fb6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cajymsg3fcnh2" +path="res://.godot/imported/face_upper_18_05.png-34eabc917b2e155c081d60eaa780c967.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_05.png" +dest_files=["res://.godot/imported/face_upper_18_05.png-34eabc917b2e155c081d60eaa780c967.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_06.png b/exported_glb/BloodElfFemale_textures/face_upper_18_06.png new file mode 100644 index 0000000..c1b8b62 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_06.png.import new file mode 100644 index 0000000..00ea782 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bahi0bfk2hwq3" +path="res://.godot/imported/face_upper_18_06.png-7564676e251985db5d06fb730b8ebdb1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_06.png" +dest_files=["res://.godot/imported/face_upper_18_06.png-7564676e251985db5d06fb730b8ebdb1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_07.png b/exported_glb/BloodElfFemale_textures/face_upper_18_07.png new file mode 100644 index 0000000..d41579c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_07.png.import new file mode 100644 index 0000000..6c2c418 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://yv3i268di3ig" +path="res://.godot/imported/face_upper_18_07.png-2849ca20c8ce79f517c702dadacb20c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_07.png" +dest_files=["res://.godot/imported/face_upper_18_07.png-2849ca20c8ce79f517c702dadacb20c5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_08.png b/exported_glb/BloodElfFemale_textures/face_upper_18_08.png new file mode 100644 index 0000000..64b94e2 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_08.png.import new file mode 100644 index 0000000..2bb0707 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gb1lgeoq23mx" +path="res://.godot/imported/face_upper_18_08.png-acb3e71c007726fca0f4e79520d1b4cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_08.png" +dest_files=["res://.godot/imported/face_upper_18_08.png-acb3e71c007726fca0f4e79520d1b4cc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_09.png b/exported_glb/BloodElfFemale_textures/face_upper_18_09.png new file mode 100644 index 0000000..a000557 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_18_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_18_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_18_09.png.import new file mode 100644 index 0000000..a148fb5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_18_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmmgu7sqc8vgh" +path="res://.godot/imported/face_upper_18_09.png-6ce178b264ed893cfda8568c67acfaab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_18_09.png" +dest_files=["res://.godot/imported/face_upper_18_09.png-6ce178b264ed893cfda8568c67acfaab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_00.png b/exported_glb/BloodElfFemale_textures/face_upper_19_00.png new file mode 100644 index 0000000..3625d36 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_00.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_00.png.import new file mode 100644 index 0000000..3362b73 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8p6kckui375l" +path="res://.godot/imported/face_upper_19_00.png-760b103a8096bccfb6f08d1b14af8905.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_00.png" +dest_files=["res://.godot/imported/face_upper_19_00.png-760b103a8096bccfb6f08d1b14af8905.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_01.png b/exported_glb/BloodElfFemale_textures/face_upper_19_01.png new file mode 100644 index 0000000..f0d3f72 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_01.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_01.png.import new file mode 100644 index 0000000..6ea53ec --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v2i0oexv2n0p" +path="res://.godot/imported/face_upper_19_01.png-838bbed1bd8b414f81a0ce0645103e03.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_01.png" +dest_files=["res://.godot/imported/face_upper_19_01.png-838bbed1bd8b414f81a0ce0645103e03.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_02.png b/exported_glb/BloodElfFemale_textures/face_upper_19_02.png new file mode 100644 index 0000000..d4674a9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_02.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_02.png.import new file mode 100644 index 0000000..f12c445 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0s4hpm2ojkos" +path="res://.godot/imported/face_upper_19_02.png-50b5d5fd09f707b18241c2e7eb0ef93f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_02.png" +dest_files=["res://.godot/imported/face_upper_19_02.png-50b5d5fd09f707b18241c2e7eb0ef93f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_03.png b/exported_glb/BloodElfFemale_textures/face_upper_19_03.png new file mode 100644 index 0000000..774a062 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_03.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_03.png.import new file mode 100644 index 0000000..84030c5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cutrmli6nfusq" +path="res://.godot/imported/face_upper_19_03.png-8b9fd547ac4d547240c7b6409f6ad2a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_03.png" +dest_files=["res://.godot/imported/face_upper_19_03.png-8b9fd547ac4d547240c7b6409f6ad2a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_04.png b/exported_glb/BloodElfFemale_textures/face_upper_19_04.png new file mode 100644 index 0000000..c4b2e87 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_04.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_04.png.import new file mode 100644 index 0000000..c152c8f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu1efut0hjxe1" +path="res://.godot/imported/face_upper_19_04.png-9bbeadac08839ef128c370bec9df10e3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_04.png" +dest_files=["res://.godot/imported/face_upper_19_04.png-9bbeadac08839ef128c370bec9df10e3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_05.png b/exported_glb/BloodElfFemale_textures/face_upper_19_05.png new file mode 100644 index 0000000..817bcfd Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_05.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_05.png.import new file mode 100644 index 0000000..b5f4207 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bw0kdvjqqitc5" +path="res://.godot/imported/face_upper_19_05.png-6c0d20cacd9538d223c87cb2f8decc98.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_05.png" +dest_files=["res://.godot/imported/face_upper_19_05.png-6c0d20cacd9538d223c87cb2f8decc98.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_06.png b/exported_glb/BloodElfFemale_textures/face_upper_19_06.png new file mode 100644 index 0000000..8653a91 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_06.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_06.png.import new file mode 100644 index 0000000..60d764a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjnqauybu7mhd" +path="res://.godot/imported/face_upper_19_06.png-76c4ad4a368a6709248dc52486eefffb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_06.png" +dest_files=["res://.godot/imported/face_upper_19_06.png-76c4ad4a368a6709248dc52486eefffb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_07.png b/exported_glb/BloodElfFemale_textures/face_upper_19_07.png new file mode 100644 index 0000000..339e7a6 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_07.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_07.png.import new file mode 100644 index 0000000..1906f74 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rowrsleafd1u" +path="res://.godot/imported/face_upper_19_07.png-e61e947a1d78478fa11044d9e26bd91e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_07.png" +dest_files=["res://.godot/imported/face_upper_19_07.png-e61e947a1d78478fa11044d9e26bd91e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_08.png b/exported_glb/BloodElfFemale_textures/face_upper_19_08.png new file mode 100644 index 0000000..365bb40 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_08.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_08.png.import new file mode 100644 index 0000000..00d9133 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tdjmgx0pqso6" +path="res://.godot/imported/face_upper_19_08.png-6df5d2d3a88e1bee40167f12cd4cf33e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_08.png" +dest_files=["res://.godot/imported/face_upper_19_08.png-6df5d2d3a88e1bee40167f12cd4cf33e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_09.png b/exported_glb/BloodElfFemale_textures/face_upper_19_09.png new file mode 100644 index 0000000..d05c8ed Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/face_upper_19_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/face_upper_19_09.png.import b/exported_glb/BloodElfFemale_textures/face_upper_19_09.png.import new file mode 100644 index 0000000..ce92836 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/face_upper_19_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7rtd177w3ql1" +path="res://.godot/imported/face_upper_19_09.png-fcd819eb262c80168bd35c520074c21c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/face_upper_19_09.png" +dest_files=["res://.godot/imported/face_upper_19_09.png-fcd819eb262c80168bd35c520074c21c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_00.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_00.png new file mode 100644 index 0000000..cf5b9c8 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_00.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_00.png.import new file mode 100644 index 0000000..bc330da --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bw35fblxng4iv" +path="res://.godot/imported/naked_pelvis_00.png-8bec0ce5cf6ac049b0647fa101c80ea3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_00.png" +dest_files=["res://.godot/imported/naked_pelvis_00.png-8bec0ce5cf6ac049b0647fa101c80ea3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_01.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_01.png new file mode 100644 index 0000000..81f3214 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_01.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_01.png.import new file mode 100644 index 0000000..eddecf3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cllymssq6pttm" +path="res://.godot/imported/naked_pelvis_01.png-4a77dd2f41322321c6a50d7d428e916d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_01.png" +dest_files=["res://.godot/imported/naked_pelvis_01.png-4a77dd2f41322321c6a50d7d428e916d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_02.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_02.png new file mode 100644 index 0000000..81f7f06 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_02.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_02.png.import new file mode 100644 index 0000000..1296376 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3ewqwixraej4" +path="res://.godot/imported/naked_pelvis_02.png-72814960f256f4ccf770931dddf22047.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_02.png" +dest_files=["res://.godot/imported/naked_pelvis_02.png-72814960f256f4ccf770931dddf22047.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_03.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_03.png new file mode 100644 index 0000000..eca9f7b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_03.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_03.png.import new file mode 100644 index 0000000..850f728 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://co40gan35wbll" +path="res://.godot/imported/naked_pelvis_03.png-4a9b35c250386a0ae1231522ae038595.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_03.png" +dest_files=["res://.godot/imported/naked_pelvis_03.png-4a9b35c250386a0ae1231522ae038595.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_04.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_04.png new file mode 100644 index 0000000..d7a100d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_04.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_04.png.import new file mode 100644 index 0000000..af30da3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dewy1i1ca2kcm" +path="res://.godot/imported/naked_pelvis_04.png-1b744735b44089f94bce7f4b3c5d8064.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_04.png" +dest_files=["res://.godot/imported/naked_pelvis_04.png-1b744735b44089f94bce7f4b3c5d8064.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_05.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_05.png new file mode 100644 index 0000000..a47092e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_05.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_05.png.import new file mode 100644 index 0000000..2a8a116 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfd0yw6wh876j" +path="res://.godot/imported/naked_pelvis_05.png-8a451a68eb7fad808ea28a3e970e85e5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_05.png" +dest_files=["res://.godot/imported/naked_pelvis_05.png-8a451a68eb7fad808ea28a3e970e85e5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_06.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_06.png new file mode 100644 index 0000000..b5a3383 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_06.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_06.png.import new file mode 100644 index 0000000..f2d9082 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcjcxwhdqjir3" +path="res://.godot/imported/naked_pelvis_06.png-0ed33cdfe680ece3b28bc22d82f1a10d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_06.png" +dest_files=["res://.godot/imported/naked_pelvis_06.png-0ed33cdfe680ece3b28bc22d82f1a10d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_07.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_07.png new file mode 100644 index 0000000..a4abe1a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_07.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_07.png.import new file mode 100644 index 0000000..41b2634 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7o2jyjon18wq" +path="res://.godot/imported/naked_pelvis_07.png-c209c66d9b17bd10857f98c83c3c98f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_07.png" +dest_files=["res://.godot/imported/naked_pelvis_07.png-c209c66d9b17bd10857f98c83c3c98f0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_08.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_08.png new file mode 100644 index 0000000..a1bdec7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_08.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_08.png.import new file mode 100644 index 0000000..8d3e6a5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi23a5oikpm1n" +path="res://.godot/imported/naked_pelvis_08.png-88b6a4aefee50719fc80304b34eb9bd5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_08.png" +dest_files=["res://.godot/imported/naked_pelvis_08.png-88b6a4aefee50719fc80304b34eb9bd5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_09.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_09.png new file mode 100644 index 0000000..0746e85 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_09.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_09.png.import new file mode 100644 index 0000000..5d49a3b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do0p1qeagm3cq" +path="res://.godot/imported/naked_pelvis_09.png-24e445f30afafede88d9aed5aeeb738b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_09.png" +dest_files=["res://.godot/imported/naked_pelvis_09.png-24e445f30afafede88d9aed5aeeb738b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_10.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_10.png new file mode 100644 index 0000000..84c1ace Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_10.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_10.png.import new file mode 100644 index 0000000..2093c6f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhb0xlnhh3hof" +path="res://.godot/imported/naked_pelvis_10.png-c2253a5f1c52d23b385548de637e0b23.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_10.png" +dest_files=["res://.godot/imported/naked_pelvis_10.png-c2253a5f1c52d23b385548de637e0b23.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_11.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_11.png new file mode 100644 index 0000000..4aa6c3f Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_11.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_11.png.import new file mode 100644 index 0000000..d88a042 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu3w04k4k2qon" +path="res://.godot/imported/naked_pelvis_11.png-1627109082469dec2d3d20cb89dbd763.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_11.png" +dest_files=["res://.godot/imported/naked_pelvis_11.png-1627109082469dec2d3d20cb89dbd763.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_12.png b/exported_glb/BloodElfFemale_textures/naked_pelvis_12.png new file mode 100644 index 0000000..243350c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_pelvis_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_pelvis_12.png.import b/exported_glb/BloodElfFemale_textures/naked_pelvis_12.png.import new file mode 100644 index 0000000..cc50c96 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_pelvis_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bld7uhdgrx7iu" +path="res://.godot/imported/naked_pelvis_12.png-82e1e6b16ebf9c0692fc3c444160d1cf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_pelvis_12.png" +dest_files=["res://.godot/imported/naked_pelvis_12.png-82e1e6b16ebf9c0692fc3c444160d1cf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_00.png b/exported_glb/BloodElfFemale_textures/naked_torso_00.png new file mode 100644 index 0000000..9de0bca Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_00.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_00.png.import new file mode 100644 index 0000000..bc3bb3c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ceq370ulmemf5" +path="res://.godot/imported/naked_torso_00.png-dc480a6ea5d7ce5ae350dd9ea55bd8da.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_00.png" +dest_files=["res://.godot/imported/naked_torso_00.png-dc480a6ea5d7ce5ae350dd9ea55bd8da.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_01.png b/exported_glb/BloodElfFemale_textures/naked_torso_01.png new file mode 100644 index 0000000..1dbaaea Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_01.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_01.png.import new file mode 100644 index 0000000..c702223 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbfbi7v3qt111" +path="res://.godot/imported/naked_torso_01.png-804ae81f0bdb770bac7aa35fe8224748.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_01.png" +dest_files=["res://.godot/imported/naked_torso_01.png-804ae81f0bdb770bac7aa35fe8224748.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_02.png b/exported_glb/BloodElfFemale_textures/naked_torso_02.png new file mode 100644 index 0000000..1a52b1a Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_02.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_02.png.import new file mode 100644 index 0000000..0f659d4 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhp24mfn4t3y5" +path="res://.godot/imported/naked_torso_02.png-7bce1c776b0be94c4af9720f95289b08.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_02.png" +dest_files=["res://.godot/imported/naked_torso_02.png-7bce1c776b0be94c4af9720f95289b08.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_03.png b/exported_glb/BloodElfFemale_textures/naked_torso_03.png new file mode 100644 index 0000000..41014b5 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_03.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_03.png.import new file mode 100644 index 0000000..a9e8771 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d20lhfh38bm2g" +path="res://.godot/imported/naked_torso_03.png-30fe93912349c10aedf2be092ae51629.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_03.png" +dest_files=["res://.godot/imported/naked_torso_03.png-30fe93912349c10aedf2be092ae51629.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_04.png b/exported_glb/BloodElfFemale_textures/naked_torso_04.png new file mode 100644 index 0000000..75f46ea Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_04.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_04.png.import new file mode 100644 index 0000000..47c7669 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://m2ehpr3b4alb" +path="res://.godot/imported/naked_torso_04.png-d1e44f5a0b4aeb8b2ae88f5715f30b99.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_04.png" +dest_files=["res://.godot/imported/naked_torso_04.png-d1e44f5a0b4aeb8b2ae88f5715f30b99.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_05.png b/exported_glb/BloodElfFemale_textures/naked_torso_05.png new file mode 100644 index 0000000..0e038c7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_05.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_05.png.import new file mode 100644 index 0000000..68f529c --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bri0m52nncy57" +path="res://.godot/imported/naked_torso_05.png-1057c8e155e98843dae43f7b1de38549.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_05.png" +dest_files=["res://.godot/imported/naked_torso_05.png-1057c8e155e98843dae43f7b1de38549.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_06.png b/exported_glb/BloodElfFemale_textures/naked_torso_06.png new file mode 100644 index 0000000..57fa6ef Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_06.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_06.png.import new file mode 100644 index 0000000..c1ac6f1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0tlqc8joq05u" +path="res://.godot/imported/naked_torso_06.png-d44e654ad0c73eb38906a8918d145f3d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_06.png" +dest_files=["res://.godot/imported/naked_torso_06.png-d44e654ad0c73eb38906a8918d145f3d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_07.png b/exported_glb/BloodElfFemale_textures/naked_torso_07.png new file mode 100644 index 0000000..38f0f73 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_07.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_07.png.import new file mode 100644 index 0000000..56a1b04 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6853ipajqt4p" +path="res://.godot/imported/naked_torso_07.png-096c160e0c74673d4c0d44686f1a6683.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_07.png" +dest_files=["res://.godot/imported/naked_torso_07.png-096c160e0c74673d4c0d44686f1a6683.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_08.png b/exported_glb/BloodElfFemale_textures/naked_torso_08.png new file mode 100644 index 0000000..471e036 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_08.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_08.png.import new file mode 100644 index 0000000..a7df794 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c63fp5egy0smo" +path="res://.godot/imported/naked_torso_08.png-f73bcc5d65bf9261033cd4c2ec47f8b6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_08.png" +dest_files=["res://.godot/imported/naked_torso_08.png-f73bcc5d65bf9261033cd4c2ec47f8b6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_09.png b/exported_glb/BloodElfFemale_textures/naked_torso_09.png new file mode 100644 index 0000000..2a07610 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_09.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_09.png.import new file mode 100644 index 0000000..9e478f6 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l6f38fvi1p0v" +path="res://.godot/imported/naked_torso_09.png-f657c855e9019e0912f90c07ac40b22c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_09.png" +dest_files=["res://.godot/imported/naked_torso_09.png-f657c855e9019e0912f90c07ac40b22c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_10.png b/exported_glb/BloodElfFemale_textures/naked_torso_10.png new file mode 100644 index 0000000..7b55a0e Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_10.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_10.png.import new file mode 100644 index 0000000..5354749 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4741bka47drc" +path="res://.godot/imported/naked_torso_10.png-beaeb0c3209ed20b7e640a619b830a78.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_10.png" +dest_files=["res://.godot/imported/naked_torso_10.png-beaeb0c3209ed20b7e640a619b830a78.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_11.png b/exported_glb/BloodElfFemale_textures/naked_torso_11.png new file mode 100644 index 0000000..b877f70 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_11.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_11.png.import new file mode 100644 index 0000000..4991fda --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddrved74gtkxc" +path="res://.godot/imported/naked_torso_11.png-748eab0e4a23635e249afeb138708b02.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_11.png" +dest_files=["res://.godot/imported/naked_torso_11.png-748eab0e4a23635e249afeb138708b02.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_12.png b/exported_glb/BloodElfFemale_textures/naked_torso_12.png new file mode 100644 index 0000000..d50935c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/naked_torso_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/naked_torso_12.png.import b/exported_glb/BloodElfFemale_textures/naked_torso_12.png.import new file mode 100644 index 0000000..20fdf0d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/naked_torso_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0jkq2fuvngfn" +path="res://.godot/imported/naked_torso_12.png-0260b41f187959d2b8edcfd0ec9eb1f8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/naked_torso_12.png" +dest_files=["res://.godot/imported/naked_torso_12.png-0260b41f187959d2b8edcfd0ec9eb1f8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_00.png b/exported_glb/BloodElfFemale_textures/skin_00.png new file mode 100644 index 0000000..33ba82d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_00.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_00.png.import b/exported_glb/BloodElfFemale_textures/skin_00.png.import new file mode 100644 index 0000000..8b4f4a1 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_00.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxu3ptjlime8c" +path="res://.godot/imported/skin_00.png-c0112c41202ce1c0ec9489f2fec1ceb3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_00.png" +dest_files=["res://.godot/imported/skin_00.png-c0112c41202ce1c0ec9489f2fec1ceb3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_01.png b/exported_glb/BloodElfFemale_textures/skin_01.png new file mode 100644 index 0000000..adb5c2b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_01.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_01.png.import b/exported_glb/BloodElfFemale_textures/skin_01.png.import new file mode 100644 index 0000000..c804f6f --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dagwqmtt6owkw" +path="res://.godot/imported/skin_01.png-b8778385596a17b0442467e33d9b737a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_01.png" +dest_files=["res://.godot/imported/skin_01.png-b8778385596a17b0442467e33d9b737a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_02.png b/exported_glb/BloodElfFemale_textures/skin_02.png new file mode 100644 index 0000000..1df47c7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_02.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_02.png.import b/exported_glb/BloodElfFemale_textures/skin_02.png.import new file mode 100644 index 0000000..e228d0d --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkfauqmd1ykwo" +path="res://.godot/imported/skin_02.png-4bad2f9e136522a33e374907a5059df7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_02.png" +dest_files=["res://.godot/imported/skin_02.png-4bad2f9e136522a33e374907a5059df7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_03.png b/exported_glb/BloodElfFemale_textures/skin_03.png new file mode 100644 index 0000000..2f82838 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_03.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_03.png.import b/exported_glb/BloodElfFemale_textures/skin_03.png.import new file mode 100644 index 0000000..fcd5bd2 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_03.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://che4drwpwodik" +path="res://.godot/imported/skin_03.png-35698bc2ad7b99297b0230e4d5732600.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_03.png" +dest_files=["res://.godot/imported/skin_03.png-35698bc2ad7b99297b0230e4d5732600.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_04.png b/exported_glb/BloodElfFemale_textures/skin_04.png new file mode 100644 index 0000000..f161c47 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_04.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_04.png.import b/exported_glb/BloodElfFemale_textures/skin_04.png.import new file mode 100644 index 0000000..2f6b88a --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_04.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8ie8sfydhe8f" +path="res://.godot/imported/skin_04.png-1d60521e5de170b3b9d4c77bf57cf53a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_04.png" +dest_files=["res://.godot/imported/skin_04.png-1d60521e5de170b3b9d4c77bf57cf53a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_05.png b/exported_glb/BloodElfFemale_textures/skin_05.png new file mode 100644 index 0000000..7d63211 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_05.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_05.png.import b/exported_glb/BloodElfFemale_textures/skin_05.png.import new file mode 100644 index 0000000..0658fbf --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_05.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csf0hds0kg5em" +path="res://.godot/imported/skin_05.png-3d69eaabb21550754d79648c8da1eafc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_05.png" +dest_files=["res://.godot/imported/skin_05.png-3d69eaabb21550754d79648c8da1eafc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_06.png b/exported_glb/BloodElfFemale_textures/skin_06.png new file mode 100644 index 0000000..484308d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_06.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_06.png.import b/exported_glb/BloodElfFemale_textures/skin_06.png.import new file mode 100644 index 0000000..639d3ac --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_06.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfxm2r6qxknbp" +path="res://.godot/imported/skin_06.png-21932c617cf633a80881d6ea8e84c70b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_06.png" +dest_files=["res://.godot/imported/skin_06.png-21932c617cf633a80881d6ea8e84c70b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_07.png b/exported_glb/BloodElfFemale_textures/skin_07.png new file mode 100644 index 0000000..7879253 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_07.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_07.png.import b/exported_glb/BloodElfFemale_textures/skin_07.png.import new file mode 100644 index 0000000..f9dfa07 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_07.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpxltmbphd0ja" +path="res://.godot/imported/skin_07.png-11b90308636b43d1e0c434bd05c84956.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_07.png" +dest_files=["res://.godot/imported/skin_07.png-11b90308636b43d1e0c434bd05c84956.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_08.png b/exported_glb/BloodElfFemale_textures/skin_08.png new file mode 100644 index 0000000..254e1b7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_08.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_08.png.import b/exported_glb/BloodElfFemale_textures/skin_08.png.import new file mode 100644 index 0000000..41949cb --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_08.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://h5bvwxqxphik" +path="res://.godot/imported/skin_08.png-910d69672fe57bc2a12f0317121bd1f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_08.png" +dest_files=["res://.godot/imported/skin_08.png-910d69672fe57bc2a12f0317121bd1f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_09.png b/exported_glb/BloodElfFemale_textures/skin_09.png new file mode 100644 index 0000000..5adf8b9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_09.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_09.png.import b/exported_glb/BloodElfFemale_textures/skin_09.png.import new file mode 100644 index 0000000..1ec7f77 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_09.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjtsf7srfb682" +path="res://.godot/imported/skin_09.png-154b7474912cc7463d783216a11b727e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_09.png" +dest_files=["res://.godot/imported/skin_09.png-154b7474912cc7463d783216a11b727e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_10.png b/exported_glb/BloodElfFemale_textures/skin_10.png new file mode 100644 index 0000000..dbd98e7 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_10.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_10.png.import b/exported_glb/BloodElfFemale_textures/skin_10.png.import new file mode 100644 index 0000000..24f823b --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_10.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jwv1e1femibn" +path="res://.godot/imported/skin_10.png-b5f80fcf05a4571940a627d70412aaa6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_10.png" +dest_files=["res://.godot/imported/skin_10.png-b5f80fcf05a4571940a627d70412aaa6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_100.png b/exported_glb/BloodElfFemale_textures/skin_100.png new file mode 100644 index 0000000..9b8cd92 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_100.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_100.png.import b/exported_glb/BloodElfFemale_textures/skin_100.png.import new file mode 100644 index 0000000..65810f0 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_100.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://imn3yun0cydu" +path="res://.godot/imported/skin_100.png-1a3ba79562681fd818bfaae8089a8b87.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_100.png" +dest_files=["res://.godot/imported/skin_100.png-1a3ba79562681fd818bfaae8089a8b87.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_101.png b/exported_glb/BloodElfFemale_textures/skin_101.png new file mode 100644 index 0000000..bf5573b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_101.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_101.png.import b/exported_glb/BloodElfFemale_textures/skin_101.png.import new file mode 100644 index 0000000..46a1cae --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_101.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvhm34qu45qcn" +path="res://.godot/imported/skin_101.png-a70cf9a7db9968a69b08bc37a86bb0ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_101.png" +dest_files=["res://.godot/imported/skin_101.png-a70cf9a7db9968a69b08bc37a86bb0ba.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_102.png b/exported_glb/BloodElfFemale_textures/skin_102.png new file mode 100644 index 0000000..ed0cb8d Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_102.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_102.png.import b/exported_glb/BloodElfFemale_textures/skin_102.png.import new file mode 100644 index 0000000..26b31ac --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_102.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0inf57um6rve" +path="res://.godot/imported/skin_102.png-40925fb2369221bd6eb4c5cc229fb32d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_102.png" +dest_files=["res://.godot/imported/skin_102.png-40925fb2369221bd6eb4c5cc229fb32d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_103.png b/exported_glb/BloodElfFemale_textures/skin_103.png new file mode 100644 index 0000000..3aecdba Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_103.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_103.png.import b/exported_glb/BloodElfFemale_textures/skin_103.png.import new file mode 100644 index 0000000..949d433 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_103.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjtj2bqoywwth" +path="res://.godot/imported/skin_103.png-61f08bf05503f4ed96864d812d061619.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_103.png" +dest_files=["res://.godot/imported/skin_103.png-61f08bf05503f4ed96864d812d061619.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_104.png b/exported_glb/BloodElfFemale_textures/skin_104.png new file mode 100644 index 0000000..08a05d3 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_104.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_104.png.import b/exported_glb/BloodElfFemale_textures/skin_104.png.import new file mode 100644 index 0000000..d08c1c3 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_104.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjnl4bkutdtce" +path="res://.godot/imported/skin_104.png-beb9fb2cc918a5289d2749f13b6cfef0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_104.png" +dest_files=["res://.godot/imported/skin_104.png-beb9fb2cc918a5289d2749f13b6cfef0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_105.png b/exported_glb/BloodElfFemale_textures/skin_105.png new file mode 100644 index 0000000..3e9e0c9 Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_105.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_105.png.import b/exported_glb/BloodElfFemale_textures/skin_105.png.import new file mode 100644 index 0000000..4670aa5 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_105.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4i27ba4s8wgp" +path="res://.godot/imported/skin_105.png-a6da0852a570891591819b011c2b6aab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_105.png" +dest_files=["res://.godot/imported/skin_105.png-a6da0852a570891591819b011c2b6aab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_11.png b/exported_glb/BloodElfFemale_textures/skin_11.png new file mode 100644 index 0000000..de2ab2c Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_11.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_11.png.import b/exported_glb/BloodElfFemale_textures/skin_11.png.import new file mode 100644 index 0000000..6cfb1ca --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_11.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o8sy1fonxlvc" +path="res://.godot/imported/skin_11.png-a00b4b69eacdf1283eef0ccb06082ea3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_11.png" +dest_files=["res://.godot/imported/skin_11.png-a00b4b69eacdf1283eef0ccb06082ea3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfFemale_textures/skin_12.png b/exported_glb/BloodElfFemale_textures/skin_12.png new file mode 100644 index 0000000..9787f1b Binary files /dev/null and b/exported_glb/BloodElfFemale_textures/skin_12.png differ diff --git a/exported_glb/BloodElfFemale_textures/skin_12.png.import b/exported_glb/BloodElfFemale_textures/skin_12.png.import new file mode 100644 index 0000000..c17e890 --- /dev/null +++ b/exported_glb/BloodElfFemale_textures/skin_12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckwr8px1gfyov" +path="res://.godot/imported/skin_12.png-1df42b18155a41f306cdc7be5d10f46c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://exported_glb/BloodElfFemale_textures/skin_12.png" +dest_files=["res://.godot/imported/skin_12.png-1df42b18155a41f306cdc7be5d10f46c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/exported_glb/BloodElfMale.glb b/exported_glb/BloodElfMale.glb new file mode 100644 index 0000000..945b227 Binary files /dev/null and b/exported_glb/BloodElfMale.glb differ diff --git a/exported_glb/BloodElfMale.glb.import b/exported_glb/BloodElfMale.glb.import new file mode 100644 index 0000000..5a9a1b4 --- /dev/null +++ b/exported_glb/BloodElfMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cmh1e062h3tas" +path="res://.godot/imported/BloodElfMale.glb-9ab8b46787a3859a1c9abb0d3e3243a6.scn" + +[deps] + +source_file="res://exported_glb/BloodElfMale.glb" +dest_files=["res://.godot/imported/BloodElfMale.glb-9ab8b46787a3859a1c9abb0d3e3243a6.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png b/exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png new file mode 100644 index 0000000..d17029c Binary files /dev/null and b/exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png differ diff --git a/exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png.import b/exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png.import new file mode 100644 index 0000000..999c6e5 --- /dev/null +++ b/exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0u6b66pwxdfy" +path.s3tc="res://.godot/imported/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png-99d26699e2b0a17c0d49f12bcdf7c172.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e4357947558b2043edc1c7ee3887ce57" +} + +[deps] + +source_file="res://exported_glb/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png" +dest_files=["res://.godot/imported/BloodElfMale_BLOODELFFEMALEEYEGLOWGREEN.png-99d26699e2b0a17c0d49f12bcdf7c172.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfMale_BloodElfMaleHair01.png b/exported_glb/BloodElfMale_BloodElfMaleHair01.png new file mode 100644 index 0000000..17a8292 Binary files /dev/null and b/exported_glb/BloodElfMale_BloodElfMaleHair01.png differ diff --git a/exported_glb/BloodElfMale_BloodElfMaleHair01.png.import b/exported_glb/BloodElfMale_BloodElfMaleHair01.png.import new file mode 100644 index 0000000..cb0b086 --- /dev/null +++ b/exported_glb/BloodElfMale_BloodElfMaleHair01.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o5vl64nm408e" +path.s3tc="res://.godot/imported/BloodElfMale_BloodElfMaleHair01.png-c9de5fb9366893a98b02c7e88632162d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "39709866ef9e4a6e4365cc369e922011" +} + +[deps] + +source_file="res://exported_glb/BloodElfMale_BloodElfMaleHair01.png" +dest_files=["res://.godot/imported/BloodElfMale_BloodElfMaleHair01.png-c9de5fb9366893a98b02c7e88632162d.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png b/exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png new file mode 100644 index 0000000..8a703f8 Binary files /dev/null and b/exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png differ diff --git a/exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png.import b/exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png.import new file mode 100644 index 0000000..001a28a --- /dev/null +++ b/exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtknx00vl3esr" +path.s3tc="res://.godot/imported/BloodElfMale_BloodElfMaleSkin00_00.png-22349b62a328dc0375f2e2a857e929cb.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "4311da81b2db0d995c2c059faac0426b" +} + +[deps] + +source_file="res://exported_glb/BloodElfMale_BloodElfMaleSkin00_00.png" +dest_files=["res://.godot/imported/BloodElfMale_BloodElfMaleSkin00_00.png-22349b62a328dc0375f2e2a857e929cb.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/BloodElfMale_deathKnightEyeGlow.png b/exported_glb/BloodElfMale_deathKnightEyeGlow.png new file mode 100644 index 0000000..b3bd31e Binary files /dev/null and b/exported_glb/BloodElfMale_deathKnightEyeGlow.png differ diff --git a/exported_glb/BloodElfMale_deathKnightEyeGlow.png.import b/exported_glb/BloodElfMale_deathKnightEyeGlow.png.import new file mode 100644 index 0000000..96030a3 --- /dev/null +++ b/exported_glb/BloodElfMale_deathKnightEyeGlow.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg6l8lqxuscdk" +path.s3tc="res://.godot/imported/BloodElfMale_deathKnightEyeGlow.png-3ad9862d0631a0a135b4e9959d363bc5.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "de4c150e4cd2d49505d8aea5ac12e337" +} + +[deps] + +source_file="res://exported_glb/BloodElfMale_deathKnightEyeGlow.png" +dest_files=["res://.godot/imported/BloodElfMale_deathKnightEyeGlow.png-3ad9862d0631a0a135b4e9959d363bc5.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DraeneiFemale.glb b/exported_glb/DraeneiFemale.glb new file mode 100644 index 0000000..82beefc Binary files /dev/null and b/exported_glb/DraeneiFemale.glb differ diff --git a/exported_glb/DraeneiFemale.glb.import b/exported_glb/DraeneiFemale.glb.import new file mode 100644 index 0000000..012a0d9 --- /dev/null +++ b/exported_glb/DraeneiFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://4888jbd2yeyu" +path="res://.godot/imported/DraeneiFemale.glb-b62c6b22202aa2198b1af387a68fd8fd.scn" + +[deps] + +source_file="res://exported_glb/DraeneiFemale.glb" +dest_files=["res://.godot/imported/DraeneiFemale.glb-b62c6b22202aa2198b1af387a68fd8fd.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png b/exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png new file mode 100644 index 0000000..2260b8a Binary files /dev/null and b/exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png differ diff --git a/exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png.import b/exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png.import new file mode 100644 index 0000000..4e6fbd1 --- /dev/null +++ b/exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bkruosa3yndpx" +path.s3tc="res://.godot/imported/DraeneiFemale_DraeneiFemaleSkin00_00.png-8b9e178eb589ca09233346c7d736dab3.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "9075bc72da1c3a2996534bed06ec60a6" +} + +[deps] + +source_file="res://exported_glb/DraeneiFemale_DraeneiFemaleSkin00_00.png" +dest_files=["res://.godot/imported/DraeneiFemale_DraeneiFemaleSkin00_00.png-8b9e178eb589ca09233346c7d736dab3.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DraeneiFemale_HAIR00_00.png b/exported_glb/DraeneiFemale_HAIR00_00.png new file mode 100644 index 0000000..2808365 Binary files /dev/null and b/exported_glb/DraeneiFemale_HAIR00_00.png differ diff --git a/exported_glb/DraeneiFemale_HAIR00_00.png.import b/exported_glb/DraeneiFemale_HAIR00_00.png.import new file mode 100644 index 0000000..9533aa9 --- /dev/null +++ b/exported_glb/DraeneiFemale_HAIR00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3ew5onsokpsb" +path.s3tc="res://.godot/imported/DraeneiFemale_HAIR00_00.png-3267a49ad08e1ad2a06dee3d54e2e149.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "00731d8bfaac2d45e793dec6d0950830" +} + +[deps] + +source_file="res://exported_glb/DraeneiFemale_HAIR00_00.png" +dest_files=["res://.godot/imported/DraeneiFemale_HAIR00_00.png-3267a49ad08e1ad2a06dee3d54e2e149.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DraeneiMale.glb b/exported_glb/DraeneiMale.glb new file mode 100644 index 0000000..59ebda9 Binary files /dev/null and b/exported_glb/DraeneiMale.glb differ diff --git a/exported_glb/DraeneiMale.glb.import b/exported_glb/DraeneiMale.glb.import new file mode 100644 index 0000000..09d535c --- /dev/null +++ b/exported_glb/DraeneiMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cieo2edy5ntry" +path="res://.godot/imported/DraeneiMale.glb-057b7d7bc461c9623fcb58052e92b984.scn" + +[deps] + +source_file="res://exported_glb/DraeneiMale.glb" +dest_files=["res://.godot/imported/DraeneiMale.glb-057b7d7bc461c9623fcb58052e92b984.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png b/exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png new file mode 100644 index 0000000..51386e0 Binary files /dev/null and b/exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png differ diff --git a/exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png.import b/exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png.import new file mode 100644 index 0000000..f8d8755 --- /dev/null +++ b/exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu26k30g4dtod" +path.s3tc="res://.godot/imported/DraeneiMale_DraeneiMaleSkin00_00.png-842c7cc4e2b3789552656e4e6058f4d9.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "eab77a5eaa5b2a08213ddbb35fa021c0" +} + +[deps] + +source_file="res://exported_glb/DraeneiMale_DraeneiMaleSkin00_00.png" +dest_files=["res://.godot/imported/DraeneiMale_DraeneiMaleSkin00_00.png-842c7cc4e2b3789552656e4e6058f4d9.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DraeneiMale_DraneiHairWhite.png b/exported_glb/DraeneiMale_DraneiHairWhite.png new file mode 100644 index 0000000..726b9a5 Binary files /dev/null and b/exported_glb/DraeneiMale_DraneiHairWhite.png differ diff --git a/exported_glb/DraeneiMale_DraneiHairWhite.png.import b/exported_glb/DraeneiMale_DraneiHairWhite.png.import new file mode 100644 index 0000000..ce941fa --- /dev/null +++ b/exported_glb/DraeneiMale_DraneiHairWhite.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwjf6jrp5ekgf" +path.s3tc="res://.godot/imported/DraeneiMale_DraneiHairWhite.png-cfbe3888b25f2bb11da5927d4f1766bf.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "f4308f368bf615193bb424119593242a" +} + +[deps] + +source_file="res://exported_glb/DraeneiMale_DraneiHairWhite.png" +dest_files=["res://.godot/imported/DraeneiMale_DraneiHairWhite.png-cfbe3888b25f2bb11da5927d4f1766bf.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DwarfFemale.glb b/exported_glb/DwarfFemale.glb new file mode 100644 index 0000000..5d147c4 Binary files /dev/null and b/exported_glb/DwarfFemale.glb differ diff --git a/exported_glb/DwarfFemale.glb.import b/exported_glb/DwarfFemale.glb.import new file mode 100644 index 0000000..596ce9a --- /dev/null +++ b/exported_glb/DwarfFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cbc2p6um4dgjt" +path="res://.godot/imported/DwarfFemale.glb-18185e515565988075206a04171be7c1.scn" + +[deps] + +source_file="res://exported_glb/DwarfFemale.glb" +dest_files=["res://.godot/imported/DwarfFemale.glb-18185e515565988075206a04171be7c1.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png b/exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png new file mode 100644 index 0000000..7cd0068 Binary files /dev/null and b/exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png differ diff --git a/exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png.import b/exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png.import new file mode 100644 index 0000000..e69cd51 --- /dev/null +++ b/exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqixsh4m0c20f" +path.s3tc="res://.godot/imported/DwarfFemale_DwarfFemaleSkin00_00.png-4699d5e84f45463dfb5b6bc10d1d3b7a.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "48bb849fa7fd0d1001e32704dea4221f" +} + +[deps] + +source_file="res://exported_glb/DwarfFemale_DwarfFemaleSkin00_00.png" +dest_files=["res://.godot/imported/DwarfFemale_DwarfFemaleSkin00_00.png-4699d5e84f45463dfb5b6bc10d1d3b7a.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DwarfFemale_FacialLowerHair00_00.png b/exported_glb/DwarfFemale_FacialLowerHair00_00.png new file mode 100644 index 0000000..e50ec8e Binary files /dev/null and b/exported_glb/DwarfFemale_FacialLowerHair00_00.png differ diff --git a/exported_glb/DwarfFemale_FacialLowerHair00_00.png.import b/exported_glb/DwarfFemale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..7d9f181 --- /dev/null +++ b/exported_glb/DwarfFemale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d13khtj12vwtf" +path.s3tc="res://.godot/imported/DwarfFemale_FacialLowerHair00_00.png-2adcdd9b7e2a3f3e8b632ab80ba2b0cd.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "dce80586d4b26f3caeab8e4482df4648" +} + +[deps] + +source_file="res://exported_glb/DwarfFemale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/DwarfFemale_FacialLowerHair00_00.png-2adcdd9b7e2a3f3e8b632ab80ba2b0cd.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DwarfMale.glb b/exported_glb/DwarfMale.glb new file mode 100644 index 0000000..60e04b1 Binary files /dev/null and b/exported_glb/DwarfMale.glb differ diff --git a/exported_glb/DwarfMale.glb.import b/exported_glb/DwarfMale.glb.import new file mode 100644 index 0000000..0b48468 --- /dev/null +++ b/exported_glb/DwarfMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://lw33a5yhdckd" +path="res://.godot/imported/DwarfMale.glb-bc9b8f2ea03befdf4d8e053fae3a0216.scn" + +[deps] + +source_file="res://exported_glb/DwarfMale.glb" +dest_files=["res://.godot/imported/DwarfMale.glb-bc9b8f2ea03befdf4d8e053fae3a0216.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/DwarfMale_DwarfMaleSkin00_00.png b/exported_glb/DwarfMale_DwarfMaleSkin00_00.png new file mode 100644 index 0000000..0859162 Binary files /dev/null and b/exported_glb/DwarfMale_DwarfMaleSkin00_00.png differ diff --git a/exported_glb/DwarfMale_DwarfMaleSkin00_00.png.import b/exported_glb/DwarfMale_DwarfMaleSkin00_00.png.import new file mode 100644 index 0000000..759a50f --- /dev/null +++ b/exported_glb/DwarfMale_DwarfMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqih43mdselcs" +path.s3tc="res://.godot/imported/DwarfMale_DwarfMaleSkin00_00.png-34dbdf362231d103c26b5f509a527b9e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "36ac0e87bd0f7c73f7d58b693a4fdbbe" +} + +[deps] + +source_file="res://exported_glb/DwarfMale_DwarfMaleSkin00_00.png" +dest_files=["res://.godot/imported/DwarfMale_DwarfMaleSkin00_00.png-34dbdf362231d103c26b5f509a527b9e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/DwarfMale_FacialLowerHair00_00.png b/exported_glb/DwarfMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..e50ec8e Binary files /dev/null and b/exported_glb/DwarfMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/DwarfMale_FacialLowerHair00_00.png.import b/exported_glb/DwarfMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..0071915 --- /dev/null +++ b/exported_glb/DwarfMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mbh14eagu8n" +path.s3tc="res://.godot/imported/DwarfMale_FacialLowerHair00_00.png-c22cf64dd889428061c404850bd26950.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "dce80586d4b26f3caeab8e4482df4648" +} + +[deps] + +source_file="res://exported_glb/DwarfMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/DwarfMale_FacialLowerHair00_00.png-c22cf64dd889428061c404850bd26950.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/FelOrcMale.glb b/exported_glb/FelOrcMale.glb new file mode 100644 index 0000000..9c78cbf Binary files /dev/null and b/exported_glb/FelOrcMale.glb differ diff --git a/exported_glb/FelOrcMale.glb.import b/exported_glb/FelOrcMale.glb.import new file mode 100644 index 0000000..e726384 --- /dev/null +++ b/exported_glb/FelOrcMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d0w34f0ab0u32" +path="res://.godot/imported/FelOrcMale.glb-ee48120520859715cb64a5d55a4190d8.scn" + +[deps] + +source_file="res://exported_glb/FelOrcMale.glb" +dest_files=["res://.godot/imported/FelOrcMale.glb-ee48120520859715cb64a5d55a4190d8.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png b/exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png new file mode 100644 index 0000000..7b079e4 Binary files /dev/null and b/exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png differ diff --git a/exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png.import b/exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png.import new file mode 100644 index 0000000..d909045 --- /dev/null +++ b/exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dj2qgfkerlvpq" +path.s3tc="res://.godot/imported/FelOrcMale_FelOrcMaleSkin00_00.png-8be16aa6c705d2746f05e215a5fcf630.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "ea5c82c85eaa9d27f0fc8a3360e374dd" +} + +[deps] + +source_file="res://exported_glb/FelOrcMale_FelOrcMaleSkin00_00.png" +dest_files=["res://.godot/imported/FelOrcMale_FelOrcMaleSkin00_00.png-8be16aa6c705d2746f05e215a5fcf630.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/FelOrcMale_felorceye.png b/exported_glb/FelOrcMale_felorceye.png new file mode 100644 index 0000000..37ce4cd Binary files /dev/null and b/exported_glb/FelOrcMale_felorceye.png differ diff --git a/exported_glb/FelOrcMale_felorceye.png.import b/exported_glb/FelOrcMale_felorceye.png.import new file mode 100644 index 0000000..dc9ad23 --- /dev/null +++ b/exported_glb/FelOrcMale_felorceye.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c10lkpt8m2aao" +path.s3tc="res://.godot/imported/FelOrcMale_felorceye.png-d122537a6398d178afcd89cce8212359.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "ca947f899ebbcc027c7013817a92d833" +} + +[deps] + +source_file="res://exported_glb/FelOrcMale_felorceye.png" +dest_files=["res://.godot/imported/FelOrcMale_felorceye.png-d122537a6398d178afcd89cce8212359.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GnomeFemale.glb b/exported_glb/GnomeFemale.glb new file mode 100644 index 0000000..4f53d47 Binary files /dev/null and b/exported_glb/GnomeFemale.glb differ diff --git a/exported_glb/GnomeFemale.glb.import b/exported_glb/GnomeFemale.glb.import new file mode 100644 index 0000000..4ff5323 --- /dev/null +++ b/exported_glb/GnomeFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cjknbk8pchsdx" +path="res://.godot/imported/GnomeFemale.glb-e5cda1044aed1597eccb0ec2ea705172.scn" + +[deps] + +source_file="res://exported_glb/GnomeFemale.glb" +dest_files=["res://.godot/imported/GnomeFemale.glb-e5cda1044aed1597eccb0ec2ea705172.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/GnomeFemale_FacialLowerHair00_00.png b/exported_glb/GnomeFemale_FacialLowerHair00_00.png new file mode 100644 index 0000000..62525ad Binary files /dev/null and b/exported_glb/GnomeFemale_FacialLowerHair00_00.png differ diff --git a/exported_glb/GnomeFemale_FacialLowerHair00_00.png.import b/exported_glb/GnomeFemale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..8b64853 --- /dev/null +++ b/exported_glb/GnomeFemale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxlysyme8qfnh" +path.s3tc="res://.godot/imported/GnomeFemale_FacialLowerHair00_00.png-867df8b435841961219874fb16912e9e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a13dad8797aba684a2caba4bb381f5f1" +} + +[deps] + +source_file="res://exported_glb/GnomeFemale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/GnomeFemale_FacialLowerHair00_00.png-867df8b435841961219874fb16912e9e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png b/exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png new file mode 100644 index 0000000..fa9c1dc Binary files /dev/null and b/exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png differ diff --git a/exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png.import b/exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png.import new file mode 100644 index 0000000..a776159 --- /dev/null +++ b/exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4mjbg8lmesyp" +path.s3tc="res://.godot/imported/GnomeFemale_GnomeFemaleSkin00_00.png-65cf3ce82fc5b7911b917139f975724d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "b7c24fdc0c95a3f1c502608935f90ae5" +} + +[deps] + +source_file="res://exported_glb/GnomeFemale_GnomeFemaleSkin00_00.png" +dest_files=["res://.godot/imported/GnomeFemale_GnomeFemaleSkin00_00.png-65cf3ce82fc5b7911b917139f975724d.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GnomeMale.glb b/exported_glb/GnomeMale.glb new file mode 100644 index 0000000..3fc6332 Binary files /dev/null and b/exported_glb/GnomeMale.glb differ diff --git a/exported_glb/GnomeMale.glb.import b/exported_glb/GnomeMale.glb.import new file mode 100644 index 0000000..943495a --- /dev/null +++ b/exported_glb/GnomeMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://k5yu17aq2gha" +path="res://.godot/imported/GnomeMale.glb-41f45bc2ca2e3c6d01b8d8c5d3d0b129.scn" + +[deps] + +source_file="res://exported_glb/GnomeMale.glb" +dest_files=["res://.godot/imported/GnomeMale.glb-41f45bc2ca2e3c6d01b8d8c5d3d0b129.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/GnomeMale_FacialLowerHair00_00.png b/exported_glb/GnomeMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..62525ad Binary files /dev/null and b/exported_glb/GnomeMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/GnomeMale_FacialLowerHair00_00.png.import b/exported_glb/GnomeMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..6299b0a --- /dev/null +++ b/exported_glb/GnomeMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d07ckniaqd877" +path.s3tc="res://.godot/imported/GnomeMale_FacialLowerHair00_00.png-dbb39780ba503fb2c969749540a4beac.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a13dad8797aba684a2caba4bb381f5f1" +} + +[deps] + +source_file="res://exported_glb/GnomeMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/GnomeMale_FacialLowerHair00_00.png-dbb39780ba503fb2c969749540a4beac.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png b/exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png new file mode 100644 index 0000000..3b28ea5 Binary files /dev/null and b/exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png differ diff --git a/exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png.import b/exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png.import new file mode 100644 index 0000000..22644a6 --- /dev/null +++ b/exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://de2j6630glql2" +path.s3tc="res://.godot/imported/GnomeMale_GNOMEMALESKIN05NEW.png-617509f97912c52a20c87a3a1c456a66.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "46611b71d304437b161494b8b74c6936" +} + +[deps] + +source_file="res://exported_glb/GnomeMale_GNOMEMALESKIN05NEW.png" +dest_files=["res://.godot/imported/GnomeMale_GNOMEMALESKIN05NEW.png-617509f97912c52a20c87a3a1c456a66.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GnomeMale_GnomeMaleSkin00_00.png b/exported_glb/GnomeMale_GnomeMaleSkin00_00.png new file mode 100644 index 0000000..fb57ceb Binary files /dev/null and b/exported_glb/GnomeMale_GnomeMaleSkin00_00.png differ diff --git a/exported_glb/GnomeMale_GnomeMaleSkin00_00.png.import b/exported_glb/GnomeMale_GnomeMaleSkin00_00.png.import new file mode 100644 index 0000000..00972f0 --- /dev/null +++ b/exported_glb/GnomeMale_GnomeMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2741vni6ra7i" +path.s3tc="res://.godot/imported/GnomeMale_GnomeMaleSkin00_00.png-e2a9b0e950fe769a231ee4acb2bc2bb3.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "57d4475b839b51e05674198a4b75f82d" +} + +[deps] + +source_file="res://exported_glb/GnomeMale_GnomeMaleSkin00_00.png" +dest_files=["res://.godot/imported/GnomeMale_GnomeMaleSkin00_00.png-e2a9b0e950fe769a231ee4acb2bc2bb3.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GoblinFemale.glb b/exported_glb/GoblinFemale.glb new file mode 100644 index 0000000..cef5bde Binary files /dev/null and b/exported_glb/GoblinFemale.glb differ diff --git a/exported_glb/GoblinFemale.glb.import b/exported_glb/GoblinFemale.glb.import new file mode 100644 index 0000000..d03f3bf --- /dev/null +++ b/exported_glb/GoblinFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://f2guxtdrdgad" +path="res://.godot/imported/GoblinFemale.glb-7c16a445621a06937d22d2fc059f1a32.scn" + +[deps] + +source_file="res://exported_glb/GoblinFemale.glb" +dest_files=["res://.godot/imported/GoblinFemale.glb-7c16a445621a06937d22d2fc059f1a32.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png b/exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png new file mode 100644 index 0000000..36b8e65 Binary files /dev/null and b/exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png differ diff --git a/exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png.import b/exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png.import new file mode 100644 index 0000000..9e0f205 --- /dev/null +++ b/exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://87npe3vshe1p" +path.s3tc="res://.godot/imported/GoblinFemale_GOBLINFEMALESKIN00_100.png-fc2c2bf806712823061cf412927ff8ab.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "dafa66d168d2ef7abe184f3e386f5be4" +} + +[deps] + +source_file="res://exported_glb/GoblinFemale_GOBLINFEMALESKIN00_100.png" +dest_files=["res://.godot/imported/GoblinFemale_GOBLINFEMALESKIN00_100.png-fc2c2bf806712823061cf412927ff8ab.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/GoblinMale.glb b/exported_glb/GoblinMale.glb new file mode 100644 index 0000000..6628fd2 Binary files /dev/null and b/exported_glb/GoblinMale.glb differ diff --git a/exported_glb/GoblinMale.glb.import b/exported_glb/GoblinMale.glb.import new file mode 100644 index 0000000..35624a3 --- /dev/null +++ b/exported_glb/GoblinMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://ccmorb3o11xxo" +path="res://.godot/imported/GoblinMale.glb-5132d39752837bc48e902927fe7d8f2c.scn" + +[deps] + +source_file="res://exported_glb/GoblinMale.glb" +dest_files=["res://.godot/imported/GoblinMale.glb-5132d39752837bc48e902927fe7d8f2c.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/GoblinMale_GoblinMaleSkin00_00.png b/exported_glb/GoblinMale_GoblinMaleSkin00_00.png new file mode 100644 index 0000000..6a2b746 Binary files /dev/null and b/exported_glb/GoblinMale_GoblinMaleSkin00_00.png differ diff --git a/exported_glb/GoblinMale_GoblinMaleSkin00_00.png.import b/exported_glb/GoblinMale_GoblinMaleSkin00_00.png.import new file mode 100644 index 0000000..9d9ee1c --- /dev/null +++ b/exported_glb/GoblinMale_GoblinMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8jc3tlw1nfkm" +path.s3tc="res://.godot/imported/GoblinMale_GoblinMaleSkin00_00.png-f85936151227cdc8ebb08ecc36c9192c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "1ce2997f934f4a07d15c8e58a31ae1db" +} + +[deps] + +source_file="res://exported_glb/GoblinMale_GoblinMaleSkin00_00.png" +dest_files=["res://.godot/imported/GoblinMale_GoblinMaleSkin00_00.png-f85936151227cdc8ebb08ecc36c9192c.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/HumanFemale.glb b/exported_glb/HumanFemale.glb new file mode 100644 index 0000000..6a535ad Binary files /dev/null and b/exported_glb/HumanFemale.glb differ diff --git a/exported_glb/HumanFemale.glb.import b/exported_glb/HumanFemale.glb.import new file mode 100644 index 0000000..324201b --- /dev/null +++ b/exported_glb/HumanFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://solg7nqonnih" +path="res://.godot/imported/HumanFemale.glb-37ab0b0922a8a9ab6a4951eefd6d217a.scn" + +[deps] + +source_file="res://exported_glb/HumanFemale.glb" +dest_files=["res://.godot/imported/HumanFemale.glb-37ab0b0922a8a9ab6a4951eefd6d217a.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/HumanFemale_HumanFemaleHairLongWavy.png b/exported_glb/HumanFemale_HumanFemaleHairLongWavy.png new file mode 100644 index 0000000..0391649 Binary files /dev/null and b/exported_glb/HumanFemale_HumanFemaleHairLongWavy.png differ diff --git a/exported_glb/HumanFemale_HumanFemaleHairLongWavy.png.import b/exported_glb/HumanFemale_HumanFemaleHairLongWavy.png.import new file mode 100644 index 0000000..003fb9f --- /dev/null +++ b/exported_glb/HumanFemale_HumanFemaleHairLongWavy.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cp6vhpg6dn3ho" +path.s3tc="res://.godot/imported/HumanFemale_HumanFemaleHairLongWavy.png-250bf5345057fed228f8b9d8355de9f0.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "7c311e7d247159e50050946fa6276424" +} + +[deps] + +source_file="res://exported_glb/HumanFemale_HumanFemaleHairLongWavy.png" +dest_files=["res://.godot/imported/HumanFemale_HumanFemaleHairLongWavy.png-250bf5345057fed228f8b9d8355de9f0.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/HumanFemale_HumanFemaleSkin00_00.png b/exported_glb/HumanFemale_HumanFemaleSkin00_00.png new file mode 100644 index 0000000..859f498 Binary files /dev/null and b/exported_glb/HumanFemale_HumanFemaleSkin00_00.png differ diff --git a/exported_glb/HumanFemale_HumanFemaleSkin00_00.png.import b/exported_glb/HumanFemale_HumanFemaleSkin00_00.png.import new file mode 100644 index 0000000..049d776 --- /dev/null +++ b/exported_glb/HumanFemale_HumanFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6dfo66cfp02f" +path.s3tc="res://.godot/imported/HumanFemale_HumanFemaleSkin00_00.png-76f6640c78d72a8cfb0743a5d3d563f1.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d9493d08399c02c5a5fdc4e79d4aa78b" +} + +[deps] + +source_file="res://exported_glb/HumanFemale_HumanFemaleSkin00_00.png" +dest_files=["res://.godot/imported/HumanFemale_HumanFemaleSkin00_00.png-76f6640c78d72a8cfb0743a5d3d563f1.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/HumanMale.glb b/exported_glb/HumanMale.glb new file mode 100644 index 0000000..b6a428b Binary files /dev/null and b/exported_glb/HumanMale.glb differ diff --git a/exported_glb/HumanMale.glb.import b/exported_glb/HumanMale.glb.import new file mode 100644 index 0000000..83d2ae3 --- /dev/null +++ b/exported_glb/HumanMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cgq4fuk07e4os" +path="res://.godot/imported/HumanMale.glb-a76e1b486f005894bc86c552c05f437e.scn" + +[deps] + +source_file="res://exported_glb/HumanMale.glb" +dest_files=["res://.godot/imported/HumanMale.glb-a76e1b486f005894bc86c552c05f437e.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/HumanMale_FacialLowerHair00_00.png b/exported_glb/HumanMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..0dd7dad Binary files /dev/null and b/exported_glb/HumanMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/HumanMale_FacialLowerHair00_00.png.import b/exported_glb/HumanMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..83fe398 --- /dev/null +++ b/exported_glb/HumanMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1uprdc7oy380" +path.s3tc="res://.godot/imported/HumanMale_FacialLowerHair00_00.png-3a7813174bb46a55bc7961700893ca7d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "6e02bfd656338d7b5ba063950b844f84" +} + +[deps] + +source_file="res://exported_glb/HumanMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/HumanMale_FacialLowerHair00_00.png-3a7813174bb46a55bc7961700893ca7d.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/HumanMale_HumanMaleSkin00_00.png b/exported_glb/HumanMale_HumanMaleSkin00_00.png new file mode 100644 index 0000000..b1f8781 Binary files /dev/null and b/exported_glb/HumanMale_HumanMaleSkin00_00.png differ diff --git a/exported_glb/HumanMale_HumanMaleSkin00_00.png.import b/exported_glb/HumanMale_HumanMaleSkin00_00.png.import new file mode 100644 index 0000000..00ecb80 --- /dev/null +++ b/exported_glb/HumanMale_HumanMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwovd0ea3l4k2" +path.s3tc="res://.godot/imported/HumanMale_HumanMaleSkin00_00.png-c205f76592c731235f625fb519b221ba.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "2198862a729a4c7ea9c1229db099a5df" +} + +[deps] + +source_file="res://exported_glb/HumanMale_HumanMaleSkin00_00.png" +dest_files=["res://.godot/imported/HumanMale_HumanMaleSkin00_00.png-c205f76592c731235f625fb519b221ba.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/IceTrollMale.glb b/exported_glb/IceTrollMale.glb new file mode 100644 index 0000000..3748991 Binary files /dev/null and b/exported_glb/IceTrollMale.glb differ diff --git a/exported_glb/IceTrollMale.glb.import b/exported_glb/IceTrollMale.glb.import new file mode 100644 index 0000000..a63c9a3 --- /dev/null +++ b/exported_glb/IceTrollMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dds0kfhrledgt" +path="res://.godot/imported/IceTrollMale.glb-6081b4a6a48f27f72283e7acfd1afa8b.scn" + +[deps] + +source_file="res://exported_glb/IceTrollMale.glb" +dest_files=["res://.godot/imported/IceTrollMale.glb-6081b4a6a48f27f72283e7acfd1afa8b.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/IceTrollMale_Hair00_00.png b/exported_glb/IceTrollMale_Hair00_00.png new file mode 100644 index 0000000..eb6aca7 Binary files /dev/null and b/exported_glb/IceTrollMale_Hair00_00.png differ diff --git a/exported_glb/IceTrollMale_Hair00_00.png.import b/exported_glb/IceTrollMale_Hair00_00.png.import new file mode 100644 index 0000000..e76899c --- /dev/null +++ b/exported_glb/IceTrollMale_Hair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfdsgw0ukhfq1" +path.s3tc="res://.godot/imported/IceTrollMale_Hair00_00.png-51f73be77c94d2c6551c07c3658699d3.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "07469da8f5fe49e85b7fba4aefd14cd3" +} + +[deps] + +source_file="res://exported_glb/IceTrollMale_Hair00_00.png" +dest_files=["res://.godot/imported/IceTrollMale_Hair00_00.png-51f73be77c94d2c6551c07c3658699d3.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png b/exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png new file mode 100644 index 0000000..ba71d7e Binary files /dev/null and b/exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png differ diff --git a/exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png.import b/exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png.import new file mode 100644 index 0000000..9f1d108 --- /dev/null +++ b/exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfmpculjqjnmb" +path.s3tc="res://.godot/imported/IceTrollMale_IceTrollMaleSkin00_00.png-b78c8571d7abecbd6f50407d44ac385a.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d2abf51d2b36ee56cb41730e22be419a" +} + +[deps] + +source_file="res://exported_glb/IceTrollMale_IceTrollMaleSkin00_00.png" +dest_files=["res://.godot/imported/IceTrollMale_IceTrollMaleSkin00_00.png-b78c8571d7abecbd6f50407d44ac385a.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NightElfFemale.glb b/exported_glb/NightElfFemale.glb new file mode 100644 index 0000000..cf10975 Binary files /dev/null and b/exported_glb/NightElfFemale.glb differ diff --git a/exported_glb/NightElfFemale.glb.import b/exported_glb/NightElfFemale.glb.import new file mode 100644 index 0000000..9f45bed --- /dev/null +++ b/exported_glb/NightElfFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bw0bpsgx10pod" +path="res://.godot/imported/NightElfFemale.glb-6d1e6cf61d883ffbffe6b7d6b61808d5.scn" + +[deps] + +source_file="res://exported_glb/NightElfFemale.glb" +dest_files=["res://.godot/imported/NightElfFemale.glb-6d1e6cf61d883ffbffe6b7d6b61808d5.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/NightElfFemale_FacialLowerHair00_00.png b/exported_glb/NightElfFemale_FacialLowerHair00_00.png new file mode 100644 index 0000000..20adcd9 Binary files /dev/null and b/exported_glb/NightElfFemale_FacialLowerHair00_00.png differ diff --git a/exported_glb/NightElfFemale_FacialLowerHair00_00.png.import b/exported_glb/NightElfFemale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..e642014 --- /dev/null +++ b/exported_glb/NightElfFemale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c32hwju6dhw2l" +path.s3tc="res://.godot/imported/NightElfFemale_FacialLowerHair00_00.png-ab34cb72bfbfcd3ff03c3d22bd7ae3b6.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "2ef117cf0b3e900f7c048eaa828579ed" +} + +[deps] + +source_file="res://exported_glb/NightElfFemale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/NightElfFemale_FacialLowerHair00_00.png-ab34cb72bfbfcd3ff03c3d22bd7ae3b6.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png b/exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png new file mode 100644 index 0000000..983e0b9 Binary files /dev/null and b/exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png differ diff --git a/exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png.import b/exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png.import new file mode 100644 index 0000000..0b077e4 --- /dev/null +++ b/exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cei6swnt6b47o" +path.s3tc="res://.godot/imported/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png-550e8a7a87c28c94acb5192965c23505.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "22826da3f0bd6bcd53f2247adb5ebf77" +} + +[deps] + +source_file="res://exported_glb/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png" +dest_files=["res://.godot/imported/NightElfFemale_NIGHTELFFEMALEEYEGLOW.png-550e8a7a87c28c94acb5192965c23505.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png b/exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png new file mode 100644 index 0000000..e6a57b7 Binary files /dev/null and b/exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png differ diff --git a/exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png.import b/exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png.import new file mode 100644 index 0000000..21748e9 --- /dev/null +++ b/exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyqx6bbj0j0y6" +path.s3tc="res://.godot/imported/NightElfFemale_NightElfFemaleSkin00_00.png-3258ee387a4ac1874e66119478ea7895.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "18a901554913c4b84dd8aac8cd570172" +} + +[deps] + +source_file="res://exported_glb/NightElfFemale_NightElfFemaleSkin00_00.png" +dest_files=["res://.godot/imported/NightElfFemale_NightElfFemaleSkin00_00.png-3258ee387a4ac1874e66119478ea7895.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NightElfMale.glb b/exported_glb/NightElfMale.glb new file mode 100644 index 0000000..422d421 Binary files /dev/null and b/exported_glb/NightElfMale.glb differ diff --git a/exported_glb/NightElfMale.glb.import b/exported_glb/NightElfMale.glb.import new file mode 100644 index 0000000..92eb9a0 --- /dev/null +++ b/exported_glb/NightElfMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b5ingbx7cj2gf" +path="res://.godot/imported/NightElfMale.glb-ebe6ca0c5a0140749d5e8ce768ba733d.scn" + +[deps] + +source_file="res://exported_glb/NightElfMale.glb" +dest_files=["res://.godot/imported/NightElfMale.glb-ebe6ca0c5a0140749d5e8ce768ba733d.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/NightElfMale_FacialLowerHair00_00.png b/exported_glb/NightElfMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..20adcd9 Binary files /dev/null and b/exported_glb/NightElfMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/NightElfMale_FacialLowerHair00_00.png.import b/exported_glb/NightElfMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..b1f2d0b --- /dev/null +++ b/exported_glb/NightElfMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://getttehx6hff" +path.s3tc="res://.godot/imported/NightElfMale_FacialLowerHair00_00.png-3a3f3ce71f7036d89cb673fb963effdf.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "2ef117cf0b3e900f7c048eaa828579ed" +} + +[deps] + +source_file="res://exported_glb/NightElfMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/NightElfMale_FacialLowerHair00_00.png-3a3f3ce71f7036d89cb673fb963effdf.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png b/exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png new file mode 100644 index 0000000..72cb0b8 Binary files /dev/null and b/exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png differ diff --git a/exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png.import b/exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png.import new file mode 100644 index 0000000..71ea867 --- /dev/null +++ b/exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wgyagx5vrjju" +path.s3tc="res://.godot/imported/NightElfMale_NIGHTELFMALEEYEGLOW.png-bc98a15b92d6d88942f5b0a91fae225a.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d44f62d25e59888eb3f1dfa5572a732a" +} + +[deps] + +source_file="res://exported_glb/NightElfMale_NIGHTELFMALEEYEGLOW.png" +dest_files=["res://.godot/imported/NightElfMale_NIGHTELFMALEEYEGLOW.png-bc98a15b92d6d88942f5b0a91fae225a.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NightElfMale_NightElfMaleSkin00_00.png b/exported_glb/NightElfMale_NightElfMaleSkin00_00.png new file mode 100644 index 0000000..01893e0 Binary files /dev/null and b/exported_glb/NightElfMale_NightElfMaleSkin00_00.png differ diff --git a/exported_glb/NightElfMale_NightElfMaleSkin00_00.png.import b/exported_glb/NightElfMale_NightElfMaleSkin00_00.png.import new file mode 100644 index 0000000..a22b2c9 --- /dev/null +++ b/exported_glb/NightElfMale_NightElfMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dc6aqh7ipfpup" +path.s3tc="res://.godot/imported/NightElfMale_NightElfMaleSkin00_00.png-8525e45b161f62362f523b252b0d63bb.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "bbb818f337bc89f8c3857683e3484e4d" +} + +[deps] + +source_file="res://exported_glb/NightElfMale_NightElfMaleSkin00_00.png" +dest_files=["res://.godot/imported/NightElfMale_NightElfMaleSkin00_00.png-8525e45b161f62362f523b252b0d63bb.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/NorthrendSkeletonMale.glb b/exported_glb/NorthrendSkeletonMale.glb new file mode 100644 index 0000000..ae9bb52 Binary files /dev/null and b/exported_glb/NorthrendSkeletonMale.glb differ diff --git a/exported_glb/NorthrendSkeletonMale.glb.import b/exported_glb/NorthrendSkeletonMale.glb.import new file mode 100644 index 0000000..6a89d24 --- /dev/null +++ b/exported_glb/NorthrendSkeletonMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d4i86rr6ray4" +path="res://.godot/imported/NorthrendSkeletonMale.glb-0472ed56daa9b7982b9630880ec0cb68.scn" + +[deps] + +source_file="res://exported_glb/NorthrendSkeletonMale.glb" +dest_files=["res://.godot/imported/NorthrendSkeletonMale.glb-0472ed56daa9b7982b9630880ec0cb68.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/OrcFemale.glb b/exported_glb/OrcFemale.glb new file mode 100644 index 0000000..a44c549 Binary files /dev/null and b/exported_glb/OrcFemale.glb differ diff --git a/exported_glb/OrcFemale.glb.import b/exported_glb/OrcFemale.glb.import new file mode 100644 index 0000000..cf84a74 --- /dev/null +++ b/exported_glb/OrcFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dxh75tat8y3ff" +path="res://.godot/imported/OrcFemale.glb-2b6d3776b5e75c091c2b26a2a50c3bb0.scn" + +[deps] + +source_file="res://exported_glb/OrcFemale.glb" +dest_files=["res://.godot/imported/OrcFemale.glb-2b6d3776b5e75c091c2b26a2a50c3bb0.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/OrcFemale_FacialLowerHair00_00.png b/exported_glb/OrcFemale_FacialLowerHair00_00.png new file mode 100644 index 0000000..5e69405 Binary files /dev/null and b/exported_glb/OrcFemale_FacialLowerHair00_00.png differ diff --git a/exported_glb/OrcFemale_FacialLowerHair00_00.png.import b/exported_glb/OrcFemale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..997d77b --- /dev/null +++ b/exported_glb/OrcFemale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bocyim5x512im" +path.s3tc="res://.godot/imported/OrcFemale_FacialLowerHair00_00.png-7f5581c9f77ff75988e4db745f5374fa.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "cac1726f0411fe6dc814c24a683c2f06" +} + +[deps] + +source_file="res://exported_glb/OrcFemale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/OrcFemale_FacialLowerHair00_00.png-7f5581c9f77ff75988e4db745f5374fa.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/OrcFemale_OrcFemaleSkin00_00.png b/exported_glb/OrcFemale_OrcFemaleSkin00_00.png new file mode 100644 index 0000000..af06ce4 Binary files /dev/null and b/exported_glb/OrcFemale_OrcFemaleSkin00_00.png differ diff --git a/exported_glb/OrcFemale_OrcFemaleSkin00_00.png.import b/exported_glb/OrcFemale_OrcFemaleSkin00_00.png.import new file mode 100644 index 0000000..a129841 --- /dev/null +++ b/exported_glb/OrcFemale_OrcFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxowcmdow8ylx" +path.s3tc="res://.godot/imported/OrcFemale_OrcFemaleSkin00_00.png-32dc31960e44b77c67e4f40f67a1edcf.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "ae37f7ab3d634eceff09e61da6882ceb" +} + +[deps] + +source_file="res://exported_glb/OrcFemale_OrcFemaleSkin00_00.png" +dest_files=["res://.godot/imported/OrcFemale_OrcFemaleSkin00_00.png-32dc31960e44b77c67e4f40f67a1edcf.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/OrcMale.glb b/exported_glb/OrcMale.glb new file mode 100644 index 0000000..3325f28 Binary files /dev/null and b/exported_glb/OrcMale.glb differ diff --git a/exported_glb/OrcMale.glb.import b/exported_glb/OrcMale.glb.import new file mode 100644 index 0000000..fad5c4b --- /dev/null +++ b/exported_glb/OrcMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dijx8sy1m0ybd" +path="res://.godot/imported/OrcMale.glb-7ed34e38b4864fcb5a7359d0dd4dab39.scn" + +[deps] + +source_file="res://exported_glb/OrcMale.glb" +dest_files=["res://.godot/imported/OrcMale.glb-7ed34e38b4864fcb5a7359d0dd4dab39.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/OrcMale_FacialLowerHair00_00.png b/exported_glb/OrcMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..5e69405 Binary files /dev/null and b/exported_glb/OrcMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/OrcMale_FacialLowerHair00_00.png.import b/exported_glb/OrcMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..42f5141 --- /dev/null +++ b/exported_glb/OrcMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2posnhrio2b6" +path.s3tc="res://.godot/imported/OrcMale_FacialLowerHair00_00.png-0448dbc68710fa1a6a109799d897e8ca.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "cac1726f0411fe6dc814c24a683c2f06" +} + +[deps] + +source_file="res://exported_glb/OrcMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/OrcMale_FacialLowerHair00_00.png-0448dbc68710fa1a6a109799d897e8ca.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/OrcMale_ORCMALESKIN00_00.png b/exported_glb/OrcMale_ORCMALESKIN00_00.png new file mode 100644 index 0000000..d0e974d Binary files /dev/null and b/exported_glb/OrcMale_ORCMALESKIN00_00.png differ diff --git a/exported_glb/OrcMale_ORCMALESKIN00_00.png.import b/exported_glb/OrcMale_ORCMALESKIN00_00.png.import new file mode 100644 index 0000000..5118852 --- /dev/null +++ b/exported_glb/OrcMale_ORCMALESKIN00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1ov5j8qulufm" +path.s3tc="res://.godot/imported/OrcMale_ORCMALESKIN00_00.png-cfd2a4df4d07c5ecbbc32675862ae801.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "4688ddaa6d96465de103e98aca487803" +} + +[deps] + +source_file="res://exported_glb/OrcMale_ORCMALESKIN00_00.png" +dest_files=["res://.godot/imported/OrcMale_ORCMALESKIN00_00.png-cfd2a4df4d07c5ecbbc32675862ae801.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeFemale.glb b/exported_glb/ScourgeFemale.glb new file mode 100644 index 0000000..0c391b1 Binary files /dev/null and b/exported_glb/ScourgeFemale.glb differ diff --git a/exported_glb/ScourgeFemale.glb.import b/exported_glb/ScourgeFemale.glb.import new file mode 100644 index 0000000..19081f2 --- /dev/null +++ b/exported_glb/ScourgeFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://sj0o5x83728x" +path="res://.godot/imported/ScourgeFemale.glb-102cec02e62de836f9fb40943170a840.scn" + +[deps] + +source_file="res://exported_glb/ScourgeFemale.glb" +dest_files=["res://.godot/imported/ScourgeFemale.glb-102cec02e62de836f9fb40943170a840.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/ScourgeFemale_FacialLowerHair00_00.png b/exported_glb/ScourgeFemale_FacialLowerHair00_00.png new file mode 100644 index 0000000..2ca58c8 Binary files /dev/null and b/exported_glb/ScourgeFemale_FacialLowerHair00_00.png differ diff --git a/exported_glb/ScourgeFemale_FacialLowerHair00_00.png.import b/exported_glb/ScourgeFemale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..f0eef03 --- /dev/null +++ b/exported_glb/ScourgeFemale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ci0vha1ilj478" +path.s3tc="res://.godot/imported/ScourgeFemale_FacialLowerHair00_00.png-fc9e046947fbdfe542dbb41dd6d7cb28.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a19b8a5719cc6d9813ac15d4d13354b2" +} + +[deps] + +source_file="res://exported_glb/ScourgeFemale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/ScourgeFemale_FacialLowerHair00_00.png-fc9e046947fbdfe542dbb41dd6d7cb28.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeFemale_Hair00_00.png b/exported_glb/ScourgeFemale_Hair00_00.png new file mode 100644 index 0000000..fd22278 Binary files /dev/null and b/exported_glb/ScourgeFemale_Hair00_00.png differ diff --git a/exported_glb/ScourgeFemale_Hair00_00.png.import b/exported_glb/ScourgeFemale_Hair00_00.png.import new file mode 100644 index 0000000..275a246 --- /dev/null +++ b/exported_glb/ScourgeFemale_Hair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://urx85088jbda" +path.s3tc="res://.godot/imported/ScourgeFemale_Hair00_00.png-b06e1a09fa850f1ff1e0c03702cdffe6.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "81b9489dc0eb988ebc6647c726a213d6" +} + +[deps] + +source_file="res://exported_glb/ScourgeFemale_Hair00_00.png" +dest_files=["res://.godot/imported/ScourgeFemale_Hair00_00.png-b06e1a09fa850f1ff1e0c03702cdffe6.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png b/exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png new file mode 100644 index 0000000..6935b06 Binary files /dev/null and b/exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png differ diff --git a/exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png.import b/exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png.import new file mode 100644 index 0000000..595060f --- /dev/null +++ b/exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0uk4fidx1ywk" +path.s3tc="res://.godot/imported/ScourgeFemale_NIGHTELFMALEEYEGLOW.png-b62f570258cf17da3571323eab84e5fd.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "c3287f2f239ad54be9ea1f0bb5450147" +} + +[deps] + +source_file="res://exported_glb/ScourgeFemale_NIGHTELFMALEEYEGLOW.png" +dest_files=["res://.godot/imported/ScourgeFemale_NIGHTELFMALEEYEGLOW.png-b62f570258cf17da3571323eab84e5fd.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png b/exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png new file mode 100644 index 0000000..067bfe9 Binary files /dev/null and b/exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png differ diff --git a/exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png.import b/exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png.import new file mode 100644 index 0000000..6ce8aca --- /dev/null +++ b/exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://knq31pcp62br" +path.s3tc="res://.godot/imported/ScourgeFemale_ScourgeFemaleSkin00_00.png-a563b34799b7c8910a143152b3105068.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d482c468d74fb2ae11d7a1d32de0ef6c" +} + +[deps] + +source_file="res://exported_glb/ScourgeFemale_ScourgeFemaleSkin00_00.png" +dest_files=["res://.godot/imported/ScourgeFemale_ScourgeFemaleSkin00_00.png-a563b34799b7c8910a143152b3105068.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeMale.glb b/exported_glb/ScourgeMale.glb new file mode 100644 index 0000000..cb23f0f Binary files /dev/null and b/exported_glb/ScourgeMale.glb differ diff --git a/exported_glb/ScourgeMale.glb.import b/exported_glb/ScourgeMale.glb.import new file mode 100644 index 0000000..425806f --- /dev/null +++ b/exported_glb/ScourgeMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c33ndqn5u8kot" +path="res://.godot/imported/ScourgeMale.glb-1929efd35d2e27892ec4723039b0ecce.scn" + +[deps] + +source_file="res://exported_glb/ScourgeMale.glb" +dest_files=["res://.godot/imported/ScourgeMale.glb-1929efd35d2e27892ec4723039b0ecce.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/ScourgeMale_FacialLowerHair00_00.png b/exported_glb/ScourgeMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..2ca58c8 Binary files /dev/null and b/exported_glb/ScourgeMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/ScourgeMale_FacialLowerHair00_00.png.import b/exported_glb/ScourgeMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..3b94de7 --- /dev/null +++ b/exported_glb/ScourgeMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dy1751p7wspeh" +path.s3tc="res://.godot/imported/ScourgeMale_FacialLowerHair00_00.png-c250d34f69d931d6330647347454490d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a19b8a5719cc6d9813ac15d4d13354b2" +} + +[deps] + +source_file="res://exported_glb/ScourgeMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/ScourgeMale_FacialLowerHair00_00.png-c250d34f69d931d6330647347454490d.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png b/exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png new file mode 100644 index 0000000..6935b06 Binary files /dev/null and b/exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png differ diff --git a/exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png.import b/exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png.import new file mode 100644 index 0000000..3509f15 --- /dev/null +++ b/exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://be152kody5sji" +path.s3tc="res://.godot/imported/ScourgeMale_NIGHTELFMALEEYEGLOW.png-93b40023625438f54878be555598da74.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "c3287f2f239ad54be9ea1f0bb5450147" +} + +[deps] + +source_file="res://exported_glb/ScourgeMale_NIGHTELFMALEEYEGLOW.png" +dest_files=["res://.godot/imported/ScourgeMale_NIGHTELFMALEEYEGLOW.png-93b40023625438f54878be555598da74.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png b/exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png new file mode 100644 index 0000000..ae85b20 Binary files /dev/null and b/exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png differ diff --git a/exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png.import b/exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png.import new file mode 100644 index 0000000..7f8b27f --- /dev/null +++ b/exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pmexqoireis3" +path.s3tc="res://.godot/imported/ScourgeMale_ScourgeMaleSkin00_00.png-651367bc0b780c1285001b6f1151f844.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "1daf4c5cfe7e9995653182a2889267f1" +} + +[deps] + +source_file="res://exported_glb/ScourgeMale_ScourgeMaleSkin00_00.png" +dest_files=["res://.godot/imported/ScourgeMale_ScourgeMaleSkin00_00.png-651367bc0b780c1285001b6f1151f844.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TaunkaMale.glb b/exported_glb/TaunkaMale.glb new file mode 100644 index 0000000..1c73f29 Binary files /dev/null and b/exported_glb/TaunkaMale.glb differ diff --git a/exported_glb/TaunkaMale.glb.import b/exported_glb/TaunkaMale.glb.import new file mode 100644 index 0000000..4410c04 --- /dev/null +++ b/exported_glb/TaunkaMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dbqldy22gfc3n" +path="res://.godot/imported/TaunkaMale.glb-7358ff2fbcb43efe7cdcc50bafee0b9e.scn" + +[deps] + +source_file="res://exported_glb/TaunkaMale.glb" +dest_files=["res://.godot/imported/TaunkaMale.glb-7358ff2fbcb43efe7cdcc50bafee0b9e.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png b/exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png new file mode 100644 index 0000000..b1a8d47 Binary files /dev/null and b/exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png differ diff --git a/exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png.import b/exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png.import new file mode 100644 index 0000000..cd9cf3a --- /dev/null +++ b/exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxpcetbf5dbs4" +path.s3tc="res://.godot/imported/TaunkaMale_TAUNKAMALESKIN00_00.png-f3f664ec8e7655ddda2e3fa50efefa68.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "6e738b18d3b55de99eef6a39d981568e" +} + +[deps] + +source_file="res://exported_glb/TaunkaMale_TAUNKAMALESKIN00_00.png" +dest_files=["res://.godot/imported/TaunkaMale_TAUNKAMALESKIN00_00.png-f3f664ec8e7655ddda2e3fa50efefa68.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TaurenFemale.glb b/exported_glb/TaurenFemale.glb new file mode 100644 index 0000000..9752673 Binary files /dev/null and b/exported_glb/TaurenFemale.glb differ diff --git a/exported_glb/TaurenFemale.glb.import b/exported_glb/TaurenFemale.glb.import new file mode 100644 index 0000000..caf3f55 --- /dev/null +++ b/exported_glb/TaurenFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b77p8a05m8yn7" +path="res://.godot/imported/TaurenFemale.glb-586e3cf893da7fb6842e469d816af0de.scn" + +[deps] + +source_file="res://exported_glb/TaurenFemale.glb" +dest_files=["res://.godot/imported/TaurenFemale.glb-586e3cf893da7fb6842e469d816af0de.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png b/exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png new file mode 100644 index 0000000..6679cb5 Binary files /dev/null and b/exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png differ diff --git a/exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png.import b/exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png.import new file mode 100644 index 0000000..05035d4 --- /dev/null +++ b/exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bijmu1ucjmipw" +path.s3tc="res://.godot/imported/TaurenFemale_TAURENFEMALESKIN00_00.png-bb4d1a9470d26950f22d7cff05292a9e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "687cee0034263d4a27bfd66ced9a7e4b" +} + +[deps] + +source_file="res://exported_glb/TaurenFemale_TAURENFEMALESKIN00_00.png" +dest_files=["res://.godot/imported/TaurenFemale_TAURENFEMALESKIN00_00.png-bb4d1a9470d26950f22d7cff05292a9e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TaurenMale.glb b/exported_glb/TaurenMale.glb new file mode 100644 index 0000000..d80dace Binary files /dev/null and b/exported_glb/TaurenMale.glb differ diff --git a/exported_glb/TaurenMale.glb.import b/exported_glb/TaurenMale.glb.import new file mode 100644 index 0000000..0956c49 --- /dev/null +++ b/exported_glb/TaurenMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bd64egvs70l5y" +path="res://.godot/imported/TaurenMale.glb-ea4f05e3ca38bf85a2ba4d7a92392bdd.scn" + +[deps] + +source_file="res://exported_glb/TaurenMale.glb" +dest_files=["res://.godot/imported/TaurenMale.glb-ea4f05e3ca38bf85a2ba4d7a92392bdd.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/TaurenMale_TAURENMALESKIN00_00.png b/exported_glb/TaurenMale_TAURENMALESKIN00_00.png new file mode 100644 index 0000000..eea9715 Binary files /dev/null and b/exported_glb/TaurenMale_TAURENMALESKIN00_00.png differ diff --git a/exported_glb/TaurenMale_TAURENMALESKIN00_00.png.import b/exported_glb/TaurenMale_TAURENMALESKIN00_00.png.import new file mode 100644 index 0000000..b40667d --- /dev/null +++ b/exported_glb/TaurenMale_TAURENMALESKIN00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg4f7u5e8ulv6" +path.s3tc="res://.godot/imported/TaurenMale_TAURENMALESKIN00_00.png-fafb3dfffd46e8191bdd62876bc35c95.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e7076370901d5129806a951e5977ce42" +} + +[deps] + +source_file="res://exported_glb/TaurenMale_TAURENMALESKIN00_00.png" +dest_files=["res://.godot/imported/TaurenMale_TAURENMALESKIN00_00.png-fafb3dfffd46e8191bdd62876bc35c95.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TrollFemale.glb b/exported_glb/TrollFemale.glb new file mode 100644 index 0000000..511ff4f Binary files /dev/null and b/exported_glb/TrollFemale.glb differ diff --git a/exported_glb/TrollFemale.glb.import b/exported_glb/TrollFemale.glb.import new file mode 100644 index 0000000..c602ccd --- /dev/null +++ b/exported_glb/TrollFemale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://480huoyg7i8m" +path="res://.godot/imported/TrollFemale.glb-6050adffc8359f117446a1afcd08378d.scn" + +[deps] + +source_file="res://exported_glb/TrollFemale.glb" +dest_files=["res://.godot/imported/TrollFemale.glb-6050adffc8359f117446a1afcd08378d.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/TrollFemale_FacialLowerHair00_00.png b/exported_glb/TrollFemale_FacialLowerHair00_00.png new file mode 100644 index 0000000..e3a90b8 Binary files /dev/null and b/exported_glb/TrollFemale_FacialLowerHair00_00.png differ diff --git a/exported_glb/TrollFemale_FacialLowerHair00_00.png.import b/exported_glb/TrollFemale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..aae2429 --- /dev/null +++ b/exported_glb/TrollFemale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqj3tykfbsa0c" +path.s3tc="res://.godot/imported/TrollFemale_FacialLowerHair00_00.png-5a976056ce70c8c97ca8cc20f29d569f.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "ac94a9841581a852f8f7fb4fe5675d52" +} + +[deps] + +source_file="res://exported_glb/TrollFemale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/TrollFemale_FacialLowerHair00_00.png-5a976056ce70c8c97ca8cc20f29d569f.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TrollFemale_TrollFemaleSkin00_00.png b/exported_glb/TrollFemale_TrollFemaleSkin00_00.png new file mode 100644 index 0000000..873665f Binary files /dev/null and b/exported_glb/TrollFemale_TrollFemaleSkin00_00.png differ diff --git a/exported_glb/TrollFemale_TrollFemaleSkin00_00.png.import b/exported_glb/TrollFemale_TrollFemaleSkin00_00.png.import new file mode 100644 index 0000000..bb56e43 --- /dev/null +++ b/exported_glb/TrollFemale_TrollFemaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxngy24flvhih" +path.s3tc="res://.godot/imported/TrollFemale_TrollFemaleSkin00_00.png-6fc8f4e3db7052e697ddf98f0736644f.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "c43df79816c086452b2ce176c33eacc7" +} + +[deps] + +source_file="res://exported_glb/TrollFemale_TrollFemaleSkin00_00.png" +dest_files=["res://.godot/imported/TrollFemale_TrollFemaleSkin00_00.png-6fc8f4e3db7052e697ddf98f0736644f.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TrollMale.glb b/exported_glb/TrollMale.glb new file mode 100644 index 0000000..8bfac61 Binary files /dev/null and b/exported_glb/TrollMale.glb differ diff --git a/exported_glb/TrollMale.glb.import b/exported_glb/TrollMale.glb.import new file mode 100644 index 0000000..fe8c320 --- /dev/null +++ b/exported_glb/TrollMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://ccnoa3cc0s676" +path="res://.godot/imported/TrollMale.glb-f15b0cec7b79da5dec71209582b1402c.scn" + +[deps] + +source_file="res://exported_glb/TrollMale.glb" +dest_files=["res://.godot/imported/TrollMale.glb-f15b0cec7b79da5dec71209582b1402c.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/TrollMale_FacialLowerHair00_00.png b/exported_glb/TrollMale_FacialLowerHair00_00.png new file mode 100644 index 0000000..e3a90b8 Binary files /dev/null and b/exported_glb/TrollMale_FacialLowerHair00_00.png differ diff --git a/exported_glb/TrollMale_FacialLowerHair00_00.png.import b/exported_glb/TrollMale_FacialLowerHair00_00.png.import new file mode 100644 index 0000000..55e2811 --- /dev/null +++ b/exported_glb/TrollMale_FacialLowerHair00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm3774iuph6fg" +path.s3tc="res://.godot/imported/TrollMale_FacialLowerHair00_00.png-04724172b76af96087ef3e5cc5d2167c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "ac94a9841581a852f8f7fb4fe5675d52" +} + +[deps] + +source_file="res://exported_glb/TrollMale_FacialLowerHair00_00.png" +dest_files=["res://.godot/imported/TrollMale_FacialLowerHair00_00.png-04724172b76af96087ef3e5cc5d2167c.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TrollMale_TrollMaleSkin00_00.png b/exported_glb/TrollMale_TrollMaleSkin00_00.png new file mode 100644 index 0000000..34ea5d5 Binary files /dev/null and b/exported_glb/TrollMale_TrollMaleSkin00_00.png differ diff --git a/exported_glb/TrollMale_TrollMaleSkin00_00.png.import b/exported_glb/TrollMale_TrollMaleSkin00_00.png.import new file mode 100644 index 0000000..f262b41 --- /dev/null +++ b/exported_glb/TrollMale_TrollMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg2m3wxkeftvt" +path.s3tc="res://.godot/imported/TrollMale_TrollMaleSkin00_00.png-fb7ddba46b25adb343c2f79a551ce29b.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e99939c467bd5ed15bfa0465e513ff9f" +} + +[deps] + +source_file="res://exported_glb/TrollMale_TrollMaleSkin00_00.png" +dest_files=["res://.godot/imported/TrollMale_TrollMaleSkin00_00.png-fb7ddba46b25adb343c2f79a551ce29b.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TuskarrMale.glb b/exported_glb/TuskarrMale.glb new file mode 100644 index 0000000..99c95e0 Binary files /dev/null and b/exported_glb/TuskarrMale.glb differ diff --git a/exported_glb/TuskarrMale.glb.import b/exported_glb/TuskarrMale.glb.import new file mode 100644 index 0000000..b492f00 --- /dev/null +++ b/exported_glb/TuskarrMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dq3y7gp17fh5m" +path="res://.godot/imported/TuskarrMale.glb-7d1d48d051d359a7c18299ef9bc86af4.scn" + +[deps] + +source_file="res://exported_glb/TuskarrMale.glb" +dest_files=["res://.godot/imported/TuskarrMale.glb-7d1d48d051d359a7c18299ef9bc86af4.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/TuskarrMale_TUSKARRFACEHAIR.png b/exported_glb/TuskarrMale_TUSKARRFACEHAIR.png new file mode 100644 index 0000000..f3f240a Binary files /dev/null and b/exported_glb/TuskarrMale_TUSKARRFACEHAIR.png differ diff --git a/exported_glb/TuskarrMale_TUSKARRFACEHAIR.png.import b/exported_glb/TuskarrMale_TUSKARRFACEHAIR.png.import new file mode 100644 index 0000000..61baaf9 --- /dev/null +++ b/exported_glb/TuskarrMale_TUSKARRFACEHAIR.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1hks5201lw5u" +path.s3tc="res://.godot/imported/TuskarrMale_TUSKARRFACEHAIR.png-6a145ab5dfd53be419722d3125e133a2.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "59b3c175ad424daa02386df37e815ab7" +} + +[deps] + +source_file="res://exported_glb/TuskarrMale_TUSKARRFACEHAIR.png" +dest_files=["res://.godot/imported/TuskarrMale_TUSKARRFACEHAIR.png-6a145ab5dfd53be419722d3125e133a2.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png b/exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png new file mode 100644 index 0000000..1bbe40c Binary files /dev/null and b/exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png differ diff --git a/exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png.import b/exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png.import new file mode 100644 index 0000000..b25a026 --- /dev/null +++ b/exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4ejswd34h03n" +path.s3tc="res://.godot/imported/TuskarrMale_TuskarrMaleSkin00_00.png-0c6ebe74ad161b85e63cdf0f6f15535e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "2c2346400f7efbd70e9aecebb74c363d" +} + +[deps] + +source_file="res://exported_glb/TuskarrMale_TuskarrMaleSkin00_00.png" +dest_files=["res://.godot/imported/TuskarrMale_TuskarrMaleSkin00_00.png-0c6ebe74ad161b85e63cdf0f6f15535e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/VrykulMale.glb b/exported_glb/VrykulMale.glb new file mode 100644 index 0000000..85bb809 Binary files /dev/null and b/exported_glb/VrykulMale.glb differ diff --git a/exported_glb/VrykulMale.glb.import b/exported_glb/VrykulMale.glb.import new file mode 100644 index 0000000..7795477 --- /dev/null +++ b/exported_glb/VrykulMale.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b5uxfeg08gdb" +path="res://.godot/imported/VrykulMale.glb-ae3d9588abac052f2ba5d83ba6baa6c2.scn" + +[deps] + +source_file="res://exported_glb/VrykulMale.glb" +dest_files=["res://.godot/imported/VrykulMale.glb-ae3d9588abac052f2ba5d83ba6baa6c2.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png b/exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png new file mode 100644 index 0000000..59af9f7 Binary files /dev/null and b/exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png differ diff --git a/exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png.import b/exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png.import new file mode 100644 index 0000000..0421ced --- /dev/null +++ b/exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://y00kvr7erns8" +path.s3tc="res://.godot/imported/VrykulMale_FACIALLOWERHAIR00_00.png-46c78c6abddca12f7d0b597821374294.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "9d176b571076d76460f291b497c74b84" +} + +[deps] + +source_file="res://exported_glb/VrykulMale_FACIALLOWERHAIR00_00.png" +dest_files=["res://.godot/imported/VrykulMale_FACIALLOWERHAIR00_00.png-46c78c6abddca12f7d0b597821374294.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/exported_glb/VrykulMale_VRYKULMALESKIN00_00.png b/exported_glb/VrykulMale_VRYKULMALESKIN00_00.png new file mode 100644 index 0000000..80ea0db Binary files /dev/null and b/exported_glb/VrykulMale_VRYKULMALESKIN00_00.png differ diff --git a/exported_glb/VrykulMale_VRYKULMALESKIN00_00.png.import b/exported_glb/VrykulMale_VRYKULMALESKIN00_00.png.import new file mode 100644 index 0000000..e01ec10 --- /dev/null +++ b/exported_glb/VrykulMale_VRYKULMALESKIN00_00.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di387h6bccm27" +path.s3tc="res://.godot/imported/VrykulMale_VRYKULMALESKIN00_00.png-8a3d2851c48cccc4078161cb5971002e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "21b691f0a9ae1c5068cc3bdd57ae5c8f" +} + +[deps] + +source_file="res://exported_glb/VrykulMale_VRYKULMALESKIN00_00.png" +dest_files=["res://.godot/imported/VrykulMale_VRYKULMALESKIN00_00.png-8a3d2851c48cccc4078161cb5971002e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/gdextension/.gdignore b/gdextension/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/gdextension/CMakeLists.txt b/gdextension/CMakeLists.txt new file mode 100644 index 0000000..0216084 --- /dev/null +++ b/gdextension/CMakeLists.txt @@ -0,0 +1,79 @@ +cmake_minimum_required(VERSION 3.22) +project(mpq_extractor VERSION 1.0.0) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# ── Paths ────────────────────────────────────────────────────────────────────── +set(GODOT_CPP_DIR "${CMAKE_SOURCE_DIR}/../thirdparty/godot-cpp" CACHE PATH "Path to godot-cpp") +set(STORMLIB_DIR "${CMAKE_SOURCE_DIR}/../thirdparty/StormLib" CACHE PATH "Path to StormLib") + +# ── godot-cpp ────────────────────────────────────────────────────────────────── +add_subdirectory(${GODOT_CPP_DIR} godot-cpp) + +# ── StormLib ─────────────────────────────────────────────────────────────────── +# Disable StormLib's own tests/examples +set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) +set(STORMLIB_BUILD_TESTS OFF CACHE BOOL "" FORCE) +add_subdirectory(${STORMLIB_DIR} StormLib) + +# ── Extension library ────────────────────────────────────────────────────────── +file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS "src/*.cpp") + +add_library(mpq_extractor SHARED ${SOURCES}) + +target_include_directories(mpq_extractor PRIVATE + src + ${STORMLIB_DIR}/src +) + +target_link_libraries(mpq_extractor PRIVATE + godot-cpp + storm +) + +# ── Output: addons/mpq_extractor/bin/ ───────────────────────────────────────── +set(OUTPUT_DIR "${CMAKE_SOURCE_DIR}/../addons/mpq_extractor/bin") + +set_target_properties(mpq_extractor PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${OUTPUT_DIR}" + RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}" + LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}" + LIBRARY_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}" + RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}" + RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}" +) + +# Platform-specific naming (Godot convention: lib...dll/so) +if(WIN32) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(PLATFORM_SUFFIX "windows.x86_64") + else() + set(PLATFORM_SUFFIX "windows.x86_32") + endif() + set_target_properties(mpq_extractor PROPERTIES + PREFIX "" + OUTPUT_NAME "libmpq_extractor.${PLATFORM_SUFFIX}" + SUFFIX ".dll" + ) +elseif(UNIX AND NOT APPLE) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(PLATFORM_SUFFIX "linux.x86_64") + else() + set(PLATFORM_SUFFIX "linux.x86_32") + endif() + set_target_properties(mpq_extractor PROPERTIES + PREFIX "" + OUTPUT_NAME "libmpq_extractor.${PLATFORM_SUFFIX}" + SUFFIX ".so" + ) +elseif(APPLE) + set_target_properties(mpq_extractor PROPERTIES + PREFIX "" + OUTPUT_NAME "libmpq_extractor.macos.universal" + SUFFIX ".dylib" + ) +endif() + +# ── Install (optional) ───────────────────────────────────────────────────────── +message(STATUS "mpq_extractor → ${OUTPUT_DIR}") diff --git a/gdextension/build.bat b/gdextension/build.bat new file mode 100644 index 0000000..fe2aa91 --- /dev/null +++ b/gdextension/build.bat @@ -0,0 +1,78 @@ +@echo off +setlocal + +rem Build script for mpq_extractor GDExtension on Windows. +rem Requires Visual Studio 2022 with the C++ workload installed. + +set BUILD_TYPE=%1 +if "%BUILD_TYPE%"=="" set BUILD_TYPE=Release + +set SCRIPT_DIR=%~dp0 +if "%SCRIPT_DIR:~-1%"=="\" set SCRIPT_DIR=%SCRIPT_DIR:~0,-1% +set BUILD_DIR=%SCRIPT_DIR%\build + +echo [mpq_extractor] BUILD_TYPE=%BUILD_TYPE% + +rem Locate cmake.exe, first from PATH and then from common VS2022 installs. +set VS_CMAKE= +for /f "delims=" %%i in ('where cmake 2^>nul') do ( + set VS_CMAKE=%%i + goto :cmake_found +) + +set VSCMAKE_GUESS=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe +if exist "%VSCMAKE_GUESS%" ( + set VS_CMAKE=%VSCMAKE_GUESS% + goto :cmake_found +) + +set VSCMAKE_GUESS=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe +if exist "%VSCMAKE_GUESS%" ( + set VS_CMAKE=%VSCMAKE_GUESS% + goto :cmake_found +) + +set VSCMAKE_GUESS=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe +if exist "%VSCMAKE_GUESS%" ( + set VS_CMAKE=%VSCMAKE_GUESS% + goto :cmake_found +) + +echo ERROR: cmake.exe not found. +echo Install CMake or add it to PATH. +exit /b 1 + +:cmake_found +echo [mpq_extractor] cmake: %VS_CMAKE% + +rem Initialize submodules when needed. +if not exist "%SCRIPT_DIR%\..\thirdparty\godot-cpp\CMakeLists.txt" ( + echo [mpq_extractor] Initializing submodules... + cd /d "%SCRIPT_DIR%\.." + git submodule update --init --recursive + if errorlevel 1 ( + echo ERROR: git submodule update failed. + exit /b 1 + ) + cd /d "%SCRIPT_DIR%" +) + +rem Configure. +"%VS_CMAKE%" -S "%SCRIPT_DIR%" -B "%BUILD_DIR%" -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=%BUILD_TYPE% +if errorlevel 1 ( + echo ERROR: cmake configure failed. + exit /b 1 +) + +rem Build. +"%VS_CMAKE%" --build "%BUILD_DIR%" --config %BUILD_TYPE% --parallel +if errorlevel 1 ( + echo ERROR: cmake build failed. + exit /b 1 +) + +echo. +echo [mpq_extractor] Done. DLL is in: +echo %SCRIPT_DIR%\..\addons\mpq_extractor\bin\ + +endlocal diff --git a/gdextension/build.sh b/gdextension/build.sh new file mode 100644 index 0000000..2e21a31 --- /dev/null +++ b/gdextension/build.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Build script for mpq_extractor GDExtension on Linux/macOS +set -e + +BUILD_TYPE="${1:-Release}" +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +BUILD_DIR="$SCRIPT_DIR/build" + +echo "[mpq_extractor] BUILD_TYPE=$BUILD_TYPE" + +# Init submodules if needed +if [ ! -f "$SCRIPT_DIR/../thirdparty/godot-cpp/CMakeLists.txt" ]; then + echo "[mpq_extractor] Initializing submodules..." + cd "$SCRIPT_DIR/.." + git submodule update --init --recursive +fi + +# Configure +cmake -S "$SCRIPT_DIR" -B "$BUILD_DIR" \ + -DCMAKE_BUILD_TYPE="$BUILD_TYPE" + +# Build +cmake --build "$BUILD_DIR" --config "$BUILD_TYPE" --parallel "$(nproc 2>/dev/null || sysctl -n hw.logicalcpu)" + +echo "" +echo "[mpq_extractor] Done. Library is in:" +echo " $SCRIPT_DIR/../addons/mpq_extractor/bin/" diff --git a/gdextension/src/adt_loader.cpp b/gdextension/src/adt_loader.cpp new file mode 100644 index 0000000..11af3ce --- /dev/null +++ b/gdextension/src/adt_loader.cpp @@ -0,0 +1,643 @@ +#include "adt_loader.h" +#include "wow_chunk_reader.h" + +#include +#include +#include + +#include +#include +#include +#include + +using namespace godot; + +// ───────────────────────────────────────────────────────────────────────────── +// ADT constants +// ───────────────────────────────────────────────────────────────────────────── +static constexpr float TILE_SIZE = 533.33333f; // yards per map tile +static constexpr float CHUNK_SIZE = TILE_SIZE / 16.f; // 33.333 yards +static constexpr float UNIT_SIZE = CHUNK_SIZE / 8.f; // 4.166 yards (between outer verts) + +// ───────────────────────────────────────────────────────────────────────────── +// Raw structures +// ───────────────────────────────────────────────────────────────────────────── +#pragma pack(push, 1) + +struct MDDFEntry { // M2 doodad placement + uint32_t nameId; + uint32_t uniqueId; + float pos[3]; // WoW world coords + float rot[3]; // degrees + uint16_t scale; // 1024 = 1.0 + uint16_t flags; +}; + +struct MODFEntry { // WMO placement + uint32_t nameId; + uint32_t uniqueId; + float pos[3]; + float rot[3]; + float bboxMin[3]; + float bboxMax[3]; + uint16_t flags; + uint16_t doodadSet; + uint16_t nameSet; + uint16_t padding; +}; + +struct MCNKHeader { + uint32_t flags; + uint32_t indexX; + uint32_t indexY; + uint32_t nLayers; + uint32_t nDoodadRefs; + uint32_t ofsMCVT; + uint32_t ofsMCNR; + uint32_t ofsMCLY; + uint32_t ofsMCRF; + uint32_t ofsMCAL; + uint32_t sizeMCAL; + uint32_t ofsMCSH; + uint32_t sizeMCSH; + uint32_t areaId; + uint32_t nMapObjRefs; + uint32_t holes; // low 16 bits are the classic 4x4 hole mask + uint16_t doodadMapping[8]; + uint8_t doodadStencil[8]; + uint32_t ofsMCSE; + uint32_t nSoundEmitters; + uint32_t ofsMCLQ; + uint32_t sizeMCLQ; + float zpos; + float xpos; + float ypos; + uint32_t ofsMCCV; + uint32_t unused1; + uint32_t unused2; +}; + +struct MCLYEntry { + uint32_t textureId; + uint32_t flags; + uint32_t ofsMCAL; + int32_t effectId; +}; + +struct MH2OHeader { + uint32_t ofsInformation; + uint32_t nLayers; + uint32_t ofsAttributes; +}; + +struct MH2OInformation { + uint16_t liquidId; + uint16_t liquidVertexFormat; + float minHeight; + float maxHeight; + uint8_t xOffset; + uint8_t yOffset; + uint8_t width; + uint8_t height; + uint32_t ofsInfoMask; + uint32_t ofsHeightMap; +}; + +#pragma pack(pop) + +// ───────────────────────────────────────────────────────────────────────────── +// Helpers +// ───────────────────────────────────────────────────────────────────────────── +std::vector ADTLoader::read_file(const std::string &path) { + std::ifstream f(path, std::ios::binary | std::ios::ate); + if (!f) return {}; + auto sz = f.tellg(); f.seekg(0); + std::vector buf(sz); + f.read(reinterpret_cast(buf.data()), sz); + return buf; +} + +std::string ADTLoader::to_std(const String &s) { + return std::string(s.utf8().get_data()); +} + +String ADTLoader::to_godot(const std::string &s) { + return String(s.c_str()); +} + +PackedStringArray ADTLoader::parse_names_with_offsets( + const WoWChunk &names_chunk, const WoWChunk &ids_chunk) +{ + PackedStringArray result; + if (names_chunk.size == 0 || ids_chunk.size == 0) return result; + + const char *ndata = reinterpret_cast(names_chunk.data); + const uint32_t *offsets = ids_chunk.array(); + uint32_t n = ids_chunk.size / 4; + + for (uint32_t i = 0; i < n; ++i) { + uint32_t ofs = offsets[i]; + if (ofs >= names_chunk.size) { result.push_back(""); continue; } + result.push_back(String(ndata + ofs)); + } + return result; +} + +namespace { + +static constexpr uint32_t MCNK_FLAG_DO_NOT_FIX_ALPHA_MAP = 0x8000; +static constexpr uint32_t MCLY_FLAG_ALPHA_COMPRESSED = 0x200; +static constexpr size_t MCNK_CHUNK_HEADER_SIZE = 8; + +bool mcnk_subchunk_fits(uint32_t offset_from_chunk_start, size_t bytes_needed, size_t mcnk_payload_size) { + if (offset_from_chunk_start < MCNK_CHUNK_HEADER_SIZE) { + return false; + } + const size_t offset_in_payload = (size_t)offset_from_chunk_start - MCNK_CHUNK_HEADER_SIZE; + return offset_in_payload + bytes_needed <= mcnk_payload_size; +} + +bool mh2o_region_fits(uint32_t offset_in_payload, size_t bytes_needed, size_t mh2o_payload_size) { + const size_t offset = (size_t)offset_in_payload; + return offset <= mh2o_payload_size && bytes_needed <= mh2o_payload_size - offset; +} + +const uint8_t *mcnk_subchunk_ptr(const uint8_t *mcnk_payload, uint32_t offset_from_chunk_start) { + if (offset_from_chunk_start < MCNK_CHUNK_HEADER_SIZE) { + return nullptr; + } + return mcnk_payload + ((size_t)offset_from_chunk_start - MCNK_CHUNK_HEADER_SIZE); +} + +PackedByteArray decode_mcal_big_alpha(const uint8_t *src, size_t available_bytes) { + PackedByteArray out; + if (available_bytes < 64 * 64) { + return out; + } + + out.resize(64 * 64); + std::memcpy(out.ptrw(), src, 64 * 64); + return out; +} + +PackedByteArray decode_mcal_old_alpha(const uint8_t *src, size_t available_bytes, bool fix_edges) { + PackedByteArray out; + if (available_bytes < 64 * 32) { + return out; + } + + out.resize(64 * 64); + uint8_t *dst = out.ptrw(); + + // Legacy MCAL uses the old 4-bit layout. + // Noggit decodes it into a transposed linear buffer (x-major, not row-major) + // and uploads that buffer directly to the GPU. Reproducing that layout keeps + // layer placement aligned with Noggit / the original client for classic ADTs. + size_t pos = 0; + for (int x = 0; x < 64; ++x) { + for (int y = 0; y < 64; y += 2) { + if (pos >= available_bytes) { + return PackedByteArray(); + } + + const uint8_t value = src[pos++]; + const uint8_t low = value & 0x0F; + const uint8_t high = (value >> 4) & 0x0F; + + dst[x * 64 + (y + 0)] = (low << 4) | low; + dst[x * 64 + (y + 1)] = (high << 4) | high; + } + } + + if (fix_edges) { + for (int i = 0; i < 64; ++i) { + dst[i * 64 + 63] = dst[i * 64 + 62]; + dst[63 * 64 + i] = dst[62 * 64 + i]; + } + dst[63 * 64 + 63] = dst[62 * 64 + 62]; + } + + return out; +} + +PackedByteArray decode_mcal_compressed_alpha(const uint8_t *src, size_t available_bytes) { + PackedByteArray out; + out.resize(64 * 64); + uint8_t *dst = out.ptrw(); + + size_t in_pos = 0; + size_t out_pos = 0; + while (in_pos < available_bytes && out_pos < 64 * 64) { + const uint8_t header = src[in_pos++]; + const size_t count = header & 0x7F; + const bool fill = (header & 0x80) != 0; + + if (count == 0) { + continue; + } + + const size_t write_count = std::min(count, 64 * 64 - out_pos); + if (fill) { + if (in_pos >= available_bytes) { + return PackedByteArray(); + } + std::memset(dst + out_pos, src[in_pos++], write_count); + } else { + if (in_pos + count > available_bytes) { + return PackedByteArray(); + } + std::memcpy(dst + out_pos, src + in_pos, write_count); + in_pos += count; + } + + out_pos += write_count; + } + + if (out_pos != 64 * 64) { + return PackedByteArray(); + } + + return out; +} + +// ADT placement tables (MDDF/MODF) do not use the same world-space basis as +// MCNK origins. In 3.3.5a they are already expressed in tile/world space that +// matches the streamed terrain layout, with the vector stored as X, Z, Y. +inline void adt_placement_pos_to_godot(float px, float pz, float py, + float &gx, float &gy, float &gz) { + gx = px; + gy = pz; + gz = py; +} + +// MDDF/MODF Euler angles are stored in degrees using the same axis layout as +// placement positions: Y-up, so rot[1] is yaw. Map each axis straight through +// to Godot's Y-up Euler space — the position conversion is identity, so the +// rotation conversion is identity too. rot[1] gets +180° later for WMOs. +inline void adt_placement_rot_to_godot(float rx, float ry_yaw, float rz, + float &gx, float &gy, float &gz) { + constexpr float D2R = (float)(M_PI / 180.0); + gx = rx * D2R; + gy = ry_yaw * D2R; + gz = rz * D2R; +} + +} // namespace + +// ───────────────────────────────────────────────────────────────────────────── +// Main loader +// ───────────────────────────────────────────────────────────────────────────── +Dictionary ADTLoader::load_adt_from_bytes(const PackedByteArray &bytes) { + if (bytes.is_empty()) return Dictionary(); + // Wrap in a vector for the shared parse path + std::vector buf(bytes.size()); + std::memcpy(buf.data(), bytes.ptr(), bytes.size()); + // Reuse the body of load_adt by calling the internal parse + // (inline here to avoid duplicating the reader setup) + const uint8_t *raw = buf.data(); + size_t len = buf.size(); + Dictionary result; + _parse_adt(raw, len, result); + return result; +} + +Dictionary ADTLoader::load_adt(const String &path) { + Dictionary result; + auto buf = read_file(to_std(path)); + if (buf.empty()) { + UtilityFunctions::push_error("ADTLoader: cannot read ", path); + return result; + } + _parse_adt(buf.data(), buf.size(), result); + return result; +} + +void ADTLoader::_parse_adt(const uint8_t *raw, size_t len, Dictionary &result) { + ChunkReader reader(raw, len); + WoWChunk chunk; + + // ── Pass 1: collect named chunks ────────────────────────────────────────── + WoWChunk cMTEX{}, cMMDX{}, cMMID{}, cMWMO{}, cMWID{}, cMDDF{}, cMODF{}, cMH2O{}; + std::vector mcnk_chunks; + mcnk_chunks.reserve(256); + + while (reader.next(chunk)) { + if (chunk.is("MTEX")) cMTEX = chunk; + else if (chunk.is("MMDX")) cMMDX = chunk; + else if (chunk.is("MMID")) cMMID = chunk; + else if (chunk.is("MWMO")) cMWMO = chunk; + else if (chunk.is("MWID")) cMWID = chunk; + else if (chunk.is("MDDF")) cMDDF = chunk; + else if (chunk.is("MODF")) cMODF = chunk; + else if (chunk.is("MH2O")) cMH2O = chunk; + else if (chunk.is("MCNK")) mcnk_chunks.push_back(chunk); + } + + // ── Textures ────────────────────────────────────────────────────────────── + PackedStringArray textures; + if (cMTEX.size > 0) { + const char *p = reinterpret_cast(cMTEX.data); + const char *end = p + cMTEX.size; + while (p < end) { + textures.push_back(String(p)); + p += strlen(p) + 1; + } + } + result["textures"] = textures; + + // ── M2 / WMO names ──────────────────────────────────────────────────────── + result["m2_names"] = (cMMDX.size && cMMID.size) + ? parse_names_with_offsets(cMMDX, cMMID) + : PackedStringArray(); + result["wmo_names"] = (cMWMO.size && cMWID.size) + ? parse_names_with_offsets(cMWMO, cMWID) + : PackedStringArray(); + + // ── M2 placements ───────────────────────────────────────────────────────── + Array m2_placements; + if (cMDDF.size > 0) { + uint32_t n = cMDDF.count_of(sizeof(MDDFEntry)); + auto *dd = cMDDF.array(); + for (uint32_t i = 0; i < n; ++i) { + float gx, gy, gz, rx, ry, rz; + adt_placement_pos_to_godot(dd[i].pos[0], dd[i].pos[1], dd[i].pos[2], gx, gy, gz); + adt_placement_rot_to_godot(dd[i].rot[0], dd[i].rot[1], dd[i].rot[2], rx, ry, rz); + + Dictionary p; + p["name_id"] = (int)dd[i].nameId; + p["pos"] = Vector3(gx, gy, gz); + p["rot"] = Vector3(rx, ry, rz); + p["scale"] = dd[i].scale / 1024.f; + m2_placements.push_back(p); + } + } + result["m2_placements"] = m2_placements; + + // ── WMO placements ──────────────────────────────────────────────────────── + Array wmo_placements; + if (cMODF.size > 0) { + uint32_t n = cMODF.count_of(sizeof(MODFEntry)); + auto *od = cMODF.array(); + for (uint32_t i = 0; i < n; ++i) { + float gx, gy, gz, rx, ry, rz; + adt_placement_pos_to_godot(od[i].pos[0], od[i].pos[1], od[i].pos[2], gx, gy, gz); + adt_placement_rot_to_godot(od[i].rot[0], od[i].rot[1], od[i].rot[2], rx, ry, rz); + + Dictionary p; + p["name_id"] = (int)od[i].nameId; + p["pos"] = Vector3(gx, gy, gz); + p["rot"] = Vector3(rx, ry, rz); + p["scale"] = 1.0f; + wmo_placements.push_back(p); + } + } + result["wmo_placements"] = wmo_placements; + + // ── MCNK chunks ─────────────────────────────────────────────────────────── + Array chunks_array; + chunks_array.resize((int)mcnk_chunks.size()); + + for (int ci = 0; ci < (int)mcnk_chunks.size(); ++ci) { + const WoWChunk &mc = mcnk_chunks[ci]; + if (mc.size < sizeof(MCNKHeader)) { chunks_array[ci] = Dictionary(); continue; } + + const MCNKHeader &hdr = *reinterpret_cast(mc.data); + const uint8_t *base = mc.data; + + // World origin of this chunk (MCNK stores z/x/y, convert to Godot) + float ox, oy, oz; + wow_to_godot(hdr.zpos, hdr.xpos, hdr.ypos, ox, oy, oz); + + // ── Heights (MCVT) ─────────────────────────────────────────────── + PackedFloat32Array heights; + PackedVector3Array normals_arr; + + if (hdr.ofsMCVT && mcnk_subchunk_fits(hdr.ofsMCVT, 8 + 145 * 4, mc.size)) { + // MCVT sub-chunk: 8-byte header + 145 floats + const uint8_t *p = mcnk_subchunk_ptr(base, hdr.ofsMCVT); + // skip sub-chunk magic(4) + size(4) + const float *hdata = reinterpret_cast(p + 8); + heights.resize(145); + for (int j = 0; j < 145; ++j) + heights[j] = hdata[j]; + } + + if (hdr.ofsMCNR && mcnk_subchunk_fits(hdr.ofsMCNR, 8 + 145 * 3, mc.size)) { + const uint8_t *p = mcnk_subchunk_ptr(base, hdr.ofsMCNR) + 8; // skip sub-chunk header + normals_arr.resize(145); + for (int j = 0; j < 145; ++j) { + // MCNR stores signed bytes in WoW-axis order X, Z, Y. + // Terrain positions are converted with wow_to_godot(wx, wy, wz), + // so normals must be transformed with the same basis change: + // Godot = (-WoW.Y, WoW.Z, -WoW.X). + float wx = (int8_t)p[j * 3 + 0] / 127.f; + float wz = (int8_t)p[j * 3 + 1] / 127.f; + float wy = (int8_t)p[j * 3 + 2] / 127.f; + normals_arr[j] = Vector3(-wy, wz, -wx).normalized(); + } + } + + // ── Texture layers (MCLY) ──────────────────────────────────────── + Array layers; + if (hdr.ofsMCLY && hdr.nLayers > 0 && + mcnk_subchunk_fits(hdr.ofsMCLY, 8 + hdr.nLayers * sizeof(MCLYEntry), mc.size)) + { + const MCLYEntry *ly = reinterpret_cast( + mcnk_subchunk_ptr(base, hdr.ofsMCLY) + 8); + for (uint32_t li = 0; li < hdr.nLayers; ++li) { + Dictionary ld; + ld["texture_id"] = (int)ly[li].textureId; + ld["flags"] = (int)ly[li].flags; + ld["effect_id"] = (int)ly[li].effectId; + ld["alpha_offset"] = (int)ly[li].ofsMCAL; + layers.push_back(ld); + } + } + + Array alpha_maps; + if (hdr.ofsMCAL && hdr.sizeMCAL >= 8 && + mcnk_subchunk_fits(hdr.ofsMCAL, hdr.sizeMCAL, mc.size) && + layers.size() > 1) + { + const uint8_t *mcal_data = mcnk_subchunk_ptr(base, hdr.ofsMCAL) + 8; + const size_t mcal_size = hdr.sizeMCAL - 8; + const bool fix_old_edges = (hdr.flags & MCNK_FLAG_DO_NOT_FIX_ALPHA_MAP) == 0; + + bool has_compressed_alpha = false; + for (int li = 1; li < layers.size(); ++li) { + Dictionary layer = layers[li]; + if (((int)layer.get("flags", 0) & (int)MCLY_FLAG_ALPHA_COMPRESSED) != 0) { + has_compressed_alpha = true; + break; + } + } + + const int alpha_layer_count = layers.size() - 1; + const bool use_big_alpha = has_compressed_alpha || + mcal_size >= (size_t)(alpha_layer_count * 4096); + + for (int li = 1; li < layers.size(); ++li) { + Dictionary layer = layers[li]; + const int flags = (int)layer.get("flags", 0); + const size_t start = (size_t)(int)layer.get("alpha_offset", 0); + size_t end = mcal_size; + PackedByteArray alpha_data; + + for (int next_li = li + 1; next_li < layers.size(); ++next_li) { + Dictionary next_layer = layers[next_li]; + const size_t next_start = (size_t)(int)next_layer.get("alpha_offset", 0); + if (next_start > start) { + end = std::min(end, next_start); + break; + } + } + + if (start >= mcal_size || end <= start) { + alpha_maps.push_back(PackedByteArray()); + continue; + } + + const size_t available = end - start; + const uint8_t *src = mcal_data + start; + + if ((flags & (int)MCLY_FLAG_ALPHA_COMPRESSED) != 0) { + alpha_data = decode_mcal_compressed_alpha(src, available); + } else if (use_big_alpha) { + alpha_data = decode_mcal_big_alpha(src, available); + } else { + alpha_data = decode_mcal_old_alpha(src, available, fix_old_edges); + } + + alpha_maps.push_back(alpha_data); + } + } + + // ── Build chunk dictionary ─────────────────────────────────────── + Array liquids; + if (cMH2O.size >= 256 * sizeof(MH2OHeader)) { + const size_t header_index = (size_t)hdr.indexY * 16 + hdr.indexX; + const size_t header_offset = header_index * sizeof(MH2OHeader); + + if (header_index < 256 && header_offset + sizeof(MH2OHeader) <= cMH2O.size) { + const MH2OHeader &water_header = + *reinterpret_cast(cMH2O.data + header_offset); + + if (water_header.nLayers > 0 && + water_header.ofsInformation > 0 && + mh2o_region_fits( + water_header.ofsInformation, + (size_t)water_header.nLayers * sizeof(MH2OInformation), + cMH2O.size)) + { + for (uint32_t li = 0; li < water_header.nLayers; ++li) { + const uint32_t info_offset = + water_header.ofsInformation + li * sizeof(MH2OInformation); + const MH2OInformation &info = + *reinterpret_cast(cMH2O.data + info_offset); + + if (info.width == 0 || info.height == 0 || + info.xOffset > 8 || info.yOffset > 8 || + info.xOffset + info.width > 8 || + info.yOffset + info.height > 8) + { + continue; + } + + PackedByteArray liquid_mask; + liquid_mask.resize(8 * 8); + uint8_t *mask_ptr = liquid_mask.ptrw(); + std::memset(mask_ptr, 0, 8 * 8); + + uint64_t info_mask = 0xFFFFFFFFFFFFFFFFull; + const size_t mask_bits = (size_t)info.width * info.height; + const size_t mask_bytes = (mask_bits + 7) / 8; + if (info.ofsInfoMask > 0) { + if (!mh2o_region_fits(info.ofsInfoMask, mask_bytes, cMH2O.size)) { + continue; + } + info_mask = 0; + std::memcpy(&info_mask, cMH2O.data + info.ofsInfoMask, mask_bytes); + } + + size_t bit_index = 0; + for (int z = 0; z < info.height; ++z) { + for (int x = 0; x < info.width; ++x, ++bit_index) { + if (((info_mask >> bit_index) & 1ull) == 0) { + continue; + } + mask_ptr[(info.yOffset + z) * 8 + (info.xOffset + x)] = 255; + } + } + + PackedFloat32Array liquid_heights; + liquid_heights.resize(9 * 9); + float *height_ptr = liquid_heights.ptrw(); + for (int i = 0; i < 9 * 9; ++i) { + height_ptr[i] = info.minHeight; + } + + const bool has_height_values = + info.ofsHeightMap > 0 && + (info.liquidVertexFormat == 0 || + info.liquidVertexFormat == 1 || + info.liquidVertexFormat == 3); + + if (has_height_values) { + const size_t vertex_count = (size_t)(info.width + 1) * (info.height + 1); + const size_t height_bytes = vertex_count * sizeof(float); + if (!mh2o_region_fits(info.ofsHeightMap, height_bytes, cMH2O.size)) { + continue; + } + + const float *src_heights = + reinterpret_cast(cMH2O.data + info.ofsHeightMap); + for (int z = 0; z <= info.height; ++z) { + for (int x = 0; x <= info.width; ++x) { + const size_t src_index = (size_t)z * (info.width + 1) + x; + const size_t dst_index = + (size_t)(info.yOffset + z) * 9 + (info.xOffset + x); + height_ptr[dst_index] = + std::clamp(src_heights[src_index], info.minHeight, info.maxHeight); + } + } + } + + Dictionary liquid; + liquid["liquid_id"] = (int)info.liquidId; + liquid["vertex_format"] = (int)info.liquidVertexFormat; + liquid["min_height"] = info.minHeight; + liquid["max_height"] = info.maxHeight; + liquid["x_offset"] = (int)info.xOffset; + liquid["y_offset"] = (int)info.yOffset; + liquid["width"] = (int)info.width; + liquid["height"] = (int)info.height; + liquid["mask"] = liquid_mask; + liquid["heights"] = liquid_heights; + liquids.push_back(liquid); + } + } + } + } + + Dictionary cd; + cd["index_x"] = (int)hdr.indexX; + cd["index_y"] = (int)hdr.indexY; + cd["origin"] = Vector3(ox, oy, oz); + cd["heights"] = heights; + cd["normals"] = normals_arr; + cd["holes"] = (int)(hdr.holes & 0xFFFF); + cd["layers"] = layers; + cd["alpha_maps"] = alpha_maps; + cd["liquids"] = liquids; + + chunks_array[ci] = cd; + } + + result["chunks"] = chunks_array; +} + +// ───────────────────────────────────────────────────────────────────────────── +void ADTLoader::_bind_methods() { + ClassDB::bind_method(D_METHOD("load_adt", "path"), &ADTLoader::load_adt); + ClassDB::bind_method(D_METHOD("load_adt_from_bytes", "bytes"), &ADTLoader::load_adt_from_bytes); +} diff --git a/gdextension/src/adt_loader.h b/gdextension/src/adt_loader.h new file mode 100644 index 0000000..d3b9d89 --- /dev/null +++ b/gdextension/src/adt_loader.h @@ -0,0 +1,89 @@ +#pragma once +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wow_chunk_reader.h" + +namespace godot { + +// ───────────────────────────────────────────────────────────────────────────── +// ADTLoader +// +// Loads WoW 3.3.5a ADT terrain tiles. +// +// Usage (GDScript): +// var adt = ADTLoader.new() +// var data = adt.load_adt("C:/wow/Data/World/Maps/Azeroth/Azeroth_32_48.adt") +// +// Return Dictionary: +// { +// "textures": PackedStringArray, # all texture filenames in MTEX +// "m2_names": PackedStringArray, # M2 model filenames +// "wmo_names": PackedStringArray, # WMO filenames +// "m2_placements": Array[Dictionary], +// "wmo_placements": Array[Dictionary], +// "chunks": Array[Dictionary], # 16×16 = 256 entries, row-major +// } +// +// Placement Dictionary (both M2 and WMO): +// { +// "name_id": int, # index into m2_names / wmo_names +// "pos": Vector3, # Godot world coords +// "rot": Vector3, # Euler angles (radians) +// "scale": float, # M2 only (WMO always 1.0) +// } +// +// Chunk Dictionary: +// { +// "index_x": int, # 0-15 +// "index_y": int, # 0-15 +// "origin": Vector3, # Godot world position of chunk origin +// "heights": PackedFloat32Array, # 145 values (9×9 outer + 8×8 inner grid) +// "normals": PackedVector3Array, # 145 normals +// "holes": int, # hole bit mask (low 16 bits) +// "layers": Array[Dictionary], # texture layer definitions +// "alpha_maps": Array[PackedByteArray], # one per layer (layer 0 has none) +// } +// +// Layer Dictionary: +// { +// "texture_id": int, +// "flags": int, +// "effect_id": int, +// "alpha_offset": int, +// } +// ───────────────────────────────────────────────────────────────────────────── +class ADTLoader : public RefCounted { + GDCLASS(ADTLoader, RefCounted) + +public: + Dictionary load_adt(const String &path); + Dictionary load_adt_from_bytes(const PackedByteArray &bytes); + +protected: + static void _bind_methods(); + +private: + static std::vector read_file(const std::string &path); + static std::string to_std(const String &s); + static String to_godot(const std::string &s); + + // Shared parse implementation + static void _parse_adt(const uint8_t *raw, size_t len, Dictionary &result); + + // Parse names from MMDX/MWMO (null-separated) using MMID/MWID offset tables + static PackedStringArray parse_names_with_offsets( + const WoWChunk &names_chunk, const WoWChunk &ids_chunk); +}; + +} // namespace godot diff --git a/gdextension/src/blp_loader.cpp b/gdextension/src/blp_loader.cpp new file mode 100644 index 0000000..41d160d --- /dev/null +++ b/gdextension/src/blp_loader.cpp @@ -0,0 +1,248 @@ +#include "blp_loader.h" + +#include +#include + +#include +#include +#include + +using namespace godot; + +// ───────────────────────────────────────────────────────────────────────────── +// BLP2 binary structures +// ───────────────────────────────────────────────────────────────────────────── +#pragma pack(push, 1) +struct BLP2Header { + char magic[4]; // "BLP2" + uint32_t type; // 0=JPEG 1=palette 2=DXT + uint8_t encoding; // 1=raw(palette) 2=DXT 3=raw(BGRA) + uint8_t alphaDepth; // 0,1,4,8 + uint8_t alphaEncoding; // 0=DXT1 1=DXT3 7=DXT5 + uint8_t hasMipmaps; + uint32_t width; + uint32_t height; + uint32_t mipmapOffset[16]; + uint32_t mipmapSize[16]; +}; +#pragma pack(pop) + +// ───────────────────────────────────────────────────────────────────────────── +// DXT colour block helpers +// ───────────────────────────────────────────────────────────────────────────── +static void unpack_565(uint16_t c, uint8_t &r, uint8_t &g, uint8_t &b) { + r = (c >> 11) & 0x1F; r = (r << 3) | (r >> 2); + g = (c >> 5) & 0x3F; g = (g << 2) | (g >> 4); + b = c & 0x1F; b = (b << 3) | (b >> 2); +} + +// Decode a 4×4 DXT1 colour block into dst (RGBA row-major, y=block_y*4+row) +static void decode_dxt1_block(const uint8_t *src, + uint8_t *dst, int pitch, bool has_alpha) +{ + uint16_t c0 = src[0] | (src[1] << 8); + uint16_t c1 = src[2] | (src[3] << 8); + uint8_t r[4], g[4], b[4], a[4]; + unpack_565(c0, r[0], g[0], b[0]); a[0] = 255; + unpack_565(c1, r[1], g[1], b[1]); a[1] = 255; + + if (c0 > c1 || !has_alpha) { + r[2] = (2*r[0]+r[1])/3; g[2] = (2*g[0]+g[1])/3; b[2] = (2*b[0]+b[1])/3; a[2] = 255; + r[3] = (r[0]+2*r[1])/3; g[3] = (g[0]+2*g[1])/3; b[3] = (b[0]+2*b[1])/3; a[3] = 255; + } else { + r[2] = (r[0]+r[1])/2; g[2] = (g[0]+g[1])/2; b[2] = (b[0]+b[1])/2; a[2] = 255; + r[3] = 0; g[3] = 0; b[3] = 0; a[3] = 0; + } + + uint32_t indices = src[4] | (src[5]<<8) | (src[6]<<16) | (src[7]<<24); + for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) { + int i = (indices >> (2*(row*4+col))) & 3; + uint8_t *p = dst + row * pitch + col * 4; + p[0] = r[i]; p[1] = g[i]; p[2] = b[i]; p[3] = a[i]; + } + } +} + +// DXT3 explicit alpha block (16 bytes: 8 alpha + 8 colour) +static void decode_dxt3_block(const uint8_t *src, uint8_t *dst, int pitch) { + uint8_t alpha[16]; + for (int i = 0; i < 8; ++i) { + alpha[i*2] = (src[i] & 0x0F) * 17; + alpha[i*2+1] = (src[i] >> 4) * 17; + } + decode_dxt1_block(src + 8, dst, pitch, false); + for (int row = 0; row < 4; ++row) + for (int col = 0; col < 4; ++col) + dst[row * pitch + col * 4 + 3] = alpha[row*4+col]; +} + +// DXT5 interpolated alpha block (16 bytes: 8 alpha + 8 colour) +static void decode_dxt5_block(const uint8_t *src, uint8_t *dst, int pitch) { + uint8_t a0 = src[0], a1 = src[1]; + uint8_t atable[8]; + atable[0] = a0; atable[1] = a1; + if (a0 > a1) { + for (int i = 2; i < 8; ++i) + atable[i] = ((8-i)*a0 + (i-1)*a1) / 7; + } else { + for (int i = 2; i < 6; ++i) + atable[i] = ((6-i)*a0 + (i-1)*a1) / 5; + atable[6] = 0; atable[7] = 255; + } + uint64_t abits = 0; + for (int i = 0; i < 6; ++i) abits |= ((uint64_t)src[2+i]) << (i*8); + + decode_dxt1_block(src + 8, dst, pitch, false); + for (int row = 0; row < 4; ++row) + for (int col = 0; col < 4; ++col) { + int bit = row*4+col; + int idx = (abits >> (bit*3)) & 7; + dst[row*pitch + col*4 + 3] = atable[idx]; + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Full mip-level decoders +// ───────────────────────────────────────────────────────────────────────────── +void BLPLoader::decode_dxt1(const uint8_t *src, int w, int h, + std::vector &dst, bool has_alpha) +{ + int bw = (w + 3) / 4, bh = (h + 3) / 4; + dst.assign(w * h * 4, 0); + for (int by = 0; by < bh; ++by) + for (int bx = 0; bx < bw; ++bx, src += 8) { + uint8_t *d = dst.data() + (by*4*w + bx*4) * 4; + decode_dxt1_block(src, d, w*4, has_alpha); + } +} + +void BLPLoader::decode_dxt3(const uint8_t *src, int w, int h, + std::vector &dst) +{ + int bw = (w+3)/4, bh = (h+3)/4; + dst.assign(w * h * 4, 0); + for (int by = 0; by < bh; ++by) + for (int bx = 0; bx < bw; ++bx, src += 16) { + uint8_t *d = dst.data() + (by*4*w + bx*4)*4; + decode_dxt3_block(src, d, w*4); + } +} + +void BLPLoader::decode_dxt5(const uint8_t *src, int w, int h, + std::vector &dst) +{ + int bw = (w+3)/4, bh = (h+3)/4; + dst.assign(w * h * 4, 0); + for (int by = 0; by < bh; ++by) + for (int bx = 0; bx < bw; ++bx, src += 16) { + uint8_t *d = dst.data() + (by*4*w + bx*4)*4; + decode_dxt5_block(src, d, w*4); + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Main parser +// ───────────────────────────────────────────────────────────────────────────── +Ref BLPLoader::parse(const uint8_t *data, size_t len) { + if (len < sizeof(BLP2Header)) return Ref(); + + const BLP2Header &hdr = *reinterpret_cast(data); + if (std::memcmp(hdr.magic, "BLP2", 4) != 0) { + // Try BLP1 magic + if (std::memcmp(hdr.magic, "BLP1", 4) != 0) return Ref(); + } + + uint32_t w = hdr.width, h = hdr.height; + if (w == 0 || h == 0) return Ref(); + + // Use mip level 0 only + uint32_t mip_ofs = hdr.mipmapOffset[0]; + uint32_t mip_size = hdr.mipmapSize[0]; + if (mip_ofs + mip_size > len) return Ref(); + const uint8_t *mip = data + mip_ofs; + + std::vector rgba; + Image::Format fmt = Image::FORMAT_RGBA8; + + if (hdr.encoding == 2) { + // DXT compressed + bool has_alpha = hdr.alphaDepth > 0; + switch (hdr.alphaEncoding) { + case 0: decode_dxt1(mip, w, h, rgba, has_alpha); break; + case 1: decode_dxt3(mip, w, h, rgba); break; + case 7: decode_dxt5(mip, w, h, rgba); break; + default: decode_dxt1(mip, w, h, rgba, has_alpha); break; + } + + } else if (hdr.encoding == 1) { + // Palettized: 256×4 BGRA palette at offset 0xA4, then index data + const size_t palette_ofs = sizeof(BLP2Header); + if (palette_ofs + 256*4 > len) return Ref(); + const uint8_t *palette = data + palette_ofs; + + rgba.resize(w * h * 4); + for (uint32_t i = 0; i < w * h && i < mip_size; ++i) { + uint8_t idx = mip[i]; + rgba[i*4+0] = palette[idx*4+2]; // R (from BGR) + rgba[i*4+1] = palette[idx*4+1]; // G + rgba[i*4+2] = palette[idx*4+0]; // B + rgba[i*4+3] = (hdr.alphaDepth == 0) ? 255 : mip[w*h + i]; + } + + } else if (hdr.encoding == 3) { + // Uncompressed BGRA + rgba.resize(w * h * 4); + for (uint32_t i = 0; i < w * h * 4 && i + 3 < mip_size; i += 4) { + rgba[i+0] = mip[i+2]; // R + rgba[i+1] = mip[i+1]; // G + rgba[i+2] = mip[i+0]; // B + rgba[i+3] = mip[i+3]; // A + } + } else { + return Ref(); + } + + if (rgba.empty()) return Ref(); + + PackedByteArray pba; + pba.resize((int)rgba.size()); + std::memcpy(pba.ptrw(), rgba.data(), rgba.size()); + + return Image::create_from_data(w, h, false, fmt, pba); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Public API +// ───────────────────────────────────────────────────────────────────────────── +Ref BLPLoader::load_image(const String &path) { + auto buf = read_file(to_std(path)); + if (buf.empty()) { + UtilityFunctions::push_error("BLPLoader: cannot read ", path); + return Ref(); + } + return parse(buf.data(), buf.size()); +} + +Ref BLPLoader::load_image_from_bytes(const PackedByteArray &bytes) { + if (bytes.is_empty()) return Ref(); + return parse(bytes.ptr(), bytes.size()); +} + +std::vector BLPLoader::read_file(const std::string &path) { + std::ifstream f(path, std::ios::binary | std::ios::ate); + if (!f) return {}; + auto sz = f.tellg(); f.seekg(0); + std::vector buf(sz); + f.read(reinterpret_cast(buf.data()), sz); + return buf; +} + +std::string BLPLoader::to_std(const String &s) { + return std::string(s.utf8().get_data()); +} + +void BLPLoader::_bind_methods() { + ClassDB::bind_method(D_METHOD("load_image", "path"), &BLPLoader::load_image); + ClassDB::bind_method(D_METHOD("load_image_from_bytes", "bytes"), &BLPLoader::load_image_from_bytes); +} diff --git a/gdextension/src/blp_loader.h b/gdextension/src/blp_loader.h new file mode 100644 index 0000000..ad9eac6 --- /dev/null +++ b/gdextension/src/blp_loader.h @@ -0,0 +1,54 @@ +#pragma once +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace godot { + +// ───────────────────────────────────────────────────────────────────────────── +// BLPLoader — WoW BLP2 texture → Godot Image +// +// Supports all formats used by WoW 3.3.5a: +// • DXT1 / DXT3 / DXT5 (encoding=2, most common) +// • Palettized BGRA (encoding=1) +// • Uncompressed BGRA (encoding=3, rare) +// +// Usage (GDScript): +// var img = BLPLoader.new().load_image("C:/path/texture.blp") +// var tex = ImageTexture.create_from_image(img) +// ───────────────────────────────────────────────────────────────────────────── +class BLPLoader : public RefCounted { + GDCLASS(BLPLoader, RefCounted) + +public: + // Load from absolute filesystem path + Ref load_image(const String &path); + + // Load from raw bytes (e.g. from MPQManager::read_file) + Ref load_image_from_bytes(const PackedByteArray &bytes); + +protected: + static void _bind_methods(); + +private: + static Ref parse(const uint8_t *data, size_t len); + + // DXT decoders (output RGBA8) + static void decode_dxt1(const uint8_t *src, int w, int h, + std::vector &dst, bool has_alpha); + static void decode_dxt3(const uint8_t *src, int w, int h, + std::vector &dst); + static void decode_dxt5(const uint8_t *src, int w, int h, + std::vector &dst); + + static std::vector read_file(const std::string &path); + static std::string to_std(const String &s); +}; + +} // namespace godot diff --git a/gdextension/src/m2_loader.cpp b/gdextension/src/m2_loader.cpp new file mode 100644 index 0000000..be58600 --- /dev/null +++ b/gdextension/src/m2_loader.cpp @@ -0,0 +1,339 @@ +#include "m2_loader.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +using namespace godot; + +// ───────────────────────────────────────────────────────────────────────────── +// Raw structures (WoW 3.3.5a, little-endian, packed) +// ───────────────────────────────────────────────────────────────────────────── +#pragma pack(push, 1) + +// M2 file header — starts at offset 0, no chunk wrapper in 3.3.5a +struct M2Header { + uint32_t magic; // 'MD20' LE = 0x3032444D + uint32_t version; + uint32_t nName; + uint32_t ofsName; + uint32_t flags; + uint32_t nGlobalLoops; + uint32_t ofsGlobalLoops; + uint32_t nAnimations; + uint32_t ofsAnimations; + uint32_t nAnimLookup; + uint32_t ofsAnimLookup; + uint32_t nBones; + uint32_t ofsBones; + uint32_t nKeyBoneLookup; // unused for static render + uint32_t ofsKeyBoneLookup; + uint32_t nVertices; // offset 60 + uint32_t ofsVertices; // offset 64 + uint32_t nViews; // offset 68 — number of .skin files + uint32_t nColors; + uint32_t ofsColors; + uint32_t nTextures; // offset 80 + uint32_t ofsTextures; // offset 84 + uint32_t nTexWeights; // unused + uint32_t ofsTexWeights; + uint32_t nTexTransforms; // unused + uint32_t ofsTexTransforms; + uint32_t nReplTexLookup; // unused + uint32_t ofsReplTexLookup; + uint32_t nMaterials; // offset 112 + uint32_t ofsMaterials; // offset 116 + uint32_t nBoneCombos; // unused + uint32_t ofsBoneCombos; + uint32_t nTextureCombos; // offset 128 + uint32_t ofsTextureCombos; // offset 132 +}; +// Total: 34 × 4 = 136 bytes + +struct M2Vertex { + float pos[3]; + uint8_t boneWeights[4]; + uint8_t boneIndices[4]; + float normal[3]; + float texCoords[2]; + float texCoords2[2]; +}; +// Total: 48 bytes + +struct M2Texture { + uint32_t type; // 0 = hardcoded filename + uint32_t flags; + uint32_t nFilename; + uint32_t ofsFilename; +}; + +struct M2Material { + uint16_t flags; + uint16_t blendingMode; // 0=opaque 1=alpha_key 2=alpha_blend +}; + +struct SkinHeader { + uint32_t magic; // 'SKIN' LE = 0x4E494B53 + uint32_t nIndices; + uint32_t ofsIndices; + uint32_t nTriangles; + uint32_t ofsTriangles; + uint32_t nProperties; + uint32_t ofsProperties; + uint32_t nSubMeshes; + uint32_t ofsSubMeshes; + uint32_t nTextureUnits; + uint32_t ofsTextureUnits; + uint32_t LOD; +}; +// Total: 48 bytes + +struct SkinSubMesh { + uint16_t submeshID; + uint16_t level; + uint16_t vertexStart; + uint16_t vertexCount; + uint16_t triangleStart; + uint16_t triangleCount; + uint16_t boneCount; + uint16_t boneStart; + uint16_t boneInfluences; + uint16_t centerBoneIndex; + float centerPosition[3]; + float sortCenterPosition[3]; + float sortRadius; +}; +// Total: 10×2 + 7×4 = 48 bytes + +struct SkinTextureUnit { + uint8_t flags; + uint8_t priority; + uint16_t shaderID; + uint16_t skinSectionIndex; + uint16_t flags2; + uint16_t colorIndex; + uint16_t materialIndex; + uint16_t materialLayer; + uint16_t textureCount; + uint16_t textureComboIndex; + uint16_t textureCoordComboIndex; + uint16_t textureWeightComboIndex; + uint16_t textureTransformComboIndex; +}; +// Total: 2 + 11×2 = 24 bytes + +#pragma pack(pop) + +static constexpr uint32_t MAGIC_MD20 = 0x3032444D; // 'MD20' LE +static constexpr uint32_t MAGIC_SKIN = 0x4E494B53; // 'SKIN' LE + +// ───────────────────────────────────────────────────────────────────────────── +// Helpers +// ───────────────────────────────────────────────────────────────────────────── +std::vector M2Loader::read_file(const std::string &path) { + std::ifstream f(path, std::ios::binary | std::ios::ate); + if (!f) return {}; + auto sz = f.tellg(); + f.seekg(0); + std::vector buf(sz); + f.read(reinterpret_cast(buf.data()), sz); + return buf; +} + +std::string M2Loader::to_std(const String &s) { + return std::string(s.utf8().get_data()); +} + +String M2Loader::to_godot(const std::string &s) { + return String(s.c_str()); +} + +// Safe bounds-checked array accessor into a buffer +template +static const T *safe_array(const std::vector &buf, uint32_t ofs, uint32_t count) { + if (count == 0) return nullptr; + uint64_t end = (uint64_t)ofs + (uint64_t)count * sizeof(T); + if (end > buf.size()) return nullptr; + return reinterpret_cast(buf.data() + ofs); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Core parser +// ───────────────────────────────────────────────────────────────────────────── +Dictionary M2Loader::parse_m2(const std::vector &buf, const std::string &path) { + if (buf.size() < sizeof(M2Header)) return Dictionary(); + + const auto &hdr = *reinterpret_cast(buf.data()); + if (hdr.magic != MAGIC_MD20) { + UtilityFunctions::push_error("M2Loader: unexpected magic, expected MD20"); + return Dictionary(); + } + + // ── Vertices ───────────────────────────────────────────────────────────── + PackedVector3Array vertices, normals; + PackedVector2Array uvs; + + const auto *verts = safe_array(buf, hdr.ofsVertices, hdr.nVertices); + if (verts && hdr.nVertices > 0) { + vertices.resize(hdr.nVertices); + normals.resize(hdr.nVertices); + uvs.resize(hdr.nVertices); + for (uint32_t i = 0; i < hdr.nVertices; ++i) { + const auto &v = verts[i]; + // WoW model space (X right, Y forward, Z up) → Godot (X right, Y up, Z back) + vertices[i] = Vector3( v.pos[0], v.pos[2], -v.pos[1]); + normals[i] = Vector3( v.normal[0], v.normal[2], -v.normal[1]); + // WoW V origin is top-left; Godot expects bottom-left → flip V + uvs[i] = Vector2(v.texCoords[0], 1.0f - v.texCoords[1]); + } + } + + // ── Textures ───────────────────────────────────────────────────────────── + PackedStringArray textures; + const auto *tex_arr = safe_array(buf, hdr.ofsTextures, hdr.nTextures); + if (tex_arr) { + for (uint32_t i = 0; i < hdr.nTextures; ++i) { + const auto &t = tex_arr[i]; + std::string fname; + if (t.type == 0 && t.nFilename > 0) { + uint64_t end = (uint64_t)t.ofsFilename + t.nFilename; + if (end <= buf.size()) { + fname = std::string( + reinterpret_cast(buf.data() + t.ofsFilename), + t.nFilename); + // trim null terminators + while (!fname.empty() && fname.back() == '\0') + fname.pop_back(); + for (auto &c : fname) if (c == '\\') c = '/'; + } + } + textures.push_back(to_godot(fname)); + } + } + + // ── Materials ──────────────────────────────────────────────────────────── + Array materials; + const auto *mat_arr = safe_array(buf, hdr.ofsMaterials, hdr.nMaterials); + if (mat_arr) { + for (uint32_t i = 0; i < hdr.nMaterials; ++i) { + Dictionary m; + m["flags"] = (int)mat_arr[i].flags; + m["blend_mode"] = (int)mat_arr[i].blendingMode; + materials.push_back(m); + } + } + + // ── Texture combos ─────────────────────────────────────────────────────── + PackedInt32Array texture_combos; + const auto *tc_arr = safe_array(buf, hdr.ofsTextureCombos, hdr.nTextureCombos); + if (tc_arr) { + for (uint32_t i = 0; i < hdr.nTextureCombos; ++i) + texture_combos.push_back((int)tc_arr[i]); + } + + // ── Skin file ──────────────────────────────────────────────────────────── + // Find 00.skin in the same directory as the .m2 + std::string skin_path = path; + { + auto dot = skin_path.rfind('.'); + if (dot != std::string::npos) + skin_path = skin_path.substr(0, dot); + skin_path += "00.skin"; + } + + auto skin_buf = read_file(skin_path); + + PackedInt32Array indices; + Array batches; + + if (skin_buf.size() >= sizeof(SkinHeader)) { + const auto &skin = *reinterpret_cast(skin_buf.data()); + + if (skin.magic == MAGIC_SKIN) { + const uint16_t *skin_idx = safe_array(skin_buf, skin.ofsIndices, skin.nIndices); + const uint16_t *skin_tri = safe_array(skin_buf, skin.ofsTriangles, skin.nTriangles); + const SkinSubMesh *sms = safe_array (skin_buf, skin.ofsSubMeshes, skin.nSubMeshes); + const SkinTextureUnit *tu = safe_array(skin_buf, skin.ofsTextureUnits, skin.nTextureUnits); + + if (skin_idx && skin_tri && sms && tu) { + for (uint32_t u = 0; u < skin.nTextureUnits; ++u) { + uint32_t sm_idx = tu[u].skinSectionIndex; + if (sm_idx >= skin.nSubMeshes) continue; + const SkinSubMesh &sm = sms[sm_idx]; + + // triangleStart may be extended by level in large models + uint32_t tri_start = (uint32_t)sm.triangleStart + ((uint32_t)sm.level << 16); + uint32_t tri_count = sm.triangleCount; + if (tri_start + tri_count > skin.nTriangles) continue; + + int idx_start = (int)indices.size(); + + // Each group of 3 triangle-array entries forms one triangle. + // Remap: final_vertex = skin_idx[skin_tri[t]] + // Reverse winding (WoW CW → Godot CCW). + for (uint32_t t = 0; t + 2 < tri_count; t += 3) { + uint16_t a = skin_tri[tri_start + t]; + uint16_t b = skin_tri[tri_start + t + 1]; + uint16_t c = skin_tri[tri_start + t + 2]; + if (a >= skin.nIndices || b >= skin.nIndices || c >= skin.nIndices) + continue; + indices.push_back((int)skin_idx[a]); + indices.push_back((int)skin_idx[c]); // reversed + indices.push_back((int)skin_idx[b]); + } + + int idx_count = (int)indices.size() - idx_start; + if (idx_count <= 0) continue; + + Dictionary batch; + batch["index_start"] = idx_start; + batch["index_count"] = idx_count; + batch["material_id"] = (int)tu[u].materialIndex; + batch["texture_combo_index"] = (int)tu[u].textureComboIndex; + batches.push_back(batch); + } + } + } else { + UtilityFunctions::push_warning("M2Loader: skin file missing or invalid: ", + to_godot(skin_path)); + } + } else { + UtilityFunctions::push_warning("M2Loader: skin file not found: ", + to_godot(skin_path)); + } + + Dictionary result; + result["textures"] = textures; + result["materials"] = materials; + result["texture_combos"] = texture_combos; + result["vertices"] = vertices; + result["normals"] = normals; + result["uvs"] = uvs; + result["indices"] = indices; + result["batches"] = batches; + return result; +} + +// ───────────────────────────────────────────────────────────────────────────── +// Public API +// ───────────────────────────────────────────────────────────────────────────── +Dictionary M2Loader::load_m2(const String &path) { + std::string spath = to_std(path); + auto buf = read_file(spath); + if (buf.empty()) { + UtilityFunctions::push_error("M2Loader: cannot read ", path); + return Dictionary(); + } + return parse_m2(buf, spath); +} + +void M2Loader::_bind_methods() { + ClassDB::bind_method(D_METHOD("load_m2", "path"), &M2Loader::load_m2); +} diff --git a/gdextension/src/m2_loader.h b/gdextension/src/m2_loader.h new file mode 100644 index 0000000..941581a --- /dev/null +++ b/gdextension/src/m2_loader.h @@ -0,0 +1,61 @@ +#pragma once +#include +#include +#include + +#include +#include +#include + +#include "wow_chunk_reader.h" + +namespace godot { + +// ───────────────────────────────────────────────────────────────────────────── +// M2Loader +// +// Loads WoW 3.3.5a .m2 model files (raw format, starts with MD20 magic). +// Parses the first skin file (00.skin) for render geometry. +// +// Usage (GDScript): +// var loader = M2Loader.new() +// var data = loader.load_m2("C:/wow/extracted/World/Doodad/Gnome/Gnome.m2") +// +// Return Dictionary: +// { +// "textures": PackedStringArray, # .blp texture paths (may be empty for replaceable) +// "materials": Array[Dictionary], # [{flags, blend_mode}] +// "texture_combos": PackedInt32Array, # textureCombos[i] = index into textures +// "vertices": PackedVector3Array, # Godot-space positions +// "normals": PackedVector3Array, +// "uvs": PackedVector2Array, +// "indices": PackedInt32Array, # flat triangle list into vertex array +// "batches": Array[Dictionary], # render batches +// } +// +// Each batch Dictionary: +// { +// "index_start": int, # offset into indices array +// "index_count": int, # number of indices for this batch +// "material_id": int, # index into materials +// "texture_combo_index": int, # index into texture_combos → texture +// } +// ───────────────────────────────────────────────────────────────────────────── +class M2Loader : public RefCounted { + GDCLASS(M2Loader, RefCounted) + +public: + Dictionary load_m2(const String &path); + +protected: + static void _bind_methods(); + +private: + Dictionary parse_m2(const std::vector &buf, const std::string &path); + + static std::vector read_file(const std::string &path); + static std::string to_std(const String &s); + static String to_godot(const std::string &s); +}; + +} // namespace godot diff --git a/gdextension/src/mpq_manager.cpp b/gdextension/src/mpq_manager.cpp new file mode 100644 index 0000000..7b0482b --- /dev/null +++ b/gdextension/src/mpq_manager.cpp @@ -0,0 +1,324 @@ +#include "mpq_manager.h" + +#include +#include +#include + +#include +#include +#include +#include + +namespace fs = std::filesystem; +using namespace godot; + +// ───────────────────────────────────────────────────────────────────────────── +// WoW 3.3.5a (build 12340) MPQ load order +// Source: Blizzard client, TrinityCore/MaNGOS toolchain +// +// Priority value = open order (higher = wins). +// Base archives 1–7, locale archives 10–20 (locale always wins over base). +// ───────────────────────────────────────────────────────────────────────────── +std::vector> +MPQManager::build_archive_list(const std::string &data_dir, const std::string &locale) +{ + // {relative path from data_dir, priority} + std::vector> list = { + // ── Base archives (lowest priority) ─────────────────────────────── + { "common.mpq", 1 }, + { "common-2.mpq", 2 }, + { "expansion.mpq", 3 }, + { "lichking.mpq", 4 }, + { "patch.mpq", 5 }, + { "patch-2.mpq", 6 }, + { "patch-3.mpq", 7 }, + // ── Locale archives (higher priority) ───────────────────────────── + { locale + "/locale-" + locale + ".mpq", 10 }, + { locale + "/speech-" + locale + ".mpq", 11 }, + { locale + "/expansion-locale-" + locale + ".mpq", 12 }, + { locale + "/lichking-locale-" + locale + ".mpq", 13 }, + { locale + "/patch-" + locale + ".mpq", 14 }, + { locale + "/patch-" + locale + "-2.mpq", 15 }, + { locale + "/patch-" + locale + "-3.mpq", 16 }, + }; + + // Prepend data_dir to each entry + for (auto &entry : list) { + entry.first = data_dir + "/" + entry.first; + } + return list; +} + +// ───────────────────────────────────────────────────────────────────────────── +MPQManager::MPQManager() = default; + +MPQManager::~MPQManager() { + close(); +} + +// ───────────────────────────────────────────────────────────────────────────── +int MPQManager::open_client(const String &base_path, const String &locale) +{ + close(); + + std::string data_dir = to_std(base_path) + "/Data"; + std::string loc = to_std(locale); + + auto archive_list = build_archive_list(data_dir, loc); + + int opened = 0; + for (auto &[path, priority] : archive_list) { + if (!fs::exists(path)) { + // Not every archive is required to be present + continue; + } + if (open_archive(String(path.c_str()), priority)) { + ++opened; + } + } + + if (opened == 0) { + UtilityFunctions::push_error("MPQManager: no archives found in ", base_path); + } else { + UtilityFunctions::print("MPQManager: opened ", opened, " archives from ", base_path); + } + return opened; +} + +// ───────────────────────────────────────────────────────────────────────────── +bool MPQManager::open_archive(const String &path, int priority) +{ + std::string spath = to_std(path); + HANDLE hMpq = nullptr; + + if (!SFileOpenArchive(spath.c_str(), 0, MPQ_OPEN_READ_ONLY | STREAM_FLAG_READ_ONLY, &hMpq)) { + UtilityFunctions::push_warning("MPQManager: failed to open ", path, + " (error ", (int)GetLastError(), ")"); + return false; + } + + MPQArchiveEntry entry; + entry.handle = hMpq; + entry.path = path; + entry.priority = priority; + + // Insert sorted ascending by priority so index 0 = lowest + auto it = std::lower_bound( + m_archives.begin(), m_archives.end(), priority, + [](const MPQArchiveEntry &e, int p){ return e.priority < p; }); + m_archives.insert(it, entry); + + return true; +} + +// ───────────────────────────────────────────────────────────────────────────── +void MPQManager::close() +{ + for (auto &entry : m_archives) { + if (entry.handle) { + SFileCloseArchive(entry.handle); + entry.handle = nullptr; + } + } + m_archives.clear(); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Internal: search from highest priority (back of vector) to lowest +HANDLE MPQManager::find_file(const std::string &internal_path) const +{ + for (auto it = m_archives.rbegin(); it != m_archives.rend(); ++it) { + HANDLE hFile = nullptr; + if (SFileOpenFileEx(it->handle, internal_path.c_str(), 0, &hFile)) { + SFileCloseFile(hFile); + return it->handle; + } + } + return nullptr; +} + +// ───────────────────────────────────────────────────────────────────────────── +bool MPQManager::has_file(const String &internal_path) const +{ + return find_file(to_std(internal_path)) != nullptr; +} + +// ───────────────────────────────────────────────────────────────────────────── +PackedByteArray MPQManager::read_file(const String &internal_path) const +{ + std::string spath = to_std(internal_path); + HANDLE hArchive = find_file(spath); + if (!hArchive) { + UtilityFunctions::push_error("MPQManager: file not found: ", internal_path); + return PackedByteArray(); + } + + HANDLE hFile = nullptr; + if (!SFileOpenFileEx(hArchive, spath.c_str(), 0, &hFile)) { + return PackedByteArray(); + } + + DWORD file_size = SFileGetFileSize(hFile, nullptr); + if (file_size == SFILE_INVALID_SIZE || file_size == 0) { + SFileCloseFile(hFile); + return PackedByteArray(); + } + + PackedByteArray result; + result.resize((int)file_size); + uint8_t *ptr = result.ptrw(); + + DWORD read = 0; + bool ok = SFileReadFile(hFile, ptr, file_size, &read, nullptr); + SFileCloseFile(hFile); + + if (!ok || read != file_size) { + UtilityFunctions::push_error("MPQManager: read error on ", internal_path); + return PackedByteArray(); + } + return result; +} + +// ───────────────────────────────────────────────────────────────────────────── +bool MPQManager::extract_file(const String &internal_path, const String &output_path) const +{ + std::string spath = to_std(internal_path); + std::string outpath = to_std(output_path); + + HANDLE hArchive = find_file(spath); + if (!hArchive) { + UtilityFunctions::push_error("MPQManager: file not found: ", internal_path); + return false; + } + + // Ensure parent directory exists + fs::path out(outpath); + fs::create_directories(out.parent_path()); + + return SFileExtractFile(hArchive, spath.c_str(), outpath.c_str(), 0); +} + +// ───────────────────────────────────────────────────────────────────────────── +int MPQManager::extract_files(const String &filter, const String &output_dir) const +{ + if (m_archives.empty()) return 0; + + std::string out_dir = to_std(output_dir); + std::string sfilter = to_std(filter); + + // Collect unique file names from all archives (highest priority wins) + // We iterate archives highest→lowest and track already-seen paths. + std::unordered_set seen; + int count = 0; + + for (auto it = m_archives.rbegin(); it != m_archives.rend(); ++it) { + SFILE_FIND_DATA fd; + HANDLE hFind = SFileFindFirstFile(it->handle, sfilter.c_str(), &fd, nullptr); + if (!hFind) continue; + + do { + std::string fname(fd.cFileName); + if (seen.count(fname)) continue; // already extracted from higher-priority archive + seen.insert(fname); + + // Build output path mirroring internal path + fs::path out_path = fs::path(out_dir) / fs::path(fname); + fs::create_directories(out_path.parent_path()); + + if (SFileExtractFile(it->handle, fname.c_str(), out_path.string().c_str(), 0)) { + ++count; + } else { + UtilityFunctions::push_warning("MPQManager: failed to extract ", String(fname.c_str())); + } + } while (SFileFindNextFile(hFind, &fd)); + + SFileFindClose(hFind); + } + + UtilityFunctions::print("MPQManager: extracted ", count, " files → ", output_dir); + return count; +} + +// ───────────────────────────────────────────────────────────────────────────── +PackedStringArray MPQManager::list_files(const String &filter) const +{ + std::string sfilter = to_std(filter.is_empty() ? String("*") : filter); + std::unordered_set seen; + PackedStringArray result; + + // Iterate highest priority first so duplicates are attributed to winner + for (auto it = m_archives.rbegin(); it != m_archives.rend(); ++it) { + SFILE_FIND_DATA fd; + HANDLE hFind = SFileFindFirstFile(it->handle, sfilter.c_str(), &fd, nullptr); + if (!hFind) continue; + + do { + std::string fname(fd.cFileName); + if (!seen.count(fname)) { + seen.insert(fname); + result.push_back(String(fname.c_str())); + } + } while (SFileFindNextFile(hFind, &fd)); + + SFileFindClose(hFind); + } + + return result; +} + +// ───────────────────────────────────────────────────────────────────────────── +int MPQManager::get_archive_count() const { + return (int)m_archives.size(); +} + +Array MPQManager::get_archive_info() const { + Array out; + for (auto it = m_archives.rbegin(); it != m_archives.rend(); ++it) { + DWORD file_count = 0; + SFileGetFileInfo(it->handle, SFileMpqNumberOfFiles, &file_count, sizeof(file_count), nullptr); + + Dictionary d; + d["path"] = it->path; + d["priority"] = it->priority; + d["file_count"] = (int)file_count; + out.push_back(d); + } + return out; +} + +// ───────────────────────────────────────────────────────────────────────────── +// Helpers +// ───────────────────────────────────────────────────────────────────────────── +String MPQManager::to_godot(const std::string &s) { + return String(s.c_str()); +} + +std::string MPQManager::to_std(const String &s) { + return std::string(s.utf8().get_data()); +} + +// ───────────────────────────────────────────────────────────────────────────── +// GDScript bindings +// ───────────────────────────────────────────────────────────────────────────── +void MPQManager::_bind_methods() { + ClassDB::bind_method(D_METHOD("open_client", "base_path", "locale"), + &MPQManager::open_client); + ClassDB::bind_method(D_METHOD("open_archive", "path", "priority"), + &MPQManager::open_archive); + ClassDB::bind_method(D_METHOD("close"), + &MPQManager::close); + ClassDB::bind_method(D_METHOD("has_file", "internal_path"), + &MPQManager::has_file); + ClassDB::bind_method(D_METHOD("read_file", "internal_path"), + &MPQManager::read_file); + ClassDB::bind_method(D_METHOD("extract_file", "internal_path", "output_path"), + &MPQManager::extract_file); + ClassDB::bind_method(D_METHOD("extract_files", "filter", "output_dir"), + &MPQManager::extract_files); + ClassDB::bind_method(D_METHOD("list_files", "filter"), + &MPQManager::list_files, DEFVAL("*")); + ClassDB::bind_method(D_METHOD("get_archive_count"), + &MPQManager::get_archive_count); + ClassDB::bind_method(D_METHOD("get_archive_info"), + &MPQManager::get_archive_info); +} diff --git a/gdextension/src/mpq_manager.h b/gdextension/src/mpq_manager.h new file mode 100644 index 0000000..447d2e7 --- /dev/null +++ b/gdextension/src/mpq_manager.h @@ -0,0 +1,102 @@ +#pragma once + +#include +#include +#include +#include +#include + +#include + +#include +#include + +namespace godot { + +// ───────────────────────────────────────────────────────────────────────────── +// MPQArchiveEntry – one open archive with its priority +// ───────────────────────────────────────────────────────────────────────────── +struct MPQArchiveEntry { + HANDLE handle = nullptr; + String path; + int priority = 0; // higher = wins +}; + +// ───────────────────────────────────────────────────────────────────────────── +// MPQManager – GDScript-accessible class +// Usage: +// var mgr = MPQManager.new() +// mgr.open_client("res://sources", "ruRU") +// var data = mgr.read_file("Interface\\FrameXML\\GlobalStrings.lua") +// mgr.extract_all("DBFilesClient", "res://extracted/dbc") +// mgr.close() +// ───────────────────────────────────────────────────────────────────────────── +class MPQManager : public RefCounted { + GDCLASS(MPQManager, RefCounted) + +public: + MPQManager(); + ~MPQManager(); + + // Open all MPQ archives from a WoW 3.3.5a client folder. + // base_path – folder containing Data/ + // locale – e.g. "ruRU", "enUS", "deDE" + // Returns number of successfully opened archives (0 on total failure). + int open_client(const String &base_path, const String &locale); + + // Open a single MPQ archive explicitly (for custom workflows). + bool open_archive(const String &path, int priority); + + // Close all open archives. + void close(); + + // Check whether a file exists in any archive. + bool has_file(const String &internal_path) const; + + // Read a file from the highest-priority archive that contains it. + PackedByteArray read_file(const String &internal_path) const; + + // Extract a single file to output_path (creates parent dirs). + bool extract_file(const String &internal_path, const String &output_path) const; + + // Extract all files matching filter (e.g. "DBFilesClient\\*.dbc") + // into output_dir, preserving sub-paths. + // Returns number of extracted files. + int extract_files(const String &filter, const String &output_dir) const; + + // List all files in all archives matching filter. Deduplicates by name, + // keeping only the entry from the highest-priority archive. + PackedStringArray list_files(const String &filter = "*") const; + + // Info: how many archives are open + int get_archive_count() const; + + // Info: array of Dictionaries { "path": ..., "priority": ..., "file_count": ... } + Array get_archive_info() const; + +protected: + static void _bind_methods(); + +private: + std::vector m_archives; // sorted ascending by priority + + // Returns the handle of the highest-priority archive that contains the file. + // Returns nullptr if not found. + HANDLE find_file(const std::string &internal_path) const; + + // Helper: std::string → Godot String + static String to_godot(const std::string &s); + // Helper: Godot String → std::string (ANSI/UTF8 path) + static std::string to_std(const String &s); + + // Ensure output directory exists (creates recursively) + static bool ensure_dir(const std::string &path); + + // WoW 3.3.5a archive load order (lowest→highest priority) + // locale archives always have higher priority than base archives + static std::vector> build_archive_list( + const std::string &data_dir, + const std::string &locale); +}; + +} // namespace godot diff --git a/gdextension/src/register_types.cpp b/gdextension/src/register_types.cpp new file mode 100644 index 0000000..47acadc --- /dev/null +++ b/gdextension/src/register_types.cpp @@ -0,0 +1,40 @@ +#include "register_types.h" +#include "mpq_manager.h" +#include "wmo_loader.h" +#include "adt_loader.h" +#include "blp_loader.h" +#include "m2_loader.h" + +#include +#include + +using namespace godot; + +void initialize_mpq_extractor_module(ModuleInitializationLevel p_level) { + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) return; + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); +} + +void uninitialize_mpq_extractor_module(ModuleInitializationLevel p_level) { + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) return; +} + +extern "C" { + +GDExtensionBool GDE_EXPORT mpq_extractor_init( + GDExtensionInterfaceGetProcAddress p_get_proc_address, + const GDExtensionClassLibraryPtr p_library, + GDExtensionInitialization *r_initialization) +{ + godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization); + init_obj.register_initializer(initialize_mpq_extractor_module); + init_obj.register_terminator(uninitialize_mpq_extractor_module); + init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE); + return init_obj.init(); +} + +} // extern "C" diff --git a/gdextension/src/register_types.h b/gdextension/src/register_types.h new file mode 100644 index 0000000..2045477 --- /dev/null +++ b/gdextension/src/register_types.h @@ -0,0 +1,5 @@ +#pragma once +#include + +void initialize_mpq_extractor_module(godot::ModuleInitializationLevel p_level); +void uninitialize_mpq_extractor_module(godot::ModuleInitializationLevel p_level); diff --git a/gdextension/src/wmo_loader.cpp b/gdextension/src/wmo_loader.cpp new file mode 100644 index 0000000..2283150 --- /dev/null +++ b/gdextension/src/wmo_loader.cpp @@ -0,0 +1,355 @@ +#include "wmo_loader.h" +#include "wow_chunk_reader.h" + +#include +#include +#include + +#include +#include +#include +#include + +namespace fs = std::filesystem; +using namespace godot; + +// ───────────────────────────────────────────────────────────────────────────── +// Raw WMO binary structures (packed, no padding) +// ───────────────────────────────────────────────────────────────────────────── +#pragma pack(push, 1) + +struct MOHDChunk { // Root header + uint32_t nMaterials; + uint32_t nGroups; + uint32_t nPortals; + uint32_t nLights; + uint32_t nModels; + uint32_t nDoodads; + uint32_t nSets; + uint32_t ambColor; + uint32_t areaID; + float bboxMin[3]; + float bboxMax[3]; + uint16_t flags; + uint16_t numLiquids; +}; + +struct MOMTEntry { // Material + uint32_t flags; + uint32_t shader; + uint32_t blendMode; + uint32_t texUnit0; // index into MOTX + uint32_t sidnColor; + uint32_t frameSidnColor; + uint32_t texUnit1; + uint32_t diffColor; + uint32_t groundType; + uint32_t texUnit2; + uint32_t color2; + uint32_t flags2; + uint32_t runTimeData[4]; +}; + +struct MOGPHeader { // Group header (inside MOGP chunk) + uint32_t groupNameOfs; + uint32_t descNameOfs; + uint32_t flags; + float bboxMin[3]; + float bboxMax[3]; + uint16_t portalStart; + uint16_t portalCount; + uint16_t transBatchCount; + uint16_t intBatchCount; + uint16_t extBatchCount; + uint16_t padding; + uint8_t fogIds[4]; + uint32_t liquidType; + uint32_t groupID; + uint32_t unk32a; + uint32_t unk32b; +}; + +struct MOBAEntry { // Render batch + int16_t bboxMin[3]; + int16_t bboxMax[3]; + uint32_t indexStart; + uint16_t indexCount; + uint16_t vertexStart; + uint16_t vertexEnd; + uint8_t flags; + uint8_t materialId; +}; + +struct MOVTEntry { float x, y, z; }; +struct MONREntry { float x, y, z; }; +struct MOTVEntry { float u, v; }; +struct MOCVEntry { uint8_t b, g, r, a; }; + +#pragma pack(pop) + +// ───────────────────────────────────────────────────────────────────────────── +// Helpers +// ───────────────────────────────────────────────────────────────────────────── +std::vector WMOLoader::read_file(const std::string &path) { + std::ifstream f(path, std::ios::binary | std::ios::ate); + if (!f) return {}; + auto sz = f.tellg(); + f.seekg(0); + std::vector buf(sz); + f.read(reinterpret_cast(buf.data()), sz); + return buf; +} + +std::string WMOLoader::to_std(const String &s) { + return std::string(s.utf8().get_data()); +} + +String WMOLoader::to_godot(const std::string &s) { + return String(s.c_str()); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Root parser +// ───────────────────────────────────────────────────────────────────────────── +Dictionary WMOLoader::parse_root(const std::vector &buf) { + Dictionary root; + if (buf.empty()) return root; + + ChunkReader reader(buf.data(), buf.size()); + WoWChunk chunk; + + PackedStringArray textures; + Array materials; + std::vector tex_strings; + + while (reader.next(chunk)) { + + if (chunk.is("MOTX")) { + // Null-separated texture paths + auto names = parse_string_block(chunk); + tex_strings = names; + for (auto &n : names) + textures.push_back(to_godot(n)); + + } else if (chunk.is("MOMT")) { + uint32_t n = chunk.count_of(sizeof(MOMTEntry)); + auto *mt = chunk.array(); + for (uint32_t i = 0; i < n; ++i) { + Dictionary mat; + mat["flags"] = (int)mt[i].flags; + mat["shader"] = (int)mt[i].shader; + mat["blend_mode"] = (int)mt[i].blendMode; + // texUnit offsets → find index in tex_strings + auto tex_idx = [&](uint32_t ofs) -> int { + uint32_t cur = 0; + for (int j = 0; j < (int)tex_strings.size(); ++j) { + if (cur == ofs) return j; + cur += (uint32_t)tex_strings[j].size() + 1; + } + return -1; + }; + mat["texture0"] = tex_idx(mt[i].texUnit0); + mat["texture1"] = tex_idx(mt[i].texUnit1); + materials.push_back(mat); + } + } + } + + root["textures"] = textures; + root["materials"] = materials; + return root; +} + +// ───────────────────────────────────────────────────────────────────────────── +// Group parser +// ───────────────────────────────────────────────────────────────────────────── +Dictionary WMOLoader::parse_group(const std::vector &buf) { + Dictionary group; + if (buf.empty()) return group; + + ChunkReader top(buf.data(), buf.size()); + WoWChunk chunk; + + // Skip MVER, find MOGP + while (top.next(chunk)) { + if (!chunk.is("MOGP")) continue; + + // MOGP data = MOGPHeader + sub-chunks + if (chunk.size < sizeof(MOGPHeader)) break; + // const auto &hdr = *reinterpret_cast(chunk.data); + + // Sub-chunks start after the header + size_t sub_ofs = sizeof(MOGPHeader); + ChunkReader sub(chunk.data + sub_ofs, chunk.size - sub_ofs); + WoWChunk sc; + + PackedVector3Array vertices, normals; + PackedVector2Array uvs; + PackedColorArray colors; + PackedInt32Array indices; + Array batches; + + while (sub.next(sc)) { + if (sc.is("MOVT")) { + uint32_t n = sc.count_of(sizeof(MOVTEntry)); + auto *v = sc.array(); + vertices.resize(n); + for (uint32_t i = 0; i < n; ++i) { + float gx, gy, gz; + // WMO local coords → negate Z for Godot Y-up + gx = -v[i].y; + gy = v[i].z; + gz = -v[i].x; + vertices[i] = Vector3(gx, gy, gz); + } + } else if (sc.is("MONR")) { + uint32_t n = sc.count_of(sizeof(MONREntry)); + auto *v = sc.array(); + normals.resize(n); + for (uint32_t i = 0; i < n; ++i) + normals[i] = Vector3(-v[i].y, v[i].z, -v[i].x); + + } else if (sc.is("MOTV")) { + uint32_t n = sc.count_of(sizeof(MOTVEntry)); + auto *v = sc.array(); + uvs.resize(n); + for (uint32_t i = 0; i < n; ++i) + uvs[i] = Vector2(v[i].u, v[i].v); + + } else if (sc.is("MOVI")) { + uint32_t n = sc.size / 2; + auto *idx = sc.array(); + indices.resize(n); + for (uint32_t i = 0; i < n; ++i) + indices[i] = (int)idx[i]; + + } else if (sc.is("MOCV")) { + uint32_t n = sc.count_of(sizeof(MOCVEntry)); + auto *v = sc.array(); + colors.resize(n); + for (uint32_t i = 0; i < n; ++i) + colors[i] = Color(v[i].r / 255.f, v[i].g / 255.f, + v[i].b / 255.f, v[i].a / 255.f); + + } else if (sc.is("MOBA")) { + uint32_t n = sc.count_of(sizeof(MOBAEntry)); + auto *ba = sc.array(); + for (uint32_t i = 0; i < n; ++i) { + Dictionary b; + b["index_start"] = (int)ba[i].indexStart; + b["index_count"] = (int)ba[i].indexCount; + b["vertex_start"] = (int)ba[i].vertexStart; + b["vertex_count"] = (int)ba[i].vertexEnd - (int)ba[i].vertexStart + 1; + b["material_id"] = (int)ba[i].materialId; + b["flags"] = (int)ba[i].flags; + batches.push_back(b); + } + } + } + + group["vertices"] = vertices; + group["normals"] = normals; + group["uvs"] = uvs; + group["colors"] = colors; + group["indices"] = indices; + group["batches"] = batches; + break; // only one MOGP per group file + } + + return group; +} + +// ───────────────────────────────────────────────────────────────────────────── +// Public API +// ───────────────────────────────────────────────────────────────────────────── +Dictionary WMOLoader::load_root(const String &path) { + auto buf = read_file(to_std(path)); + if (buf.empty()) { + UtilityFunctions::push_error("WMOLoader: cannot read ", path); + return Dictionary(); + } + return parse_root(buf); +} + +Dictionary WMOLoader::load_group(const String &path) { + auto buf = read_file(to_std(path)); + if (buf.empty()) { + UtilityFunctions::push_error("WMOLoader: cannot read ", path); + return Dictionary(); + } + return parse_group(buf); +} + +Dictionary WMOLoader::load_wmo(const String &path) { + std::string spath = to_std(path); + auto root_buf = read_file(spath); + if (root_buf.empty()) { + UtilityFunctions::push_error("WMOLoader: cannot read root ", path); + return Dictionary(); + } + + Dictionary result = parse_root(root_buf); + + // Count groups from MOHD + uint32_t nGroups = 0; + { + ChunkReader r(root_buf.data(), root_buf.size()); + WoWChunk c; + if (r.find("MOHD", c) && c.size >= sizeof(MOHDChunk)) + nGroups = c.as().nGroups; + } + + // Build base path (strip .wmo extension) + std::string base = spath; + if (base.size() > 4 && base.substr(base.size() - 4) == ".wmo") + base = base.substr(0, base.size() - 4); + + Array groups; + for (uint32_t i = 0; i < nGroups; ++i) { + char suffix[16]; + std::snprintf(suffix, sizeof(suffix), "_%03u.wmo", i); + std::string gpath = base + suffix; + + auto gbuf = read_file(gpath); + if (gbuf.empty()) { + UtilityFunctions::push_warning("WMOLoader: group not found: ", + to_godot(gpath)); + groups.push_back(Dictionary()); + continue; + } + groups.push_back(parse_group(gbuf)); + } + + result["groups"] = groups; + UtilityFunctions::print("WMOLoader: loaded ", (int)nGroups, " groups from ", path); + return result; +} + +Dictionary WMOLoader::load_wmo_from_bytes(const PackedByteArray &root_bytes, + const Array &group_bytes_array) +{ + std::vector rbuf(root_bytes.size()); + std::memcpy(rbuf.data(), root_bytes.ptr(), root_bytes.size()); + + Dictionary result = parse_root(rbuf); + Array groups; + + for (int i = 0; i < group_bytes_array.size(); ++i) { + PackedByteArray gb = group_bytes_array[i]; + if (gb.is_empty()) { groups.push_back(Dictionary()); continue; } + std::vector gbuf(gb.size()); + std::memcpy(gbuf.data(), gb.ptr(), gb.size()); + groups.push_back(parse_group(gbuf)); + } + + result["groups"] = groups; + return result; +} + +// ───────────────────────────────────────────────────────────────────────────── +void WMOLoader::_bind_methods() { + ClassDB::bind_method(D_METHOD("load_wmo", "path"), &WMOLoader::load_wmo); + ClassDB::bind_method(D_METHOD("load_root", "path"), &WMOLoader::load_root); + ClassDB::bind_method(D_METHOD("load_group", "path"), &WMOLoader::load_group); + ClassDB::bind_method(D_METHOD("load_wmo_from_bytes", "root_bytes", "group_bytes_array"), &WMOLoader::load_wmo_from_bytes); +} diff --git a/gdextension/src/wmo_loader.h b/gdextension/src/wmo_loader.h new file mode 100644 index 0000000..89dd901 --- /dev/null +++ b/gdextension/src/wmo_loader.h @@ -0,0 +1,95 @@ +#pragma once +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wow_chunk_reader.h" + +namespace godot { + +// ───────────────────────────────────────────────────────────────────────────── +// WMOLoader +// +// Loads WoW 3.3.5a WMO files (root + group files). +// +// Usage (GDScript): +// var wmo = WMOLoader.new() +// var data = wmo.load_wmo("C:/wow/Data/World/wmo/Azeroth/Buildings/StormwindHouse/StormwindHouse.wmo") +// +// Return value is a Dictionary: +// { +// "textures": PackedStringArray, # texture filenames referenced by materials +// "materials": Array[Dictionary], # material definitions +// "groups": Array[Dictionary], # one entry per group file +// } +// +// Each group Dictionary: +// { +// "name": String, +// "vertices": PackedVector3Array, +// "normals": PackedVector3Array, +// "uvs": PackedVector2Array, +// "colors": PackedColorArray, # may be empty +// "indices": PackedInt32Array, +// "batches": Array[Dictionary], # render batches +// } +// +// Each batch Dictionary: +// { +// "index_start": int, +// "index_count": int, +// "vertex_start": int, +// "vertex_count": int, +// "material_id": int, +// } +// +// Each material Dictionary: +// { +// "texture0": int, # index into textures array (-1 = none) +// "texture1": int, +// "blend_mode": int, # 0=opaque 1=alpha key 2=alpha blend +// "flags": int, +// } +// ───────────────────────────────────────────────────────────────────────────── +class WMOLoader : public RefCounted { + GDCLASS(WMOLoader, RefCounted) + +public: + // Load root WMO + all group files from the same directory. + // path must be an absolute OS path. + Dictionary load_wmo(const String &path); + + // Load only the root file (no groups). + Dictionary load_root(const String &path); + + // Load a single group file. + Dictionary load_group(const String &path); + + // Load from raw bytes (e.g. from MPQManager::read_file). + // group_bytes: Array of PackedByteArray, one per group file. + Dictionary load_wmo_from_bytes(const PackedByteArray &root_bytes, + const Array &group_bytes_array); + +protected: + static void _bind_methods(); + +private: + Dictionary parse_root(const std::vector &buf); + Dictionary parse_group(const std::vector &buf); + + static std::vector read_file(const std::string &path); + static std::string to_std(const String &s); + static String to_godot(const std::string &s); +}; + +} // namespace godot diff --git a/gdextension/src/wow_chunk_reader.h b/gdextension/src/wow_chunk_reader.h new file mode 100644 index 0000000..e925287 --- /dev/null +++ b/gdextension/src/wow_chunk_reader.h @@ -0,0 +1,112 @@ +#pragma once +#include +#include +#include +#include + +// ───────────────────────────────────────────────────────────────────────────── +// Lightweight in-memory chunk reader for WoW chunked binary formats +// (WMO, ADT, WDT, etc.) +// ───────────────────────────────────────────────────────────────────────────── + +struct WoWChunk { + uint32_t magic = 0; + uint32_t size = 0; + const uint8_t *data = nullptr; // points into the owning buffer + + // Compare magic as 4 chars (e.g. "MVER"). + // WoW stores chunk IDs reversed in the file (MVER → REVM bytes). + // After memcpy into uint32_t LE the logical name sits MSB→LSB, + // so we compare each nibble from the top. + bool is(const char *tag) const { + return ((magic >> 24) & 0xFF) == (uint8_t)tag[0] && + ((magic >> 16) & 0xFF) == (uint8_t)tag[1] && + ((magic >> 8) & 0xFF) == (uint8_t)tag[2] && + ((magic >> 0) & 0xFF) == (uint8_t)tag[3]; + } + + template + const T &as() const { return *reinterpret_cast(data); } + + template + const T *array() const { return reinterpret_cast(data); } + + uint32_t count_of(size_t elem_size) const { + return size / (uint32_t)elem_size; + } +}; + +// Reads all top-level chunks from a buffer. +// For WMO groups, use ChunkReader on the MOGP payload to get sub-chunks. +class ChunkReader { +public: + explicit ChunkReader(const uint8_t *buf, size_t len) + : m_buf(buf), m_len(len) {} + + // Returns true if chunk at current position was read into `out` + bool next(WoWChunk &out) { + if (m_pos + 8 > m_len) return false; + std::memcpy(&out.magic, m_buf + m_pos, 4); + std::memcpy(&out.size, m_buf + m_pos + 4, 4); + m_pos += 8; + if (m_pos + out.size > m_len) return false; + out.data = m_buf + m_pos; + m_pos += out.size; + return true; + } + + bool eof() const { return m_pos >= m_len; } + void reset() { m_pos = 0; } + + // Find first chunk with given 4-char magic, reset on miss + bool find(const char *tag, WoWChunk &out) { + reset(); + WoWChunk c; + while (next(c)) { + if (c.is(tag)) { out = c; return true; } + } + return false; + } + +private: + const uint8_t *m_buf; + size_t m_len; + size_t m_pos = 0; +}; + +// ─── Helpers ────────────────────────────────────────────────────────────────── + +// WoW world coordinates → Godot Y-up +// WoW: X=North, Y=West, Z=Up, world center at (17066.666, 17066.666) +inline void wow_to_godot(float wx, float wy, float wz, + float &gx, float &gy, float &gz) +{ + gx = -(wy - 17066.666f); + gy = wz; + gz = -(wx - 17066.666f); +} + +// WoW rotation (degrees, ZXY order) → Godot Euler (radians, XYZ) +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif +inline void wow_rot_to_godot(float rx, float ry, float rz, + float &gx, float &gy, float &gz) +{ + constexpr float D2R = (float)(M_PI / 180.0); + gx = rx * D2R; + gy = (rz - 90.0f) * D2R; // WoW Z-rot maps to Godot Y + gz = -ry * D2R; +} + +// Collect null-separated strings from a chunk into a vector +inline std::vector parse_string_block(const WoWChunk &c) { + std::vector result; + const char *p = reinterpret_cast(c.data); + const char *end = p + c.size; + while (p < end) { + result.emplace_back(p); + p += result.back().size() + 1; + } + return result; +} diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..c6bbb7d --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..50ecae6 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccwib01b12pob" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/maps/adt_tile_preview.tscn b/maps/adt_tile_preview.tscn new file mode 100644 index 0000000..9953eba --- /dev/null +++ b/maps/adt_tile_preview.tscn @@ -0,0 +1,30 @@ +[gd_scene format=3 uid="uid://cbgbp30flxdgx"] + +[ext_resource type="Script" uid="uid://cacewewk7xgw4" path="res://scenes/adt_tile_preview.gd" id="1_preview"] +[ext_resource type="Script" uid="uid://bauggobg40psr" path="res://scenes/fly_camera.gd" id="2_flycam"] + +[sub_resource type="Sky" id="sky_1"] + +[sub_resource type="Environment" id="env_1"] +background_mode = 2 +sky = SubResource("sky_1") +ambient_light_source = 3 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_energy = 0.5 + +[node name="ADTTilePreview" type="Node3D" unique_id=623058517] +script = ExtResource("1_preview") + +[node name="Camera3D" type="Camera3D" parent="." unique_id=597499101] +transform = Transform3D(1, 0, 0, 0, 0.906308, 0.422618, 0, -0.422618, 0.906308, 18.5112, 168.016, 111.689) +current = true +far = 20000.0 +script = ExtResource("2_flycam") + +[node name="Sun" type="DirectionalLight3D" parent="." unique_id=697026372] +transform = Transform3D(0.866025, -0.353553, 0.353553, 0, 0.707107, 0.707107, -0.5, -0.612372, 0.612372, 0, 0, 0) +light_energy = 1.5 +shadow_enabled = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1785163215] +environment = SubResource("env_1") diff --git a/maps/character_preview.tscn b/maps/character_preview.tscn new file mode 100644 index 0000000..76f8aa4 --- /dev/null +++ b/maps/character_preview.tscn @@ -0,0 +1,16 @@ +[gd_scene format=3 uid="uid://c71mitsmy1vq1"] + +[ext_resource type="Script" uid="uid://cb1cwcj4p6d6p" path="res://scenes/character_geoset_controller.gd" id="1_vyw27"] +[ext_resource type="PackedScene" uid="uid://cf4xxu36nrmnq" path="res://resources/characters/Draenei/Female/DraeneiFemale.glb" id="2_vyw27"] + +[node name="CharacterPreview" type="Node3D" unique_id=733111432] +script = ExtResource("1_vyw27") +hair_style = 3 +facial1 = 104 +facial2 = 1021 +facial3 = 83 +ears = 724 +eye_effects = 1702 +wristband_style = 802 + +[node name="DraeneiFemale" parent="." unique_id=999499863 instance=ExtResource("2_vyw27")] diff --git a/maps/character_preview.tscn1234158869.tmp b/maps/character_preview.tscn1234158869.tmp new file mode 100644 index 0000000..53e5464 --- /dev/null +++ b/maps/character_preview.tscn1234158869.tmp @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://c71mitsmy1vq1"] + +[ext_resource type="Script" uid="uid://cb1cwcj4p6d6p" path="res://scenes/character_geoset_controller.gd" id="1_vyw27"] +[ext_resource type="PackedScene" uid="uid://2b5vlec15onw" path="res://resources/characters/BloodElf/Female/BloodElfFemale.glb" id="2_c3y2h"] + +[node name="CharacterPreview" type="Node3D" unique_id=733111432] +script = ExtResource("1_vyw27") + +[node name="BloodElfFemale" parent="." unique_id=239140817 instance=ExtResource("2_c3y2h")] diff --git a/maps/character_preview.tscn1245818943.tmp b/maps/character_preview.tscn1245818943.tmp new file mode 100644 index 0000000..53e5464 --- /dev/null +++ b/maps/character_preview.tscn1245818943.tmp @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://c71mitsmy1vq1"] + +[ext_resource type="Script" uid="uid://cb1cwcj4p6d6p" path="res://scenes/character_geoset_controller.gd" id="1_vyw27"] +[ext_resource type="PackedScene" uid="uid://2b5vlec15onw" path="res://resources/characters/BloodElf/Female/BloodElfFemale.glb" id="2_c3y2h"] + +[node name="CharacterPreview" type="Node3D" unique_id=733111432] +script = ExtResource("1_vyw27") + +[node name="BloodElfFemale" parent="." unique_id=239140817 instance=ExtResource("2_c3y2h")] diff --git a/maps/characters/blood_elf_female.tscn b/maps/characters/blood_elf_female.tscn new file mode 100644 index 0000000..35f44b7 --- /dev/null +++ b/maps/characters/blood_elf_female.tscn @@ -0,0 +1,75 @@ +[gd_scene format=3 uid="uid://b76a81ecfo3rs"] + +[ext_resource type="PackedScene" uid="uid://uc8ihrw2g0hy" path="res://resources/characters/BloodElf/Female/BloodElfFemale.glb" id="1_22k5x"] + +[node name="BloodElfFemale" unique_id=396948181 instance=ExtResource("1_22k5x")] + +[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(1689329618) index="0" unique_id=1185793760] +bones/1/position = Vector3(0.020567639, 1.1418878, -0.017966472) +bones/2/position = Vector3(-5.5879354e-09, 0.013204693, 0.00061981526) +bones/2/rotation = Quaternion(0.123804875, 0.11940578, 0.013367673, 0.9850056) +bones/3/rotation = Quaternion(-0.06487095, 0.021112822, -0.035487678, 0.99703896) +bones/4/rotation = Quaternion(-0.11656414, -0.009169256, 0.012765532, 0.9930588) +bones/5/rotation = Quaternion(0.051051795, -0.04647367, 0.0915637, 0.9934033) +bones/6/rotation = Quaternion(-0.0043863687, -0.08180441, -0.15909226, 0.98385894) +bones/9/position = Vector3(0.095388055, 0.06224084, 0) +bones/13/rotation = Quaternion(0.0036348682, -0.0020478186, -0.04413144, 0.99901706) +bones/14/rotation = Quaternion(0.0050126333, -0.0004394381, 0.046115804, 0.99892354) +bones/15/rotation = Quaternion(-0.045602754, -0.019244853, -0.1461395, 0.98802495) +bones/16/rotation = Quaternion(-0.0010522516, 0.0012768576, 0.006581648, 0.999977) +bones/17/rotation = Quaternion(-0.007964021, 0.00088885747, 0.03926191, 0.9991969) +bones/21/position = Vector3(0.116049744, 0.0758859, -0.01846384) +bones/21/rotation = Quaternion(-0.05670909, -0.0046792068, -0.03128321, 0.99788964) +bones/22/rotation = Quaternion(-0.09271755, -0.025453072, 0.047640584, 0.99422634) +bones/24/position = Vector3(0.11551966, -0.0015778318, -0.021920012) +bones/25/position = Vector3(0.116256274, 0.06848195, 0.02165297) +bones/25/rotation = Quaternion(0.02255213, -0.0075094164, -0.0022095616, 0.9997151) +bones/26/rotation = Quaternion(0.09265718, 0.025392218, 0.047640927, 0.9942335) +bones/27/rotation = Quaternion(0.0009912114, -0.0013378978, 0.0065816464, 0.999977) +bones/28/rotation = Quaternion(0.007905513, -0.0009485561, 0.039257552, 0.9991975) +bones/32/position = Vector3(0.1155197, -0.0015768784, 0.021421462) +bones/37/rotation = Quaternion(0.06507223, 0.09674508, 0.068695635, 0.9908012) +bones/38/rotation = Quaternion(-0.022194698, -0.06936834, -0.09758068, 0.9925591) +bones/39/rotation = Quaternion(-0.03300783, -0.013267887, 0.03763607, 0.9986581) +bones/40/rotation = Quaternion(0.033775434, -0.016210906, -0.057038154, 0.9976689) +bones/51/rotation = Quaternion(-0.029908726, 0.020630918, -0.016968625, 0.99919564) +bones/56/rotation = Quaternion(0.0024567072, -0.013335031, -0.0029236332, 0.9999038) +bones/60/rotation = Quaternion(-0.016449975, -0.0067556957, 0.017745575, 0.99968445) +bones/63/rotation = Quaternion(0.026935987, -0.05643349, 0.049124315, 0.9968333) +bones/64/rotation = Quaternion(-0.027013818, 0.0563725, 0.04912438, 0.99683464) +bones/65/rotation = Quaternion(-0.09290248, -0.15748595, 0.06828833, 0.98076713) +bones/66/rotation = Quaternion(0.14272292, -0.011203573, -0.11163199, 0.9833834) +bones/67/rotation = Quaternion(0.06000255, 0.01980045, 0.04261177, 0.9970917) +bones/68/rotation = Quaternion(-0.022882408, 0.006796895, -0.1232713, 0.99208593) +bones/69/position = Vector3(0.0413239, -0.06549978, -0.020981606) +bones/69/rotation = Quaternion(-0.023896394, -0.10211665, 0.037965663, 0.9937604) +bones/71/rotation = Quaternion(-0.08642865, -0.023835018, -0.0076296474, 0.99594367) +bones/73/rotation = Quaternion(-0.053072903, -0.012879106, -0.0046084006, 0.99849695) +bones/75/rotation = Quaternion(-0.032319825, -0.007080453, -0.0044558025, 0.9994426) +bones/77/rotation = Quaternion(0.0020142787, 0.00033571312, 0.0003967519, 0.99999785) +bones/79/position = Vector3(0.014056671, -0.1078162, -0.01205897) +bones/79/rotation = Quaternion(0.0065921065, 0.017426355, -0.06521913, 0.997697) +bones/88/rotation = Quaternion(-0.0022131095, 0.011718128, -0.0025471686, 0.99992573) +bones/90/rotation = Quaternion(0.029425986, 0.010602127, 0.021910178, 0.99927056) +bones/116/position = Vector3(5.5879354e-09, -0.013204574, -0.00061981526) +bones/116/rotation = Quaternion(0.061444823, 0.11480759, -0.11069672, 0.9852868) +bones/117/rotation = Quaternion(-0.15319423, 0.0766162, 0.067507334, 0.98290604) +bones/118/rotation = Quaternion(0.0016076086, -0.0010537306, 0.0116005195, 0.99993086) +bones/119/rotation = Quaternion(0.073131986, 0.04742621, 0.024243427, 0.995899) +bones/120/rotation = Quaternion(-0.012878833, 0.0033570419, 0.0015869653, 0.9999102) +bones/122/rotation = Quaternion(0.00078478147, -0.000550218, 0.0058596972, 0.9999825) +bones/124/rotation = Quaternion(-0.13583149, 0.09406532, 0.17353375, 0.97086954) +bones/125/rotation = Quaternion(0.01501317, -0.009498554, -0.10665566, 0.9941373) +bones/126/rotation = Quaternion(0.04327209, -0.18378712, 0.019996213, 0.9818096) +bones/127/rotation = Quaternion(0.0030824, -0.005432348, 0.0014954217, 0.9999794) +bones/129/rotation = Quaternion(0.0074802367, -0.004755205, -0.05334622, 0.9985368) +bones/131/position = Vector3(-0.15702619, -0.063200355, -0.00018678745) +bones/131/rotation = Quaternion(-0.08914321, 0.0019654154, 0.059140634, 0.9942596) +bones/132/rotation = Quaternion(0.04012855, 0.005028783, -0.012988713, 0.99909747) +bones/133/rotation = Quaternion(-0.077178694, 0.076181, 0.12862553, 0.98574615) +bones/134/rotation = Quaternion(-0.024023479, -0.006217299, -0.013663187, 0.99959874) +bones/135/rotation = Quaternion(0.009281775, 0.039282277, 0.052435584, 0.9978082) +bones/136/position = Vector3(-0.18500036, 0.052093893, 0.009707565) +bones/136/rotation = Quaternion(-0.061086744, -0.06087173, 0.17241617, 0.98124194) +bones/137/rotation = Quaternion(-0.024402294, -0.0006531618, 0.047712527, 0.99856275) +bones/138/rotation = Quaternion(-0.018057052, -0.030023871, 0.06942246, 0.9969719) diff --git a/maps/eastern_kingdoms_streaming.tscn b/maps/eastern_kingdoms_streaming.tscn new file mode 100644 index 0000000..8e077f3 --- /dev/null +++ b/maps/eastern_kingdoms_streaming.tscn @@ -0,0 +1,41 @@ +[gd_scene format=3 uid="uid://f1nqi4emji47"] + +[ext_resource type="Script" uid="uid://yi6lawwjgocg" path="res://scenes/streaming_world_loader.gd" id="1_stream"] +[ext_resource type="Script" uid="uid://bauggobg40psr" path="res://scenes/fly_camera.gd" id="2_flycam"] + +[sub_resource type="Sky" id="Sky_1"] + +[sub_resource type="Environment" id="Environment_1"] +background_mode = 2 +sky = SubResource("Sky_1") +ambient_light_source = 3 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_energy = 0.5 + +[node name="StreamingWorld" type="Node3D" unique_id=1063159974] +script = ExtResource("1_stream") +camera_path = NodePath("Camera3D") +update_interval = 0.1 +max_concurrent_tile_tasks = 4 +chunk_ops_per_tick = 64 +cached_tile_mesh_limit = 48 +use_baked_tile_cache = false +enable_water = true +terrain_cast_shadows = true +m2_cast_shadows = null + +[node name="Camera3D" type="Camera3D" parent="." unique_id=502573687] +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 300, 300) +current = true +far = 50000.0 +script = ExtResource("2_flycam") +speed = 1200.0 +fast_mult = 8.0 + +[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1436804627] +transform = Transform3D(0.866025, -0.353553, 0.353553, 0, 0.707107, 0.707107, -0.5, -0.612372, 0.612372, 0, 0, 0) +light_energy = 1.5 +shadow_enabled = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=12906896] +environment = SubResource("Environment_1") diff --git a/maps/test.tscn b/maps/test.tscn new file mode 100644 index 0000000..7ba29d4 --- /dev/null +++ b/maps/test.tscn @@ -0,0 +1,26 @@ +[gd_scene format=3 uid="uid://chk8oerov1xve"] + +[ext_resource type="Script" uid="uid://dq3t6tfy5wa0r" path="res://scenes/test_world_loader.gd" id="1_gyc4i"] +[ext_resource type="Script" path="res://scenes/fly_camera.gd" id="2_flycam"] + +[sub_resource type="Sky" id="sky_1"] + +[sub_resource type="Environment" id="env_1"] +background_mode = 2 +sky = SubResource("sky_1") + +[node name="World" type="Node3D"] +script = ExtResource("1_gyc4i") + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.857, 0.515, 0, -0.515, 0.857, 0, 500, 500) +far = 20000.0 +current = true +script = ExtResource("2_flycam") + +[node name="Sun" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.866, -0.353, 0.354, 0, 0.707, 0.707, -0.5, -0.612, 0.612, 0, 0, 0) +light_energy = 1.5 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("env_1") diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..b3f0bd5 --- /dev/null +++ b/project.godot @@ -0,0 +1,29 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="OpenWC" +run/main_scene="uid://f1nqi4emji47" +config/features=PackedStringArray("4.6", "Forward Plus") +config/icon="res://icon.svg" + +[editor_plugins] + +enabled=PackedStringArray("res://addons/mpq_extractor/plugin.cfg") + +[physics] + +3d/physics_engine="Jolt Physics" + +[rendering] + +rendering_device/driver.windows="d3d12" +rendering/rendering_device/d3d12/max_resource_descriptors=524288 diff --git a/reference-sources/README.md b/reference-sources/README.md new file mode 100644 index 0000000..5147031 --- /dev/null +++ b/reference-sources/README.md @@ -0,0 +1 @@ +Эта папка для программ, которые нужны для референса, чтобы реализовать логику корректного отображения мира в Godot \ No newline at end of file diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitignore b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitignore new file mode 100644 index 0000000..5af28bc --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitignore @@ -0,0 +1,14 @@ +*.pyc +io_scene_wmo/.idea/ +io_scene_wmo/third_party/ +.idea/ +.vscode/ +io_scene_wmo/bpy_boost/ +io_scene_wmo/wbs_kernel/build/ +io_scene_wmo/wbs_kernel/src/wbs_kernel.cpp +build/ + +*.pyd +/io_scene_wmo/.vscode/settings.json +/io_scene_wmo/wbs_kernel/src/render.cpp +/io_scene_wmo/wbs_kernel/src/wmo_utils.cpp diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitlab-ci.yml b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitlab-ci.yml new file mode 100644 index 0000000..704eb2d --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitlab-ci.yml @@ -0,0 +1,35 @@ + +stages: + - build + +windows: + stage: build + + only: + - schedules + + variables: + GIT_SUBMODULE_STRATEGY: recursive + + tags: + - shared-windows + - windows + - windows-1809 + + before_script: + - choco install python --version=3.10.2 -y -f + - choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y -f + - $env:Path += ';C:\Program Files\CMake\bin' + + + script: + - C:\Python310\python.exe -m pip install --upgrade pip + - C:\Python310\python.exe -m pip install Cython + - C:\Python310\python.exe -m pip install numpy + - mkdir C:\\GitLab-Runner\\builds\\skarnproject\\blender-wow-studio\\dist + - C:\Python310\python.exe io_scene_wmo/build.py --dist=C:\\GitLab-Runner\\builds\\skarnproject\\blender-wow-studio\\dist + + artifacts: + name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME" + paths: + - C:\\GitLab-Runner\\builds\\skarnproject\\blender-wow-studio\\dist \ No newline at end of file diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitmodules b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitmodules new file mode 100644 index 0000000..524846f --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/.gitmodules @@ -0,0 +1,7 @@ +[submodule "io_scene_wmo/pywowlib"] + path = io_scene_wmo/pywowlib + url = https://github.com/wowdev/pywowlib.git +[submodule "io_scene_wmo/wbs_kernel/src/bl_src"] + path = io_scene_wmo/wbs_kernel/src/bl_src + url = https://github.com/blender/blender + branch = blender-v3.1-release \ No newline at end of file diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/LICENSE b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/LICENSE new file mode 100644 index 0000000..f626907 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + WoW Blender Studio + Copyright (C) 2022 Skarn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) 2022 Skarn + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/README.md b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/README.md new file mode 100644 index 0000000..60fdb58 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/README.md @@ -0,0 +1,6 @@ +- Supported Blender version : 3.4 +- Supported WoW versions : 3.3.5 and 7.3(not stable) +- M2 exporting doesn't work for animated models and is also unstable for static models. (Beta build for animated M2 available in discord) +- The addon needs to be built by running build.py with a python version matching blender's, or grab a pre compiled build at https://gitlab.com/skarnproject/blender-wow-studio/-/jobs +- To enable the addon, search "WoW" in the addons list, fill the WoW Client path, WMV log path (select log.txt), cache and project paths (use empty folders) +- Discord : https://discord.gg/SBEDRXrSnd diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/.gitignore b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/.gitignore new file mode 100644 index 0000000..8141e0a --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/.gitignore @@ -0,0 +1,21 @@ +wbs_kernel/build +wbs_kernel/cmake-build-debug +wbs_kernel/cmake-build-release +wbs_kernel/src/cmake-build-debug +wbs_kernel/src/cmake-build-release +wbs_kernel/.idea +.vscode/ +build/ +venv/ +__pycache__/ + +*.so +*.pyd +*.lib +*.a +*.dylib +*.dll +*.pdb +wbs_kernel/CMakeLists.txt +wbs_kernel/wmo_utils.cpp +wbs_kernel/render.cpp diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/__init__.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/__init__.py new file mode 100644 index 0000000..8ed6ea1 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/__init__.py @@ -0,0 +1,93 @@ +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### + +# + + +bl_info = { + "name": "WoW Blender Studio", + "author": "Skarn", + "version": (1, 1, 0), + "blender": (3, 4, 0), + "description": "Import-Export WoW M2-WMO", + "category": "Import-Export" +} + +import os +import sys +import traceback +import bpy +import bpy.utils.previews +from bpy.props import StringProperty +from . import auto_load + +PACKAGE_NAME = __package__ + +# include custom lib vendoring dir +parent_dir = os.path.abspath(os.path.dirname(__file__)) +vendor_dir = os.path.join(parent_dir, 'third_party') + +sys.path.append(vendor_dir) + +# load custom icons +ui_icons = {} +pcoll = None + + + +def register(): + global pcoll + global ui_icons + + pcoll = bpy.utils.previews.new() + + icons_dir = os.path.join(os.path.dirname(__file__), "icons") + + for file in os.listdir(icons_dir): + pcoll.load(os.path.splitext(file)[0].upper(), os.path.join(icons_dir, file), 'IMAGE') + + for name, icon_file in pcoll.items(): + ui_icons[name] = icon_file.icon_id + + auto_load.init() + + try: + auto_load.register() + print("Registered WoW Blender Studio") + + except: + traceback.print_exc() + + +def unregister(): + try: + auto_load.unregister() + print("Unregistered WoW Blender Studio") + + except: + traceback.print_exc() + + global pcoll + bpy.utils.previews.remove(pcoll) + + global ui_icons + ui_icons = {} + + +if __name__ == "__main__": + register() diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/.gitignore b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/.gitignore new file mode 100644 index 0000000..4c0aa0e --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/.gitignore @@ -0,0 +1,108 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# addon updater temp folder +common/updater_tmp/* +!common/updater_tmp/.gitignore diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/LICENSE b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/README.md b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/README.md new file mode 100644 index 0000000..a3f1e65 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/README.md @@ -0,0 +1,11 @@ +# addon_common + +This repo contains the CookieCutter Blender add-on framework. + +## Example Add-on + +As an example add-on, see the [ExtruCut](https://github.com/CGCookie/ExtruCut) project. + +## resources + +- Blender Conference 2018 workshop [slides](https://gfx.cse.taylor.edu/courses/bcon18/index.md.html?scale) and [presentation](https://www.youtube.com/watch?v=YSHdSNhMO1c) diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/__init__.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/__init__.py new file mode 100644 index 0000000..0a52cf9 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/__init__.py @@ -0,0 +1,51 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson, Patrick Moore + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +__all__ = [ + 'bezier', + 'blender', + 'bmesh_render', + 'bmesh_utils', + 'debug', + 'decorators', + 'drawing', + 'fontmanager', + 'globals', + 'hasher', + 'irc', + 'logger', + 'maths', + 'metaclasses', + 'parse', + 'profiler', + 'shaders', + 'ui', + 'useractions', + 'utils', + 'xmesh', +] + +# import the following only to populate the globals +from . import debug as _ +from . import drawing as _ +from . import logger as _ +from . import profiler as _ +from . import ui_core as _ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bezier.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bezier.py new file mode 100644 index 0000000..82f9eae --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bezier.py @@ -0,0 +1,636 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import math + +from mathutils import Vector, Matrix + +from .blender import matrix_vector_mult +from .maths import Point, Vec +from .utils import iter_running_sum + + +def compute_quadratic_weights(t): + t0, t1 = t, (1-t) + return (t1**2, 2*t0*t1, t0**2) + + +def compute_cubic_weights(t): + t0, t1 = t, (1-t) + return (t1**3, 3*t0*t1**2, 3*t0**2*t1, t0**3) + + +def interpolate_cubic(v0, v1, v2, v3, t): + b0, b1, b2, b3 = compute_cubic_weights(t) + return v0*b0 + v1*b1 + v2*b2 + v3*b3 + + +def compute_cubic_error(v0, v1, v2, v3, l_v, l_t): + return math.sqrt(sum( + (interpolate_cubic(v0, v1, v2, v3, t) - v)**2 + for v, t in zip(l_v, l_t) + )) + + +def fit_cubicbezier(l_v, l_t): + ######################################################### + # http://nbviewer.ipython.org/gist/anonymous/5688579 + + # make the summation functions for A (16 of them) + A_fns = [ + lambda l_t: sum([2*t**0*(t-1)**6 for t in l_t]), + lambda l_t: sum([-6*t**1*(t-1)**5 for t in l_t]), + lambda l_t: sum([6*t**2*(t-1)**4 for t in l_t]), + lambda l_t: sum([-2*t**3*(t-1)**3 for t in l_t]), + + lambda l_t: sum([-6*t**1*(t-1)**5 for t in l_t]), + lambda l_t: sum([18*t**2*(t-1)**4 for t in l_t]), + lambda l_t: sum([-18*t**3*(t-1)**3 for t in l_t]), + lambda l_t: sum([6*t**4*(t-1)**2 for t in l_t]), + + lambda l_t: sum([6*t**2*(t-1)**4 for t in l_t]), + lambda l_t: sum([-18*t**3*(t-1)**3 for t in l_t]), + lambda l_t: sum([18*t**4*(t-1)**2 for t in l_t]), + lambda l_t: sum([-6*t**5*(t-1)**1 for t in l_t]), + + lambda l_t: sum([-2*t**3*(t-1)**3 for t in l_t]), + lambda l_t: sum([6*t**4*(t-1)**2 for t in l_t]), + lambda l_t: sum([-6*t**5*(t-1)**1 for t in l_t]), + lambda l_t: sum([2*t**6*(t-1)**0 for t in l_t]) + ] + + # make the summation functions for b (4 of them) + b_fns = [ + lambda l_t, l_v: sum(v * (-2 * (t**0) * ((t-1)**3)) + for t, v in zip(l_t, l_v)), + lambda l_t, l_v: sum(v * (6 * (t**1) * ((t-1)**2)) + for t, v in zip(l_t, l_v)), + lambda l_t, l_v: sum(v * (-6 * (t**2) * ((t-1)**1)) + for t, v in zip(l_t, l_v)), + lambda l_t, l_v: sum(v * (2 * (t**3) * ((t-1)**0)) + for t, v in zip(l_t, l_v)), + ] + + # compute the data we will put into matrix A + A_values = [fn(l_t) for fn in A_fns] + # fill the A matrix with data + A_matrix = Matrix(tuple(zip(*[iter(A_values)]*4))) + try: + A_inv = A_matrix.inverted() + except: + return (float('inf'), l_v[0], l_v[0], l_v[0], l_v[0]) + + # compute the data we will put into the b vector + b_values = [fn(l_t, l_v) for fn in b_fns] + # fill the b vector with data + b_vector = Vector(b_values) + + # solve for the unknowns in vector x + v0, v1, v2, v3 = matrix_vector_mult(A_inv, b_vector) + + err = compute_cubic_error(v0, v1, v2, v3, l_v, l_t) / len(l_v) + + return (err, v0, v1, v2, v3) + + +def fit_cubicbezier_spline( + l_co, error_scale, depth=0, + t0=0, t3=-1, allow_split=True, force_split=False +): + ''' + fits cubic bezier to given points + returns list of tuples of (t0,t3,p0,p1,p2,p3) + that best fits the given points l_co + where t0 and t3 are the passed-in t0 and t3 + and p0,p1,p2,p3 are the control points of bezier + ''' + count = len(l_co) + if t3 == -1: + t3 = count-1 + # spc = ' ' * depth + # print(spc + 'count = %d' % count) + if count == 0: + assert False + if count == 1: + assert False + if count == 2: + p0, p3 = l_co[0], l_co[-1] + diff = p3-p0 + return [(t0, t3, p0, p0+diff*0.33, p0+diff*0.66, p3)] + if count == 3: + new_co = [l_co[0], (l_co[0]+l_co[1])/2, l_co[1], + (l_co[1]+l_co[2])/2, l_co[2]] + return fit_cubicbezier_spline( + new_co, error_scale, + depth=depth, + t0=t0, t3=t3, + allow_split=allow_split, force_split=force_split + ) + l_d = [0] + [(v0-v1).length for v0, v1 in zip(l_co[:-1], l_co[1:])] + l_ad = [s for d, s in iter_running_sum(l_d)] + dist = sum(l_d) + if dist <= 0: + # print(spc + 'fit_cubicbezier_spline: returning []') + return [] # [(t0,t3,l_co[0],l_co[0],l_co[0],l_co[0])] + l_t = [ad/dist for ad in l_ad] + + ex, x0, x1, x2, x3 = fit_cubicbezier([co[0] for co in l_co], l_t) + ey, y0, y1, y2, y3 = fit_cubicbezier([co[1] for co in l_co], l_t) + ez, z0, z1, z2, z3 = fit_cubicbezier([co[2] for co in l_co], l_t) + tot_error = ex+ey+ez + # print(spc + 'total error = %f (%f)' % (tot_error,error_scale)) #, l=4) + + if not force_split: + do_not_split = tot_error < error_scale + do_not_split |= depth == 4 + do_not_split |= len(l_co) <= 15 + do_not_split |= not allow_split + if do_not_split: + p0, p1 = Point((x0, y0, z0)), Point((x1, y1, z1)) + p2, p3 = Point((x2, y2, z2)), Point((x3, y3, z3)) + return [(t0, t3, p0, p1, p2, p3)] + + # too much error in fit. split sequence in two, and fit each sub-sequence + + # find a good split point + ind_split = -1 + mindot = 1.0 + for ind in range(5, len(l_co)-5): + if l_t[ind] < 0.4: + continue + if l_t[ind] > 0.6: + break + # if l_ad[ind] < 0.1: continue + # if l_ad[ind] > dist-0.1: break + + v0 = l_co[ind-4] + v1 = l_co[ind+0] + v2 = l_co[ind+4] + d0 = (v1-v0).normalized() + d1 = (v2-v1).normalized() + dot01 = d0.dot(d1) + if ind_split == -1 or dot01 < mindot: + ind_split = ind + mindot = dot01 + + if ind_split == -1: + # did not find a good splitting point! + p0, p1, p2, p3 = Point((x0, y0, z0)), Point( + (x1, y1, z1)), Point((x2, y2, z2)), Point((x3, y3, z3)) + #p0,p3 = Point(l_co[0]),Point(l_co[-1]) + return [(t0, t3, p0, p1, p2, p3)] + + #print(spc + 'splitting at %d' % ind_split) + + l_co0, l_co1 = l_co[:ind_split+1], l_co[ind_split:] # share split point + tsplit = ind_split # / (len(l_co)-1) + bezier0 = fit_cubicbezier_spline( + l_co0, error_scale, depth=depth+1, t0=t0, t3=tsplit) + bezier1 = fit_cubicbezier_spline( + l_co1, error_scale, depth=depth+1, t0=tsplit, t3=t3) + return bezier0 + bezier1 + + +class CubicBezier: + split_default = 100 + segments_default = 100 + + @staticmethod + def create_from_points(pts_list): + ''' + Estimates best spline to fit given points + ''' + count = len(pts_list) + if count == 0: + assert False + if count == 1: + assert False + if count == 2: + p0, p3 = pts_list + diff = p3-p0 + p1, p2 = p0+diff*0.33, p0+diff*0.66 + return CubicBezier(p0, p1, p2, p3) + if count == 3: + p0, p03, p3 = pts_list + d003, d303 = (p03-p0), (p03-p3) + p1, p2 = p0+d003*0.5, p3+d303*0.5 + return CubicBezier(p0, p1, p2, p3) + l_d = [0] + [(p0-p1).length for p0, + p1 in zip(pts_list[:-1], pts_list[1:])] + l_ad = [s for d, s in iter_running_sum(l_d)] + dist = sum(l_d) + if dist <= 0: + p0 = pts_list[0] + return CubicBezier(p0, p0, p0, p0) + l_t = [ad/dist for ad in l_ad] + + ex, x0, x1, x2, x3 = fit_cubicbezier([pt[0] for pt in pts_list], l_t) + ey, y0, y1, y2, y3 = fit_cubicbezier([pt[1] for pt in pts_list], l_t) + ez, z0, z1, z2, z3 = fit_cubicbezier([pt[2] for pt in pts_list], l_t) + p0 = Point((x0, y0, z0)) + p1 = Point((x1, y1, z1)) + p2 = Point((x2, y2, z2)) + p3 = Point((x3, y3, z3)) + return CubicBezier(p0, p1, p2, p3) + + def __init__(self, p0, p1, p2, p3): + self.p0, self.p1, self.p2, self.p3 = p0, p1, p2, p3 + self.tessellation = [] + + def __iter__(self): return iter([self.p0, self.p1, self.p2, self.p3]) + + def points(self): return (self.p0, self.p1, self.p2, self.p3) + + def copy(self): + ''' shallow copy ''' + return CubicBezier(self.p0, self.p1, self.p2, self.p3) + + def eval(self, t): + p0, p1, p2, p3 = self.p0, self.p1, self.p2, self.p3 + b0, b1, b2, b3 = compute_cubic_weights(t) + return Point.weighted_average([ + (b0, p0), (b1, p1), (b2, p2), (b3, p3) + ]) + + def eval_derivative(self, t): + p0, p1, p2, p3 = self.p0, self.p1, self.p2, self.p3 + q0, q1, q2 = 3*(p1-p0), 3*(p2-p1), 3*(p3-p2) + b0, b1, b2 = compute_quadratic_weights(t) + return q0*b0 + q1*b1 + q2*b2 + + def subdivide(self, iters=1): + if iters == 0: + return [self] + # de casteljau subdivide + p0, p1, p2, p3 = self.p0, self.p1, self.p2, self.p3 + q0, q1, q2 = (p0+p1)/2, (p1+p2)/2, (p2+p3)/2 + r0, r1 = (q0+q1)/2, (q1+q2)/2 + s = (r0+r1)/2 + cb0, cb1 = CubicBezier(p0, q0, r0, s), CubicBezier(s, r1, q2, p3) + if iters == 1: + return [cb0, cb1] + return cb0.subdivide(iters=iters-1) + cb1.subdivide(iters=iters-1) + + def compute_linearity(self, fn_dist): + ''' + Estimating measure of linearity as ratio of distances + of curve mid-point and mid-point of end control points + over half the distance between end control points + p1 _ + / ﹨ + | ﹨ + p0 * ﹨ * p3 + ﹨_/ + p2 + ''' + p0, p1, p2, p3 = Vector(self.p0), Vector( + self.p1), Vector(self.p2), Vector(self.p3) + q0, q1, q2 = (p0+p1)/2, (p1+p2)/2, (p2+p3)/2 + r0, r1 = (q0+q1)/2, (q1+q2)/2 + s = (r0+r1)/2 + m = (p0+p3)/2 + d03 = fn_dist(p0, p3) + dsm = fn_dist(s, m) + return 2 * dsm / d03 + + def subdivide_linesegments(self, fn_dist, max_linearity=None): + if self.compute_linearity(fn_dist) < (max_linearity or 0.1): + return [self] + # de casteljau subdivide: + p0, p1, p2, p3 = Vector(self.p0), Vector( + self.p1), Vector(self.p2), Vector(self.p3) + q0, q1, q2 = (p0+p1)/2, (p1+p2)/2, (p2+p3)/2 + r0, r1 = (q0+q1)/2, (q1+q2)/2 + s = (r0+r1)/2 + cbs = CubicBezier(p0, q0, r0, s), CubicBezier(s, r1, q2, p3) + segs0, segs1 = [cb.subdivide_linesegments( + fn_dist, max_linearity=max_linearity) for cb in cbs] + return segs0 + segs1 + + def length(self, fn_dist, max_linearity=None): + l = self.subdivide_linesegments(fn_dist, max_linearity=max_linearity) + return sum(fn_dist(cb.p0, cb.p3) for cb in l) + + def approximate_length_uniform(self, fn_dist, split=None): + split = split or self.split_default + p = self.p0 + d = 0 + for i in range(split): + q = self.eval((i+1) / split) + d += fn_dist(p, q) + p = q + return d + + def approximate_t_at_interval_uniform(self, interval, fn_dist, split=None): + split = split or self.split_default + p = self.p0 + d = 0 + for i in range(split): + percent = (i+1) / split + q = self.eval(percent) + d += fn_dist(p, q) + if interval <= d: + return percent + p = q + return 1 + + def approximate_ts_at_intervals_uniform( + self, intervals, fn_dist, split=None + ): + a = self.approximate_t_at_interval_uniform + + def approx(i): return a(i, fn_dist, split=None) + return [approx(interval) for interval in intervals] + + def get_tessellate_uniform(self, fn_dist, split=None): + split = split or self.split_default + ts = [i/(split-1) for i in range(split)] + ps = [self.eval(t) for t in ts] + ds = [0] + [fn_dist(p, q) for p, q in zip(ps[:-1], ps[1:])] + return [(t, p, d) for t, p, d in zip(ts, ps, ds)] + + def tessellate_uniform_points(self, segments=None): + segments = segments or self.segments_default + ts = [i/(segments-1) for i in range(segments)] + ps = [self.eval(t) for t in ts] + return ps + + ######################################### + # # + # the following code **requires** that # + # self.tessellate_uniform() is called # + # beforehand! # + # # + ######################################### + + def tessellate_uniform(self, fn_dist, split=None): + self.tessellation = self.get_tessellate_uniform(fn_dist, split=split) + + def approximate_t_at_point_tessellation(self, point, fn_dist): + bd, bt = None, None + for t, q, _ in self.tessellation: + d = fn_dist(point, q) + if bd is None or d < bd: + bd, bt = d, t + return bt + + def approximate_totlength_tessellation(self): + return sum(self.approximate_lengths_tessellation()) + + def approximate_lengths_tessellation(self): + return [d for _, _, d in self.tessellation] + + +class CubicBezierSpline: + + @staticmethod + def create_from_points(pts_list, max_error): + ''' + Estimates best spline to fit given points + ''' + cbs = [] + inds = [] + for pts in pts_list: + cbs_pts = fit_cubicbezier_spline(pts, max_error) + cbs += [CubicBezier(p0, p1, p2, p3) + for _, _, p0, p1, p2, p3 in cbs_pts] + inds += [(ind0, ind1) for ind0, ind1, _, _, _, _ in cbs_pts] + return CubicBezierSpline(cbs=cbs, inds=inds) + + def __init__(self, cbs=None, inds=None): + if cbs is None: + cbs = [] + if inds is None: + inds = [] + if type(cbs) is CubicBezierSpline: + cbs = [cb.copy() for cb in cbs.cbs] + assert type(cbs) is list, "expected list" + self.cbs = cbs + self.inds = inds + self.tessellation = [] + + def copy(self): + return CubicBezierSpline( + cbs=[cb.copy() for cb in self.cbs], + inds=list(self.inds) + ) + + def __add__(self, other): + t = type(other) + if t is CubicBezierSpline: + return CubicBezierSpline( + self.cbs + other.cbs, + self.inds + other.inds + ) + if t is CubicBezier: + return CubicBezierSpline(self.cbs + [other]) + if t is list: + return CubicBezierSpline(self.cbs + other) + assert False, "unhandled type: %s (%s)" % (str(other), str(t)) + + def __iadd__(self, other): + t = type(other) + if t is CubicBezierSpline: + self.cbs += other.cbs + self.inds += other.inds + elif t is CubicBezier: + self.cbs += [other] + self.inds = [] + elif t is list: + self.cbs += other + self.inds = [] + else: + assert False, "unhandled type: %s (%s)" % (str(other), str(t)) + + def __len__(self): return len(self.cbs) + + def __iter__(self): return self.cbs.__iter__() + + def __getitem__(self, idx): return self.cbs[idx] + + def eval(self, t): + if t < 0.0: + t = 0 + idx = 0 + elif t >= len(self): + t = 1 + idx = len(self)-1 + else: + idx = int(t) + t = t - idx + return self.cbs[idx].eval(t) + + def eval_derivative(self, t): + if t < 0.0: + t = 0 + idx = 0 + elif t >= len(self): + t = 1 + idx = len(self)-1 + else: + idx = int(t) + t = t - idx + return self.cbs[idx].eval_derivative(t) + + def approximate_totlength_uniform(self, fn_dist, split=None): + return sum(self.approximate_lengths_uniform(fn_dist, split=split)) + + def approximate_lengths_uniform(self, fn_dist, split=None): + return [ + cb.approximate_length_uniform(fn_dist, split=split) + for cb in self.cbs + ] + + def approximate_ts_at_intervals_uniform( + self, intervals, fn_dist, split=None + ): + lengths = self.approximate_lengths_uniform(fn_dist, split=split) + totlength = sum(lengths) + ts = [] + for interval in intervals: + if interval < 0: + ts.append(0) + continue + if interval >= totlength: + ts.append(len(self.cbs)) + continue + for i, length in enumerate(lengths): + if interval <= length: + t = self.cbs[i].approximate_t_at_interval_uniform( + interval, fn_dist, split=split) + ts.append(i + t) + break + interval -= length + else: + assert False + return ts + + def subdivide_linesegments(self, fn_dist, max_linearity=None): + return CubicBezierSpline(cbi + for cb in self.cbs + for cbi in cb.subdivide_linesegments( + fn_dist, + max_linearity=max_linearity + )) + + ######################################### + # # + # the following code **requires** that # + # self.tessellate_uniform() is called # + # beforehand! # + # # + ######################################### + + def tessellate_uniform(self, fn_dist, split=None): + self.tessellation.clear() + for i, cb in enumerate(self.cbs): + cb_tess = cb.get_tessellate_uniform(fn_dist, split=split) + self.tessellation.append(cb_tess) + + def approximate_totlength_tessellation(self): + return sum(self.approximate_lengths_tessellation()) + + def approximate_lengths_tessellation(self): + return [sum(d for _, _, d in cb_tess) for cb_tess in self.tessellation] + + def approximate_ts_at_intervals_tessellation(self, intervals): + lengths = self.approximate_lengths_tessellation() + totlength = sum(lengths) + ts = [] + for interval in intervals: + if interval < 0: + ts.append(0) + continue + if interval >= totlength: + ts.append(len(self.cbs)) + continue + for i, length in enumerate(lengths): + if interval > length: + interval -= length + continue + cb_tess = self.tessellation[i] + for t, p, d in cb_tess: + if interval > d: + interval -= d + continue + ts.append(i+t) + break + else: + assert False + break + else: + assert False + return ts + + def approximate_ts_at_points_tessellation(self, points, fn_dist): + ts = [] + for p in points: + bd, bt = None, None + for i, cb_tess in enumerate(self.tessellation): + for t, q, _ in cb_tess: + d = fn_dist(p, q) + if bd is None or d < bd: + bd, bt = d, i+t + ts.append(bt) + return ts + + def approximate_t_at_point_tessellation(self, point, fn_dist): + bd, bt = None, None + for i, cb_tess in enumerate(self.tessellation): + for t, q, _ in cb_tess: + d = fn_dist(point, q) + if bd is None or d < bd: + bd, bt = d, i+t + return bt + + +class GenVector(list): + ''' + Generalized Vector, allows for some simple ordered items to be linearly combined + which is useful for interpolating arbitrary points of Bezier Spline. + ''' + + def __mul__(self, scalar: float): # ->GVector: + for idx in range(len(self)): + self[idx] *= scalar + return self + + def __rmul__(self, scalar: float): # ->GVector: + return self.__mul__(scalar) + + def __add__(self, other: list): # ->GVector: + for idx in range(len(self)): + self[idx] += other[idx] + return self + + +if __name__ == '__main__': + # run tests + + print('-'*50) + l = GenVector([Vector((1, 2, 3)), 23]) + print(l) + print(l * 2) + print(4 * l) + + l2 = GenVector([Vector((0, 0, 1)), 10]) + print(l + l2) + print(2 * l + l2 * 4) diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/blender.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/blender.py new file mode 100644 index 0000000..ac01c82 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/blender.py @@ -0,0 +1,332 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import bpy +from .decorators import blender_version_wrapper + +@blender_version_wrapper("<=", "2.79") +def get_preferences(ctx=None): + return (ctx if ctx else bpy.context).user_preferences +@blender_version_wrapper(">=", "2.80") +def get_preferences(ctx=None): + return (ctx if ctx else bpy.context).preferences + +############################################################# + +class ModifierWrapper_Mirror: + ''' + normalize the mirror modifier API across 2.79 and 2.80 + ''' + @staticmethod + def create_new(obj): + bpy.ops.object.modifier_add(type='MIRROR') + mod = ModifierWrapper_Mirror(obj, obj.modifiers[-1]) + mod.set_defaults() + return mod + + @staticmethod + def get_from_object(obj): + for mod in obj.modifiers: + if mod.type != 'MIRROR': continue + return ModifierWrapper_Mirror(obj, mod) + return None + + def __init__(self, obj, modifier): + self._reading = True + self.obj = obj + self.mod = modifier + self.read() + + @property + def x(self): + return 'x' in self._symmetry + @x.setter + def x(self, v): + if v: self._symmetry.add('x') + else: self._symmetry.discard('x') + self.write() + + @property + def y(self): + return 'y' in self._symmetry + @y.setter + def y(self, v): + if v: self._symmetry.add('y') + else: self._symmetry.discard('y') + self.write() + + @property + def z(self): + return 'z' in self._symmetry + @z.setter + def z(self, v): + if v: self._symmetry.add('z') + else: self._symmetry.discard('z') + self.write() + + @property + def xyz(self): + return set(self._symmetry) + + @property + def symmetry_threshold(self): + return self._symmetry_threshold + @symmetry_threshold.setter + def symmetry_threshold(self, v): + self._symmetry_threshold = max(0, float(v)) + self.write() + + + def enable_axis(self, axis): + self._symmetry.add(axis) + self.write() + def disable_axis(self, axis): + self._symmetry.discard(axis) + self.write() + def disable_all(self): + self._symmetry.clear() + self.write() + def is_enabled_axis(self, axis): + return axis in self._symmetry + + def set_defaults(self): + self.mod.merge_threshold = 0.001 + self.mod.show_expanded = False + self.mod.show_on_cage = True + self.mod.use_mirror_merge = True + self.mod.show_viewport = True + self.disable_all() + + @blender_version_wrapper('<', '2.80') + def read(self): + self._reading = True + self._symmetry = set() + if self.mod.use_x: self._symmetry.add('x') + if self.mod.use_y: self._symmetry.add('y') + if self.mod.use_z: self._symmetry.add('z') + self._symmetry_threshold = self.mod.merge_threshold + self.show_viewport = self.mod.show_viewport + self._reading = False + @blender_version_wrapper('>=', '2.80') + def read(self): + self._reading = True + self._symmetry = set() + if self.mod.use_axis[0]: self._symmetry.add('x') + if self.mod.use_axis[1]: self._symmetry.add('y') + if self.mod.use_axis[2]: self._symmetry.add('z') + self._symmetry_threshold = self.mod.merge_threshold + self.show_viewport = self.mod.show_viewport + self._reading = False + + @blender_version_wrapper('<', '2.80') + def write(self): + if self._reading: return + self.mod.use_x = self.x + self.mod.use_y = self.y + self.mod.use_z = self.z + self.mod.merge_threshold = self._symmetry_threshold + self.mod.show_viewport = self.show_viewport + @blender_version_wrapper('>=', '2.80') + def write(self): + if self._reading: return + self.mod.use_axis[0] = self.x + self.mod.use_axis[1] = self.y + self.mod.use_axis[2] = self.z + self.mod.merge_threshold = self._symmetry_threshold + self.mod.show_viewport = self.show_viewport + + + + +############################################################# + +@blender_version_wrapper('<', '2.80') +def matrix_vector_mult(mat, vec): return mat * vec +@blender_version_wrapper('>=', '2.80') +def matrix_vector_mult(mat, vec): return mat @ vec + +@blender_version_wrapper('<', '2.80') +def quat_vector_mult(quat, vec): return quat * vec +@blender_version_wrapper('>=', '2.80') +def quat_vector_mult(quat, vec): return quat @ vec + +############################################################# +# TODO: generalize these functions to be add_object, etc. + +@blender_version_wrapper('<=','2.79') +def set_object_layers(o): o.layers = list(bpy.context.scene.layers) +@blender_version_wrapper('>=','2.80') +def set_object_layers(o): print('unhandled: set_object_layers') + +@blender_version_wrapper('<=','2.79') +def set_object_selection(o, sel): o.select = sel +@blender_version_wrapper('>=','2.80') +def set_object_selection(o, sel): o.select_set(sel) + +@blender_version_wrapper('<=','2.79') +def link_object(o): bpy.context.scene.objects.link(o) +@blender_version_wrapper('>=','2.80') +def link_object(o): bpy.context.scene.collection.objects.link(o) + +@blender_version_wrapper('<=','2.79') +def set_active_object(o): bpy.context.scene.objects.active = o +@blender_version_wrapper('>=','2.80') +def set_active_object(o): bpy.context.window.view_layer.objects.active = o + +# use this, because bpy.context might not Screen context! +# see https://docs.blender.org/api/current/bpy.context.html +def get_active_object(): return bpy.context.view_layer.objects.active + +@blender_version_wrapper('<=', '2.79') +def toggle_screen_header(ctx): bpy.ops.screen.header(ctx) +@blender_version_wrapper('>=', '2.80') +def toggle_screen_header(ctx): + space = ctx['space_data'] if type(ctx) is dict else ctx.space_data + space.show_region_header = not space.show_region_header + +@blender_version_wrapper('<=', '2.79') +def toggle_screen_toolbar(ctx): + bpy.ops.view3d.toolshelf(ctx) +@blender_version_wrapper('>=', '2.80') +def toggle_screen_toolbar(ctx): + space = ctx['space_data'] if type(ctx) is dict else ctx.space_data + space.show_region_toolbar = not space.show_region_toolbar + +@blender_version_wrapper('<=', '2.79') +def toggle_screen_properties(ctx): + bpy.ops.view3d.properties(ctx) +@blender_version_wrapper('>=', '2.80') +def toggle_screen_properties(ctx): + space = ctx['space_data'] if type(ctx) is dict else ctx.space_data + space.show_region_ui = not space.show_region_ui + +@blender_version_wrapper('<=', '2.79') +def toggle_screen_lastop(ctx): + # Blender 2.79 does not have a last operation region + pass +@blender_version_wrapper('>=', '2.80') +def toggle_screen_lastop(ctx): + space = ctx['space_data'] if type(ctx) is dict else ctx.space_data + space.show_region_hud = not space.show_region_hud + + +tagged_redraw_all = False +tag_reasons = set() +def tag_redraw_all(reason, only_tag=True): + global tagged_redraw_all, tag_reasons + tagged_redraw_all = True + tag_reasons.add(reason) + if not only_tag: perform_redraw_all() +def perform_redraw_all(): + global tagged_redraw_all, tag_reasons + if not tagged_redraw_all: return + # print('Redrawing:', tag_reasons) + tag_reasons.clear() + tagged_redraw_all = False + for wm in bpy.data.window_managers: + for win in wm.windows: + for ar in win.screen.areas: + ar.tag_redraw() + + + + +def show_blender_popup(message, title="Message", icon="INFO", wrap=80): + ''' + icons: NONE, QUESTION, ERROR, CANCEL, + TRIA_RIGHT, TRIA_DOWN, TRIA_LEFT, TRIA_UP, + ARROW_LEFTRIGHT, PLUS, + DISCLOSURE_TRI_DOWN, DISCLOSURE_TRI_RIGHT, + RADIOBUT_OFF, RADIOBUT_ON, + MENU_PANEL, BLENDER, GRIP, DOT, COLLAPSEMENU, X, + GO_LEFT, PLUG, UI, NODE, NODE_SEL, + FULLSCREEN, SPLITSCREEN, RIGHTARROW_THIN, BORDERMOVE, + VIEWZOOM, ZOOMIN, ZOOMOUT, ... + see: https://git.blender.org/gitweb/gitweb.cgi/blender.git/blob/HEAD:/source/blender/editors/include/UI_icons.h + ''' # noqa + + if not message: return + lines = message.splitlines() + if wrap > 0: + nlines = [] + for line in lines: + spc = len(line) - len(line.lstrip()) + while len(line) > wrap: + i = line.rfind(' ',0,wrap) + if i == -1: + nlines += [line[:wrap]] + line = line[wrap:] + else: + nlines += [line[:i]] + line = line[i+1:] + if line: + line = ' '*spc + line + nlines += [line] + lines = nlines + def draw(self,context): + for line in lines: + self.layout.label(line) + bpy.context.window_manager.popup_menu(draw, title=title, icon=icon) + return + +def show_error_message(message, title="Error", wrap=80): + show_blender_popup(message, title, "ERROR", wrap) + +def create_and_show_blender_text(text, name='A Report', hide_header=True, goto_top=True): + # create a new textblock for reporting + bpy.ops.text.new() # create new text block, which is appended to list + bpy.data.texts[-1].name = name # set name, but if another object exists with the + name = bpy.data.texts[-1].name # same name, blender will append .001 (or similar) + bpy.data.texts[name].text = text # set text of text block + show_blender_text(name, hide_header=hide_header, goto_top=goto_top) + +def show_blender_text(textblock_name, hide_header=True, goto_top=True): + if textblock_name not in bpy.data.texts: + # no textblock to show + return + + txt = bpy.data.texts[textblock_name] + if goto_top: + txt.current_line_index = 0 + txt.select_end_line_index = 0 + + # duplicate the current area then change it to a text editor + area_dupli = bpy.ops.screen.area_dupli('INVOKE_DEFAULT') + win = bpy.context.window_manager.windows[-1] + area = win.screen.areas[-1] + area.type = 'TEXT_EDITOR' + + # load the text file into the correct space + for space in area.spaces: + if space.type == 'TEXT_EDITOR': + space.text = txt + space.show_word_wrap = True + space.show_syntax_highlight = False + space.top = 0 + if hide_header and area.regions[0].height != 1: + # hide header + toggle_screen_header({'window':win, 'region':area.regions[2], 'area':area, 'space_data':space}) + +def bversion(short=True): + major,minor,rev = bpy.app.version + bver_long = '%03d.%03d.%03d' % (major,minor,rev) + bver_short = '%d.%02d' % (major, minor) + return bver_short if short else bver_long diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_render.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_render.py new file mode 100644 index 0000000..19030d5 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_render.py @@ -0,0 +1,394 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson, and Patrick Moore + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + + +''' +notes: something is really wrong here to have such poor performance + +Below are some related, interesting links + +- https://machinesdontcare.wordpress.com/2008/02/02/glsl-discard-z-fighting-supersampling/ +- https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html +- https://stackoverflow.com/questions/16415037/opengl-core-profile-incredible-slowdown-on-os-x +''' + + +import os +import re +import math +import ctypes +import random +import traceback + +import bmesh +import bgl +import bpy +from bpy_extras.view3d_utils import ( + location_3d_to_region_2d, region_2d_to_vector_3d +) +from bpy_extras.view3d_utils import ( + region_2d_to_location_3d, region_2d_to_origin_3d +) +from mathutils import Vector, Matrix, Quaternion +from mathutils.bvhtree import BVHTree + +from .debug import dprint +from .shaders import Shader +from .utils import shorten_floats +from .maths import Point, Direction, Frame, XForm +from .maths import invert_matrix, matrix_normal +from .profiler import profiler +from .decorators import blender_version_wrapper + + + +# note: not all supported by user system, but we don't need full functionality +# https://en.wikipedia.org/wiki/OpenGL_Shading_Language#Versions +# OpenGL GLSL OpenGL GLSL +# 2.0 110 4.0 400 +# 2.1 120 4.1 410 +# 3.0 130 4.2 420 +# 3.1 140 4.3 430 +# 3.2 150 4.4 440 +# 3.3 330 4.5 450 +# 4.6 460 +print('(bmesh_render) GLSL Version:', bgl.glGetString(bgl.GL_SHADING_LANGUAGE_VERSION)) + + + +def glCheckError(title): + if not glCheckError.CHECK_ERROR: return + err = bgl.glGetError() + if err == bgl.GL_NO_ERROR: return + print('ERROR (%s): %s' % (title, glCheckError.ERROR_MAP.get(err, 'code %d' % err))) + traceback.print_stack() +glCheckError.CHECK_ERROR = True +glCheckError.ERROR_MAP = { + getattr(bgl, k): s + for (k,s) in [ + # https://www.khronos.org/opengl/wiki/OpenGL_Error#Meaning_of_errors + ('GL_INVALID_ENUM', 'invalid enum'), + ('GL_INVALID_VALUE', 'invalid value'), + ('GL_INVALID_OPERATION', 'invalid operation'), + ('GL_STACK_OVERFLOW', 'stack overflow'), # does not exist in b3d 2.8x for OSX?? + ('GL_STACK_UNDERFLOW', 'stack underflow'), # does not exist in b3d 2.8x for OSX?? + ('GL_OUT_OF_MEMORY', 'out of memory'), + ('GL_INVALID_FRAMEBUFFER_OPERATION', 'invalid framebuffer operation'), + ('GL_CONTEXT_LOST', 'context lost'), + ('GL_TABLE_TOO_LARGE', 'table too large'), # deprecated in OpenGL 3.0, removed in 3.1 core and above + ] + if hasattr(bgl, k) +} + + +@blender_version_wrapper('<', '2.80') +def glSetDefaultOptions(): + bgl.glDisable(bgl.GL_LIGHTING) + bgl.glEnable(bgl.GL_MULTISAMPLE) + bgl.glEnable(bgl.GL_BLEND) + bgl.glEnable(bgl.GL_DEPTH_TEST) + bgl.glEnable(bgl.GL_POINT_SMOOTH) + bgl.glEnable(bgl.GL_LINE_SMOOTH) + bgl.glHint(bgl.GL_LINE_SMOOTH_HINT, bgl.GL_NICEST) +@blender_version_wrapper('>=', '2.80') +def glSetDefaultOptions(): + bgl.glEnable(bgl.GL_MULTISAMPLE) + bgl.glEnable(bgl.GL_BLEND) + bgl.glEnable(bgl.GL_DEPTH_TEST) + bgl.glEnable(bgl.GL_LINE_SMOOTH) + bgl.glHint(bgl.GL_LINE_SMOOTH_HINT, bgl.GL_NICEST) + +@blender_version_wrapper('<', '2.80') +def glEnableStipple(enable=True): + if enable: + bgl.glLineStipple(4, 0x5555) + bgl.glEnable(bgl.GL_LINE_STIPPLE) + else: + bgl.glDisable(bgl.GL_LINE_STIPPLE) +@blender_version_wrapper('>=', '2.80') +def glEnableStipple(enable=True): + pass + # if enable: + # bgl.glLineStipple(4, 0x5555) + # bgl.glEnable(bgl.GL_LINE_STIPPLE) + # else: + # bgl.glDisable(bgl.GL_LINE_STIPPLE) + + +# def glEnableBackfaceCulling(enable=True): +# if enable: +# bgl.glDisable(bgl.GL_CULL_FACE) +# bgl.glDepthFunc(bgl.GL_GEQUAL) +# else: +# bgl.glDepthFunc(bgl.GL_LEQUAL) +# bgl.glEnable(bgl.GL_CULL_FACE) + + +def glSetOptions(prefix, opts): + if not opts: return + + prefix = '%s ' % prefix if prefix else '' + + def set_if_set(opt, cb): + opt = '%s%s' % (prefix, opt) + if opt not in opts: return + cb(opts[opt]) + glCheckError('setting %s to %s' % (str(opt), str(opts[opt]))) + def set_linewidth(v): + dpi_mult = opts.get('dpi mult', 1.0) + #bgl.glLineWidth(v*dpi_mult) + glCheckError('setting line width to %s' % (str(v*dpi_mult))) + def set_pointsize(v): + dpi_mult = opts.get('dpi mult', 1.0) + bgl.glPointSize(v*dpi_mult) + glCheckError('setting point size to %s' % (str(v*dpi_mult))) + def set_stipple(v): + glEnableStipple(v) + glCheckError('setting stipple to %s' % (str(v))) + set_if_set('offset', lambda v: bmeshShader.assign('offset', v)) + set_if_set('dotoffset', lambda v: bmeshShader.assign('dotoffset', v)) + set_if_set('color', lambda v: bmeshShader.assign('color', v)) + set_if_set('color selected', lambda v: bmeshShader.assign('color_selected', v)) + set_if_set('hidden', lambda v: bmeshShader.assign('hidden', v)) + set_if_set('width', set_linewidth) + set_if_set('size', set_pointsize) + set_if_set('stipple', set_stipple) + + +def glSetMirror(symmetry=None, view=None, effect=0.0, frame: Frame=None): + mirroring = (0, 0, 0) + if symmetry and frame: + mx = 1.0 if 'x' in symmetry else 0.0 + my = 1.0 if 'y' in symmetry else 0.0 + mz = 1.0 if 'z' in symmetry else 0.0 + mirroring = (mx, my, mz) + bmeshShader.assign('mirror_o', frame.o) + bmeshShader.assign('mirror_x', frame.x) + bmeshShader.assign('mirror_y', frame.y) + bmeshShader.assign('mirror_z', frame.z) + bmeshShader.assign('mirror_view', {'Edge': 1, 'Face': 2}.get(view, 0)) + bmeshShader.assign('mirror_effect', effect) + bmeshShader.assign('mirroring', mirroring) + +def triangulateFace(verts): + l = len(verts) + if l < 3: return + if l == 3: + yield verts + return + if l == 4: + v0,v1,v2,v3 = verts + yield (v0,v1,v2) + yield (v0,v2,v3) + return + iv = iter(verts) + v0, v2 = next(iv), next(iv) + for v3 in iv: + v1, v2 = v2, v3 + yield (v0, v1, v2) + + +############################################################################################################# +############################################################################################################# +############################################################################################################# + +import gpu +from gpu_extras.batch import batch_for_shader +from .shaders import Shader + +verts_vs, verts_fs = Shader.parse_file('bmesh_render_verts.glsl', includeVersion=False) +verts_shader = gpu.types.GPUShader(verts_vs, verts_fs) +edges_vs, edges_fs = Shader.parse_file('bmesh_render_edges.glsl', includeVersion=False) +edges_shader = gpu.types.GPUShader(edges_vs, edges_fs) +faces_vs, faces_fs = Shader.parse_file('bmesh_render_faces.glsl', includeVersion=False) +faces_shader = gpu.types.GPUShader(faces_vs, faces_fs) + + +class BufferedRender_Batch: + _quarantine = {} + + def __init__(self, gltype): + global faces_shader, edges_shader, verts_shader + self.count = 0 + self.gltype = gltype + self.shader, self.shader_type, self.gltype_name, self.gl_count, self.options_prefix = { + bgl.GL_POINTS: (verts_shader, 'POINTS', 'points', 1, 'point'), + bgl.GL_LINES: (edges_shader, 'LINES', 'lines', 2, 'line'), + bgl.GL_TRIANGLES: (faces_shader, 'TRIS', 'triangles', 3, 'poly'), + }[self.gltype] + self.batch = None + self._quarantine.setdefault(self.shader, set()) + + def buffer(self, pos, norm, sel): + if self.shader == None: return + if self.shader_type == 'POINTS': + data = { + 'vert_pos': [p for p in pos for __ in range(6)], + 'vert_norm': [n for n in norm for __ in range(6)], + 'selected': [s for s in sel for __ in range(6)], + 'vert_offset': [o for _ in pos for o in [(0,0), (1,0), (0,1), (0,1), (1,0), (1,1)]], + } + elif self.shader_type == 'LINES': + data = { + 'vert_pos0': [p0 for (p0,p1) in zip(pos[0::2], pos[1::2] ) for __ in range(6)], + 'vert_pos1': [p1 for (p0,p1) in zip(pos[0::2], pos[1::2] ) for __ in range(6)], + 'vert_norm': [n0 for (n0,n1) in zip(norm[0::2],norm[1::2]) for __ in range(6)], + 'selected': [s0 for (s0,s1) in zip(sel[0::2], sel[1::2] ) for __ in range(6)], + 'vert_offset': [o for _ in pos[0::2] for o in [(0,0), (0,1), (1,1), (0,0), (1,1), (1,0)]], + } + elif self.shader_type == 'TRIS': + data = { + 'vert_pos': pos, + 'vert_norm': norm, + 'selected': sel, + } + else: assert False, 'BufferedRender_Batch.buffer: Unhandled type: ' + self.shader_type + self.batch = batch_for_shader(self.shader, 'TRIS', data) # self.shader_type, data) + self.count = len(pos) + + def set_options(self, prefix, opts): + if not opts: return + shader = self.shader + + prefix = '%s ' % prefix if prefix else '' + + def set_if_set(opt, cb): + opt = '%s%s' % (prefix, opt) + if opt not in opts: return + cb(opts[opt]) + glCheckError('setting %s to %s' % (str(opt), str(opts[opt]))) + + dpi_mult = opts.get('dpi mult', 1.0) + set_if_set('color', lambda v: self.uniform_float('color', v)) + set_if_set('color selected', lambda v: self.uniform_float('color_selected', v)) + set_if_set('hidden', lambda v: self.uniform_float('hidden', v)) + set_if_set('offset', lambda v: self.uniform_float('offset', v)) + set_if_set('dotoffset', lambda v: self.uniform_float('dotoffset', v)) + if self.shader_type == 'POINTS': + set_if_set('size', lambda v: self.uniform_float('radius', v*dpi_mult)) + elif self.shader_type == 'LINES': + set_if_set('width', lambda v: self.uniform_float('radius', v*dpi_mult)) + + def _draw(self, sx, sy, sz): + self.uniform_float('vert_scale', (sx, sy, sz)) + self.batch.draw(self.shader) + #glCheckError('_draw: glDrawArrays (%d)' % self.count) + + def is_quarantined(self, k): + return k in self._quarantine[self.shader] + def quarantine(self, k): + dprint('BufferedRender_Batch: quarantining %s for %s' % (str(k), str(self.shader))) + self._quarantine[self.shader].add(k) + def uniform_float(self, k, v): + if self.is_quarantined(k): return + try: self.shader.uniform_float(k, v) + except Exception as e: self.quarantine(k) + def uniform_int(self, k, v): + if self.is_quarantined(k): return + try: self.shader.uniform_int(k, v) + except Exception as e: self.quarantine(k) + def uniform_bool(self, k, v): + if self.is_quarantined(k): return + try: self.shader.uniform_bool(k, v) + except Exception as e: self.quarantine(k) + + def draw(self, opts): + if self.shader == None or self.count == 0: return + if self.gltype == bgl.GL_LINES and opts.get('line width', 1.0) <= 0: return + if self.gltype == bgl.GL_POINTS and opts.get('point size', 1.0) <= 0: return + + shader = self.shader + + shader.bind() + + # set defaults + self.uniform_float('color', (1,1,1,0.5)) + self.uniform_float('color_selected', (0.5,1,0.5,0.5)) + self.uniform_float('hidden', 0.9) + self.uniform_float('offset', 0) + self.uniform_float('dotoffset', 0) + self.uniform_float('vert_scale', (1, 1, 1)) + self.uniform_float('radius', 1) #random.random()*10) + + nosel = opts.get('no selection', False) + self.uniform_bool('use_selection', [not nosel]) # must be a sequence!? + self.uniform_bool('use_rounding', [self.gltype == bgl.GL_POINTS]) # must be a sequence!? + + self.uniform_float('matrix_m', opts['matrix model']) + self.uniform_float('matrix_mn', opts['matrix normal']) + self.uniform_float('matrix_t', opts['matrix target']) + self.uniform_float('matrix_ti', opts['matrix target inverse']) + self.uniform_float('matrix_v', opts['matrix view']) + self.uniform_float('matrix_vn', opts['matrix view normal']) + self.uniform_float('matrix_p', opts['matrix projection']) + self.uniform_float('dir_forward', opts['forward direction']) + self.uniform_float('unit_scaling_factor', opts['unit scaling factor']) + + mx, my, mz = opts.get('mirror x', False), opts.get('mirror y', False), opts.get('mirror z', False) + symmetry = opts.get('symmetry', None) + symmetry_frame = opts.get('symmetry frame', None) + symmetry_view = opts.get('symmetry view', None) + symmetry_effect = opts.get('symmetry effect', 0.0) + mirroring = (False, False, False) + if symmetry and symmetry_frame: + mx = 'x' in symmetry + my = 'y' in symmetry + mz = 'z' in symmetry + mirroring = (mx, my, mz) + self.uniform_float('mirror_o', symmetry_frame.o) + self.uniform_float('mirror_x', symmetry_frame.x) + self.uniform_float('mirror_y', symmetry_frame.y) + self.uniform_float('mirror_z', symmetry_frame.z) + self.uniform_int('mirror_view', [{'Edge': 1, 'Face': 2}.get(symmetry_view, 0)]) + self.uniform_float('mirror_effect', symmetry_effect) + self.uniform_bool('mirroring', mirroring) + + self.uniform_float('normal_offset', opts.get('normal offset', 0.0)) + self.uniform_bool('constrain_offset', [opts.get('constrain offset', True)]) # must be a sequence!? + + ctx = bpy.context + area, spc, r3d = ctx.area, ctx.space_data, ctx.space_data.region_3d + self.uniform_bool('perspective', [r3d.view_perspective != 'ORTHO']) # must be a sequence!? + self.uniform_float('clip_start', spc.clip_start) + self.uniform_float('clip_end', spc.clip_end) + self.uniform_float('view_distance', r3d.view_distance) + self.uniform_float('screen_size', Vector((area.width, area.height))) + + focus = opts.get('focus mult', 1.0) + self.uniform_float('focus_mult', focus) + self.uniform_bool('cull_backfaces', [opts.get('cull backfaces', False)]) + self.uniform_float('alpha_backface', opts.get('alpha backface', 0.5)) + + self.set_options(self.options_prefix, opts) + self._draw(1, 1, 1) + + if mx or my or mz: + self.set_options('%s mirror' % self.options_prefix, opts) + if mx: self._draw(-1, 1, 1) + if my: self._draw( 1, -1, 1) + if mz: self._draw( 1, 1, -1) + if mx and my: self._draw(-1, -1, 1) + if mx and mz: self._draw(-1, 1, -1) + if my and mz: self._draw( 1, -1, -1) + if mx and my and mz: self._draw(-1, -1, -1) + + gpu.shader.unbind() + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_render_old.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_render_old.py new file mode 100644 index 0000000..44a5c50 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_render_old.py @@ -0,0 +1,485 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson, and Patrick Moore + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + + +''' +notes: something is really wrong here to have such poor performance + +Below are some related, interesting links + +- https://machinesdontcare.wordpress.com/2008/02/02/glsl-discard-z-fighting-supersampling/ +- https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html +- https://stackoverflow.com/questions/16415037/opengl-core-profile-incredible-slowdown-on-os-x +''' + + +import os +import re +import math +import ctypes +import traceback + +import bmesh +import bgl +import bpy +from bpy_extras.view3d_utils import ( + location_3d_to_region_2d, region_2d_to_vector_3d +) +from bpy_extras.view3d_utils import ( + region_2d_to_location_3d, region_2d_to_origin_3d +) +from mathutils import Vector, Matrix, Quaternion +from mathutils.bvhtree import BVHTree + +from .debug import dprint +from .shaders import Shader +from .utils import shorten_floats +from .maths import Point, Direction, Frame, XForm +from .maths import invert_matrix, matrix_normal +from .profiler import profiler +from .decorators import blender_version_wrapper + + + +def glColor(color): + if len(color) == 3: + bgl.glColor3f(*color) + else: + bgl.glColor4f(*color) + + + + +def glDrawBMFace(bmf, opts=None, enableShader=True): + glDrawBMFaces([bmf], opts=opts, enableShader=enableShader) + +@profiler.function +def glDrawBMFaces(lbmf, opts=None, enableShader=True): + opts_ = opts or {} + nosel = opts_.get('no selection', False) + mx = opts_.get('mirror x', False) + my = opts_.get('mirror y', False) + mz = opts_.get('mirror z', False) + dn = opts_.get('normal', 0.0) + vdict = opts_.get('vertex dict', {}) + + bmeshShader.assign('focus_mult', opts_.get('focus mult', 1.0)) + bmeshShader.assign('use_selection', 0.0 if nosel else 1.0) + + @profiler.function + def render_general(sx, sy, sz): + bmeshShader.assign('vert_scale', (sx, sy, sz)) + bmeshShader.assign('selected', 0.0) + for bmf in lbmf: + bmeshShader.assign('selected', 1.0 if bmf.select else 0.0) + if bmf.smooth: + for v0, v1, v2 in triangulateFace(bmf.verts): + if v0 not in vdict: + vdict[v0] = (v0.co, v0.normal) + if v1 not in vdict: + vdict[v1] = (v1.co, v1.normal) + if v2 not in vdict: + vdict[v2] = (v2.co, v2.normal) + (c0, n0), (c1, n1), (c2, + n2) = vdict[v0], vdict[v1], vdict[v2] + bmeshShader.assign('vert_norm', n0) + bmeshShader.assign('vert_pos', c0) + bmeshShader.assign('vert_norm', n1) + bmeshShader.assign('vert_pos', c1) + bmeshShader.assign('vert_norm', n2) + bmeshShader.assign('vert_pos', c2) + else: + bgl.glNormal3f(*bmf.normal) + bmeshShader.assign('vert_norm', bmf.normal) + for v0, v1, v2 in triangulateFace(bmf.verts): + if v0 not in vdict: + vdict[v0] = (v0.co, v0.normal) + if v1 not in vdict: + vdict[v1] = (v1.co, v1.normal) + if v2 not in vdict: + vdict[v2] = (v2.co, v2.normal) + (c0, n0), (c1, n1), (c2, + n2) = vdict[v0], vdict[v1], vdict[v2] + bmeshShader.assign('vert_pos', c0) + bmeshShader.assign('vert_pos', c1) + bmeshShader.assign('vert_pos', c2) + + @profiler.function + def render_triangles(sx, sy, sz): + # optimized for triangle-only meshes + # (source meshes that have been triangulated) + bmeshShader.assign('vert_scale', (sx, sy, sz)) + bmeshShader.assign('selected', 0.0) + for bmf in lbmf: + bmeshShader.assign('selected', 1.0 if bmf.select else 0.0) + if bmf.smooth: + v0, v1, v2 = bmf.verts + if v0 not in vdict: + vdict[v0] = (v0.co, v0.normal) + if v1 not in vdict: + vdict[v1] = (v1.co, v1.normal) + if v2 not in vdict: + vdict[v2] = (v2.co, v2.normal) + (c0, n0), (c1, n1), (c2, n2) = vdict[v0], vdict[v1], vdict[v2] + bmeshShader.assign('vert_norm', n0) + bmeshShader.assign('vert_pos', c0) + # bgl.glNormal3f(*n0) + # bgl.glVertex3f(*c0) + bmeshShader.assign('vert_norm', n1) + bmeshShader.assign('vert_pos', c1) + # bgl.glNormal3f(*n1) + # bgl.glVertex3f(*c1) + bmeshShader.assign('vert_norm', n2) + bmeshShader.assign('vert_pos', c2) + # bgl.glNormal3f(*n2) + # bgl.glVertex3f(*c2) + else: + bgl.glNormal3f(*bmf.normal) + v0, v1, v2 = bmf.verts + if v0 not in vdict: + vdict[v0] = (v0.co, v0.normal) + if v1 not in vdict: + vdict[v1] = (v1.co, v1.normal) + if v2 not in vdict: + vdict[v2] = (v2.co, v2.normal) + (c0, n0), (c1, n1), (c2, n2) = vdict[v0], vdict[v1], vdict[v2] + bmeshShader.assign('vert_pos', c0) + # bgl.glVertex3f(*c0) + bmeshShader.assign('vert_pos', c1) + # bgl.glVertex3f(*c1) + bmeshShader.assign('vert_pos', c2) + # bgl.glVertex3f(*c2) + + render = render_triangles if opts_.get( + 'triangles only', False) else render_general + + if enableShader: + bmeshShader.enable() + + glSetOptions('poly', opts) + bgl.glBegin(bgl.GL_TRIANGLES) + render(1, 1, 1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if mx or my or mz: + glSetOptions('poly mirror', opts) + bgl.glBegin(bgl.GL_TRIANGLES) + if mx: + render(-1, 1, 1) + if my: + render(1, -1, 1) + if mz: + render(1, 1, -1) + if mx and my: + render(-1, -1, 1) + if mx and mz: + render(-1, 1, -1) + if my and mz: + render(1, -1, -1) + if mx and my and mz: + render(-1, -1, -1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if enableShader: + bmeshShader.disable() + + + + +@profiler.function +def glDrawSimpleFaces(lsf, opts=None, enableShader=True): + opts_ = opts or {} + nosel = opts_.get('no selection', False) + mx = opts_.get('mirror x', False) + my = opts_.get('mirror y', False) + mz = opts_.get('mirror z', False) + dn = opts_.get('normal', 0.0) + + bmeshShader.assign('focus_mult', opts_.get('focus mult', 1.0)) + bmeshShader.assign('use_selection', 0.0 if nosel else 1.0) + bmeshShader.assign('selected', 0.0) + + @profiler.function + def render(sx, sy, sz): + bmeshShader.assign('vert_scale', (sx, sy, sz)) + for sf in lsf: + for v0, v1, v2 in triangulateFace(sf): + (c0, n0), (c1, n1), (c2, n2) = v0, v1, v2 + bgl.glNormal3f(*n0) + bgl.glVertex3f(*c0) + bgl.glNormal3f(*n1) + bgl.glVertex3f(*c1) + bgl.glNormal3f(*n2) + bgl.glVertex3f(*c2) + + if enableShader: + bmeshShader.enable() + + glSetOptions('poly', opts) + bgl.glBegin(bgl.GL_TRIANGLES) + render(1, 1, 1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if mx or my or mz: + glSetOptions('poly mirror', opts) + bgl.glBegin(bgl.GL_TRIANGLES) + if mx: + render(-1, 1, 1) + if my: + render(1, -1, 1) + if mz: + render(1, 1, -1) + if mx and my: + render(-1, -1, 1) + if mx and mz: + render(-1, 1, -1) + if my and mz: + render(1, -1, -1) + if mx and my and mz: + render(-1, -1, -1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if enableShader: + bmeshShader.disable() + + +def glDrawBMFaceEdges(bmf, opts=None, enableShader=True): + glDrawBMEdges(bmf.edges, opts=opts, enableShader=enableShader) + + +def glDrawBMFaceVerts(bmf, opts=None, enableShader=True): + glDrawBMVerts(bmf.verts, opts=opts, enableShader=enableShader) + + +def glDrawBMEdge(bme, opts=None, enableShader=True): + glDrawBMEdges([bme], opts=opts, enableShader=enableShader) + + +@profiler.function +def glDrawBMEdges(lbme, opts=None, enableShader=True): + opts_ = opts or {} + if opts_.get('line width', 1.0) <= 0.0: + return + nosel = opts_.get('no selection', False) + mx = opts_.get('mirror x', False) + my = opts_.get('mirror y', False) + mz = opts_.get('mirror z', False) + dn = opts_.get('normal', 0.0) + vdict = opts_.get('vertex dict', {}) + + bmeshShader.assign('use_selection', 0.0 if nosel else 1.0) + + @profiler.function + def render(sx, sy, sz): + bmeshShader.assign('vert_scale', (sx, sy, sz)) + for bme in lbme: + bmeshShader.assign('selected', 1.0 if bme.select else 0.0) + v0, v1 = bme.verts + if v0 not in vdict: + vdict[v0] = (v0.co, v0.normal) + if v1 not in vdict: + vdict[v1] = (v1.co, v1.normal) + (c0, n0), (c1, n1) = vdict[v0], vdict[v1] + c0, c1 = c0+n0*dn, c1+n1*dn + bmeshShader.assign('vert_norm', n0) + bmeshShader.assign('vert_pos', c0) + # bgl.glVertex3f(0,0,0) + bmeshShader.assign('vert_norm', n1) + bmeshShader.assign('vert_pos', c1) + # bgl.glVertex3f(0,0,0) + + if enableShader: + bmeshShader.enable() + + glSetOptions('line', opts) + bgl.glBegin(bgl.GL_LINES) + render(1, 1, 1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if mx or my or mz: + glSetOptions('line mirror', opts) + bgl.glBegin(bgl.GL_LINES) + if mx: + render(-1, 1, 1) + if my: + render(1, -1, 1) + if mz: + render(1, 1, -1) + if mx and my: + render(-1, -1, 1) + if mx and mz: + render(-1, 1, -1) + if my and mz: + render(1, -1, -1) + if mx and my and mz: + render(-1, -1, -1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if enableShader: + bmeshShader.disable() + + +def glDrawBMEdgeVerts(bme, opts=None, enableShader=True): + glDrawBMVerts(bme.verts, opts=opts, enableShader=enableShader) + + +def glDrawBMVert(bmv, opts=None, enableShader=True): + glDrawBMVerts([bmv], opts=opts, enableShader=enableShader) + + +@profiler.function +def glDrawBMVerts(lbmv, opts=None, enableShader=True): + opts_ = opts or {} + if opts_.get('point size', 1.0) <= 0.0: + return + nosel = opts_.get('no selection', False) + mx = opts_.get('mirror x', False) + my = opts_.get('mirror y', False) + mz = opts_.get('mirror z', False) + dn = opts_.get('normal', 0.0) + vdict = opts_.get('vertex dict', {}) + + if enableShader: + bmeshShader.enable() + bmeshShader.assign('use_selection', 0.0 if nosel else 1.0) + + @profiler.function + def render(sx, sy, sz): + bmeshShader.assign('vert_scale', Vector((sx, sy, sz))) + for bmv in lbmv: + bmeshShader.assign('selected', 1.0 if bmv.select else 0.0) + if bmv not in vdict: + vdict[bmv] = (bmv.co, bmv.normal) + c, n = vdict[bmv] + c = c + dn * n + bmeshShader.assign('vert_norm', n) + bmeshShader.assign('vert_pos', c) + # bgl.glNormal3f(*n) + # bgl.glVertex3f(*c) + + glSetOptions('point', opts) + bgl.glBegin(bgl.GL_POINTS) + glCheckError('something broke before rendering bmverts') + render(1, 1, 1) + glCheckError('something broke after rendering bmverts') + bgl.glEnd() + glCheckError('something broke after glEnd') + bgl.glDisable(bgl.GL_LINE_STIPPLE) + glCheckError('something broke after glDisable(bgl.GL_LINE_STIPPLE') + + if mx or my or mz: + glSetOptions('point mirror', opts) + bgl.glBegin(bgl.GL_POINTS) + if mx: + render(-1, 1, 1) + if my: + render(1, -1, 1) + if mz: + render(1, 1, -1) + if mx and my: + render(-1, -1, 1) + if mx and mz: + render(-1, 1, -1) + if my and mz: + render(1, -1, -1) + if mx and my and mz: + render(-1, -1, -1) + bgl.glEnd() + bgl.glDisable(bgl.GL_LINE_STIPPLE) + + if enableShader: + glCheckError('before disabling shader') + bmeshShader.disable() + + +class BMeshRender(): + @profiler.function + def __init__(self, obj, xform=None): + self.calllist = None + if type(obj) is bpy.types.Object: + print('Creating BMeshRender for ' + obj.name) + self.bme = bmesh.new() + self.bme.from_object(obj, bpy.context.scene, deform=True) + self.xform = xform or XForm(obj.matrix_world) + elif type(obj) is bmesh.types.BMesh: + self.bme = obj + self.xform = xform or XForm() + else: + assert False, 'Unhandled type: ' + str(type(obj)) + + self.buf_matrix_model = self.xform.to_bglMatrix_Model() + self.buf_matrix_normal = self.xform.to_bglMatrix_Normal() + + self.is_dirty = True + self.calllist = bgl.glGenLists(1) + + def replace_bmesh(self, bme): + self.bme = bme + self.is_dirty = True + + def __del__(self): + if not self.calllist: return + bgl.glDeleteLists(self.calllist, 1) + self.calllist = None + + def dirty(self): + self.is_dirty = True + + @profiler.function + def clean(self, opts=None): + if not self.is_dirty: return + + # make not dirty first in case bad things happen while drawing + self.is_dirty = False + + bgl.glNewList(self.calllist, bgl.GL_COMPILE) + # do not change attribs if they're not set + glSetDefaultOptions(opts=opts) + glDrawBMFaces(self.bme.faces, opts=opts, enableShader=False) + glDrawBMEdges(self.bme.edges, opts=opts, enableShader=False) + glDrawBMVerts(self.bme.verts, opts=opts, enableShader=False) + bgl.glDepthRange(0, 1) + bgl.glEndList() + + @profiler.function + def draw(self, opts=None): + try: + self.clean(opts=opts) + bmeshShader.enable() + #bmeshShader.assign('matrix_m', self.buf_matrix_model) + #bmeshShader.assign('matrix_mn', self.buf_matrix_normal) + #bmeshShader.assign('matrix_t', buf_matrix_target) + #bmeshShader.assign('matrix_ti', buf_matrix_target_inv) + #bmeshShader.assign('matrix_v', buf_matrix_view) + #bmeshShader.assign('matrix_vn', buf_matrix_view_invtrans) + #bmeshShader.assign('matrix_p', buf_matrix_proj) + #bmeshShader.assign('dir_forward', view_forward) + bgl.glCallList(self.calllist) + except: + pass + finally: + bmeshShader.disable() diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_utils.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_utils.py new file mode 100644 index 0000000..0876ede --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/bmesh_utils.py @@ -0,0 +1,55 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning and Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + + +class BMeshState: + def __init__(self, bmesh, property, default_value=False): + self.bmesh = bmesh + self.property = property + self.default_value = default_value + self.vert_state = { bmv:getattr(bmv, property) for bmv in bmesh.verts } + self.edge_state = { bme:getattr(bme, property) for bme in bmesh.edges } + self.face_state = { bmf:getattr(bmf, property) for bmf in bmesh.faces } + + def restore(self, verts=True, edges=True, faces=True): + if faces: + for bmf in self.bmesh.faces: + setattr(bmf, self.property, self.face_state.get(bmf, self.default_value)) + if edges: + for bme in self.bmesh.edges: + setattr(bme, self.property, self.edge_state.get(bme, self.default_value)) + if verts: + for bmv in self.bmesh.verts: + setattr(bmv, self.property, self.vert_state.get(bmv, self.default_value)) + + +class BMeshSelectState(BMeshState): + ''' Saves selection state of BMesh, allowing to restore ''' + def __init__(self, bmesh): + super().__init__(bmesh, 'select') + + +class BMeshHideState(BMeshState): + ''' Saves hide state of BMesh, allowing to restore ''' + def __init__(self, bmesh): + super().__init__(bmesh, 'hide') + + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/boundvar.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/boundvar.py new file mode 100644 index 0000000..98b17ed --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/boundvar.py @@ -0,0 +1,144 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import re +import inspect + +class IgnoreChange(Exception): pass + +class BoundVar: + def __init__(self, value_str, *, on_change=None, frame_depth=1): + assert type(value_str) is str, 'BoundVar: constructor needs value as string!' + frame = inspect.currentframe() + for i in range(frame_depth): frame = frame.f_back + self._f_globals = frame.f_globals + self._f_locals = dict(frame.f_locals) + try: + exec(value_str, self._f_globals, self._f_locals) + except Exception as e: + print('Caught exception when trying to bind to variable') + print(e) + assert False, 'BoundVar: value string ("%s") must be a valid variable!' % (value_str) + self._f_locals.update({'boundvar_interface': self._boundvar_interface}) + self._value_str = value_str + self._callbacks = [] + self._validators = [] + self._disabled = False + if on_change: self.on_change(on_change) + + def _boundvar_interface(self, v): self._v = v + def _call_callbacks(self): + for cb in self._callbacks: cb() + + def __str__(self): return str(self.value) + + def get(self): + return self.value + def set(self, value): + self.value = value + + @property + def disabled(self): + return self._disabled + @disabled.setter + def disabled(self, v): + self._disabled = bool(v) + self._call_callbacks() + + @property + def value(self): + exec('boundvar_interface(' + self._value_str + ')', self._f_globals, self._f_locals) + return self._v + @value.setter + def value(self, value): + try: + for validator in self._validators: value = validator(value) + except IgnoreChange: + return + if self.value == value: return + exec(self._value_str + ' = ' + str(value), self._f_globals, self._f_locals) + self._call_callbacks() + @property + def value_as_str(self): return str(self) + + def on_change(self, fn): + self._callbacks.append(fn) + + def add_validator(self, fn): + self._validators.append(fn) + + +class BoundBool(BoundVar): + def __init__(self, value_str, **kwargs): + super().__init__(value_str, frame_depth=2, **kwargs) + @property + def checked(self): return self.value + @checked.setter + def checked(self,v): self.value = v + + +class BoundInt(BoundVar): + def __init__(self, value_str, *, min_value=None, max_value=None, **kwargs): + super().__init__(value_str, frame_depth=2, **kwargs) + self._min_value = min_value + self._max_value = max_value + self.add_validator(self.int_validator) + + def int_validator(self, value): + try: + t = type(value) + if t is str: nv = int(re.sub(r'\D', '', value)) + elif t is int: nv = value + elif t is float: nv = int(value) + else: assert False, 'Unhandled type of value: %s (%s)' % (str(value), str(t)) + if self._min_value is not None: nv = max(nv, self._min_value) + if self._max_value is not None: nv = min(nv, self._max_value) + return nv + except ValueError as e: + raise IgnoreChange() + except Exception: + # ignoring all exceptions? + raise IgnoreChange() + + +class BoundFloat(BoundVar): + def __init__(self, value_str, *, min_value=None, max_value=None, **kwargs): + super().__init__(value_str, frame_depth=2, **kwargs) + self._min_value = min_value + self._max_value = max_value + self.add_validator(self.float_validator) + + def float_validator(self, value): + try: + t = type(value) + if t is str: nv = float(re.sub(r'[^\d.]', '', value)) + elif t is int: nv = float(value) + elif t is float: nv = value + else: assert False, 'Unhandled type of value: %s (%s)' % (str(value), str(t)) + if self._min_value is not None: nv = max(nv, self._min_value) + if self._max_value is not None: nv = min(nv, self._max_value) + return nv + except ValueError as e: + raise IgnoreChange() + except Exception: + # ignoring all exceptions? + raise IgnoreChange() + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/colors.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/colors.py new file mode 100644 index 0000000..edadcd3 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/colors.py @@ -0,0 +1,181 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + + +##################################################################################### +# below are various token converters + +# dictionary to convert color name to color values, either (R,G,B) or (R,G,B,a) +# https://www.quackit.com/css/css_color_codes.cfm + +colorname_to_color = { + 'transparent': (255, 0, 255, 0), + + # https://www.quackit.com/css/css_color_codes.cfm + 'indianred': (205,92,92), + 'lightcoral': (240,128,128), + 'salmon': (250,128,114), + 'darksalmon': (233,150,122), + 'lightsalmon': (255,160,122), + 'crimson': (220,20,60), + 'red': (255,0,0), + 'firebrick': (178,34,34), + 'darkred': (139,0,0), + 'pink': (255,192,203), + 'lightpink': (255,182,193), + 'hotpink': (255,105,180), + 'deeppink': (255,20,147), + 'mediumvioletred': (199,21,133), + 'palevioletred': (219,112,147), + 'coral': (255,127,80), + 'tomato': (255,99,71), + 'orangered': (255,69,0), + 'darkorange': (255,140,0), + 'orange': (255,165,0), + 'gold': (255,215,0), + 'yellow': (255,255,0), + 'lightyellow': (255,255,224), + 'lemonchiffon': (255,250,205), + 'lightgoldenrodyellow': (250,250,210), + 'papayawhip': (255,239,213), + 'moccasin': (255,228,181), + 'peachpuff': (255,218,185), + 'palegoldenrod': (238,232,170), + 'khaki': (240,230,140), + 'darkkhaki': (189,183,107), + 'lavender': (230,230,250), + 'thistle': (216,191,216), + 'plum': (221,160,221), + 'violet': (238,130,238), + 'orchid': (218,112,214), + 'fuchsia': (255,0,255), + 'magenta': (255,0,255), + 'mediumorchid': (186,85,211), + 'mediumpurple': (147,112,219), + 'blueviolet': (138,43,226), + 'darkviolet': (148,0,211), + 'darkorchid': (153,50,204), + 'darkmagenta': (139,0,139), + 'purple': (128,0,128), + 'rebeccapurple': (102,51,153), + 'indigo': (75,0,130), + 'mediumslateblue': (123,104,238), + 'slateblue': (106,90,205), + 'darkslateblue': (72,61,139), + 'greenyellow': (173,255,47), + 'chartreuse': (127,255,0), + 'lawngreen': (124,252,0), + 'lime': (0,255,0), + 'limegreen': (50,205,50), + 'palegreen': (152,251,152), + 'lightgreen': (144,238,144), + 'mediumspringgreen': (0,250,154), + 'springgreen': (0,255,127), + 'mediumseagreen': (60,179,113), + 'seagreen': (46,139,87), + 'forestgreen': (34,139,34), + 'green': (0,128,0), + 'darkgreen': (0,100,0), + 'yellowgreen': (154,205,50), + 'olivedrab': (107,142,35), + 'olive': (128,128,0), + 'darkolivegreen': (85,107,47), + 'mediumaquamarine': (102,205,170), + 'darkseagreen': (143,188,143), + 'lightseagreen': (32,178,170), + 'darkcyan': (0,139,139), + 'teal': (0,128,128), + 'aqua': (0,255,255), + 'cyan': (0,255,255), + 'lightcyan': (224,255,255), + 'paleturquoise': (175,238,238), + 'aquamarine': (127,255,212), + 'turquoise': (64,224,208), + 'mediumturquoise': (72,209,204), + 'darkturquoise': (0,206,209), + 'cadetblue': (95,158,160), + 'steelblue': (70,130,180), + 'lightsteelblue': (176,196,222), + 'powderblue': (176,224,230), + 'lightblue': (173,216,230), + 'skyblue': (135,206,235), + 'lightskyblue': (135,206,250), + 'deepskyblue': (0,191,255), + 'dodgerblue': (30,144,255), + 'cornflowerblue': (100,149,237), + 'royalblue': (65,105,225), + 'blue': (0,0,255), + 'mediumblue': (0,0,205), + 'darkblue': (0,0,139), + 'navy': (0,0,128), + 'midnightblue': (25,25,112), + 'cornsilk': (255,248,220), + 'blanchedalmond': (255,235,205), + 'bisque': (255,228,196), + 'navajowhite': (255,222,173), + 'wheat': (245,222,179), + 'burlywood': (222,184,135), + 'tan': (210,180,140), + 'rosybrown': (188,143,143), + 'sandybrown': (244,164,96), + 'goldenrod': (218,165,32), + 'darkgoldenrod': (184,134,11), + 'peru': (205,133,63), + 'chocolate': (210,105,30), + 'saddlebrown': (139,69,19), + 'sienna': (160,82,45), + 'brown': (165,42,42), + 'maroon': (128,0,0), + 'white': (255,255,255), + 'snow': (255,250,250), + 'honeydew': (240,255,240), + 'mintcream': (245,255,250), + 'azure': (240,255,255), + 'aliceblue': (240,248,255), + 'ghostwhite': (248,248,255), + 'whitesmoke': (245,245,245), + 'seashell': (255,245,238), + 'beige': (245,245,220), + 'oldlace': (253,245,230), + 'floralwhite': (255,250,240), + 'ivory': (255,255,240), + 'antiquewhite': (250,235,215), + 'linen': (250,240,230), + 'lavenderblush': (255,240,245), + 'mistyrose': (255,228,225), + 'gainsboro': (220,220,220), + 'lightgray': (211,211,211), + 'lightgrey': (211,211,211), + 'silver': (192,192,192), + 'darkgray': (169,169,169), + 'darkgrey': (169,169,169), + 'gray': (128,128,128), + 'grey': (128,128,128), + 'dimgray': (105,105,105), + 'dimgrey': (105,105,105), + 'lightslategray': (119,136,153), + 'lightslategrey': (119,136,153), + 'slategray': (112,128,144), + 'slategrey': (112,128,144), + 'darkslategray': (47,79,79), + 'darkslategrey': (47,79,79), + 'black': (0,0,0), +} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/config/ui_defaultstyles.css b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/config/ui_defaultstyles.css new file mode 100644 index 0000000..8d44aa9 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/config/ui_defaultstyles.css @@ -0,0 +1,687 @@ +/* + +https://en.wikipedia.org/wiki/Flat_design#/media/File:Flat_widgets.png +https://bulma.io/documentation/elements/button/ + +*/ + +* { + margin: 2px 2px; + padding: 4px 8px; + + width: auto; + height: auto; + min-width: 0; + min-height: 0; + max-width: auto; + max-height: auto; + + background-color: transparent; + + border-width: 1px; + border-color: rgba(0, 0, 0, 0.75); + border-radius: 4px; + + overflow: hidden; + font: normal normal 12pt sans-serif; +} + +body { + position: fixed; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + border: 4px rgba(0,0,0,0.25); + border-radius: 8px; + cursor: default; + overflow: hidden; +} + +button { + white-space: normal; + cursor: default; + display: inline; + border-width: 0px; + border-radius: 4px; + border-color: white rgb(96,96,96) rgb(32,32,32) rgb(224,224,224); + background: rgba(160,160,160, 0.50); + color: black; +} +button:focus { + /*background: yellow;*/ + /*background: lightcyan;*/ + background: rgba(160,160,160, 1.00); +} +button:active { + /*background: rgb(192,128,128);*/ + background: hsla(200, 100%, 62.5%, 1.0); /* rgba(128,224,255,0.5); */ +} +button:hover { + background: rgba(160, 160, 160, 1.00); /* hsla(200, 100%, 62.5%, 1.0); /* rgb(64,192,255); */ +} +button:active:hover { + background: hsla(200, 100%, 62.5%, 1.0); /*rgb(128,224,255);*/ +} +button:disabled { + background-color: rgb(128,128,128); + color: rgb(192,192,192); + /*border-width: 1px;*/ + border-color: rgb(96,96,96); + cursor: default; +} + +p { + display: block; + width: 100%; + /*margin: 2px 0px;*/ + padding: 2px; + border-width: 0px; + color: white; +} + +p span { + margin: 0; + padding: 0; + border-width: 0; +} + +code { + font-family: monospace; + white-space: pre; +} + +pre { + width: 100%; + display: block; + font-family: monospace; + background-color: rgba(128, 128, 128, 0.5); + font-size: 10pt; + white-space: pre-wrap; +} + +textarea { + display: block; + width: 100%; + /*margin: 2px 0px;*/ + padding: 4px; + background-color: rgba(255,255,255,0.9); + border: 1px black; + border-radius: 4px; + color: black; + cursor: text; +} + +div { + background-color: rgba(0,0,0,0.25); + display: block; + width: 100%; + margin: 2px 0px; + padding: 2px; +} + +br { + display: block; + width: 0px; + height: 0px; + margin: 0px; + padding: 0px; + border-width: 0px; +} + +img { + /*max-width: 100%;*/ + object-fit: contain; + border-width: 1px; + border-color: rgba(0,0,0,0.25); + background-color: hsla(200, 100%, 62.5%, 0.0); /* rgba(255,0,0,0); */ + padding: 2px; +} + +span { + color: white; + border-width: 0px; +} + +/* make sure we handle cases correctly! */ +input { + background: red; +} + +dialog { + position: fixed; + border-radius: 4px; + border: 1px black; + background: rgba(32, 32, 32, 0.75); + /*overflow-x: scroll;*/ + overflow-y: scroll; + color: white; + width: 500px; + /*max-width: 750px;*/ + min-width: 200px; +} + +dialog.framed { + border: 2px rgba(0,0,0,0.75); + border-radius: 5px; + overflow: hidden; + padding: 0px; + margin: 5px; +} + +div.dialog-header { + background: hsla(200, 0%, 25%, 0.75); /* hsla(0, 0%, 25%, 0.75); */ + margin: 0px; + padding: 2px; + border: 1px rgba(0,0,0,0.25) rgba(0,0,0,0.25) rgba(0,0,0,1) rgba(0,0,0,0.25); + border-radius: 0px; +} + +dialog.framed.moveable div.dialog-header { + cursor: grab; +} +dialog.framed.moveable div.dialog-header:hover { + background-color: hsla(200, 25%, 40%, 0.75); /* hsla(0,0%,40%,0.75);*/ +} +dialog.framed.moveable div.dialog-header:active { + background-color: hsla(200, 100%, 60%, 0.75); /*hsla(0,0%,40%,0.5);*/ +} + +span.dialog-title { + margin: 0px; + border: 0px white; + padding: 2px; + color: white; + /*font-weight: bold;*/ + white-space: pre; + cursor: grab; + text-shadow: 2px 2px rgba(0,0,0,0.25); +} + +button.dialog-close { + margin: 0px; + padding: 2px; + border: 0px; + display: inline; + width: 16px; + height: 16px; + background: url('close.png'); +} + +dialog.framed > div.inside { + margin: 0px; + border-width: 1px; + border-radius: 0px; + border-color: rgba(0,0,0,1.0) rgba(0,0,0,0.25) rgba(0,0,0,0.25) rgba(0,0,0,0.25); + padding: 5px 2px 2px 2px; +} + +div.dialog-footer { + position: absolute; + left: auto; + right: 50px; + top: -200px; + width: 100%; + /*bottom: 0px;*/ + background: hsla(200, 0%, 25%, 0.75); /* hsla(0, 0%, 25%, 0.75); */ + margin: 0px; + padding: 2px; + border: 1px rgba(0,0,0,1) rgba(0,0,0,0.25) rgba(0,0,0,0.25) rgba(0,0,0,0.25); + border-radius: 0px; +} + +div.dialog-footer > * { + margin: 0px; + border: 0px white; + padding: 2px; +} + + +/**********************/ +/* INPUT CHECKBOX */ + +input[type="checkbox"] { + background-color: transparent; + border-width: 0px; + padding: 0px; +} + +input[type="checkbox"] > img.checkbox { + margin: 0; + padding: 4px; + margin-right: 5px; + border-width: 0px; + width: 29px; + height: 24px; + background-color: rgba(160, 160, 160, 0.50); /* hsla(200, 0%, 62.5%, 1.0);*/ + background-image: none; +} +input[type="checkbox"]:hover > img.checkbox { + background-color: rgba(160, 160, 160, 1.00); /* hsla(200, 0%, 75%, 1.0); */ +} +input[type="checkbox"][checked] > img.checkbox { + background-color: hsla(200, 100%, 62.5%, 1.0); + background-image: url('checkmark.png'); +} +input[type="checkbox"]:active > img.checkbox { + background-color: hsla(200, 100%, 75%, 1.0); +} + +input[type="checkbox"] > label { + color: rgba(255, 255, 255, 0.50); + margin: 0px; + padding: 0px; + padding-top: 3px; + padding-right: 10px; + border-width: 0px; +} +input[type="checkbox"]:hover > label { + color: rgba(255, 255, 255, 1.00); +} +input[type="checkbox"][checked] > label { + color: rgba(255, 255, 255, 1.00); +} + + +/*******************/ +/* INPUT RADIO */ + +input[type="radio"] { + background-color: transparent; + border-width: 0px; + padding: 0px; +} + +input[type="radio"] > img.radio { + margin: 0; + padding: 4px; + margin-right: 5px; + border: 0px; + border-radius: 12px; + width: 29px; + height: 24px; + background-color: rgba(160, 160, 160, 0.50); /* hsla(200, 0%, 62.5%, 1.0);*/ + background-image: none; +} +input[type="radio"]:hover > img.radio { + background-color: rgba(160, 160, 160, 1.00); /* hsla(200, 0%, 75%, 1.0); */ +} +input[type="radio"]:active > img.radio { + background-color: hsla(200, 100%, 75%, 1.0); +} +input[type="radio"][checked] > img.radio { + background: hsla(200, 100%, 62.5%, 1.0) url('radio.png'); +} + +input[type="radio"] > label { + color: rgba(255, 255, 255, 0.50); + margin: 0px; + padding: 0px; + padding-top: 3px; + padding-right: 10px; + border-width: 0px; +} +input[type="radio"]:hover > label { + color: rgba(255, 255, 255, 1.00); +} +input[type="radio"][checked] > label { + color: rgba(255, 255, 255, 1.00); +} + + +div.collapsible > input.header { + display: block; + width: 100%; +} +div.collapsible > input.header > img { + background: transparent url('collapse_open.png'); +} +div.collapsible > input.header[checked] > img { + background: transparent url('collapse_close.png'); +} +div.collapsible > div.inside { + display: block; + margin-top: 2px; + margin-left: 16px; +} +div.collapsible > div.inside.collapsed { + display: none; +} + + + +/*******************/ +/* MARKDOWN */ + + +div.mdown { + margin: 2px; + border: 1px rgba(0,0,0,0.5); + padding: 4px 4px 4px 4px; + /*padding: 4px 4px 16px 4px;*/ + background: rgba(0,0,0,0.25); +} + +div.mdown div { + margin: 0; + padding: 0; + border: 0; +} +div.mdown span { + margin: 0; + padding: 0; + border: 0; +} + +table { + width: 100%; + display: table; + background: rgba(0,0,0,0.2); + border: 1px rgba(0,0,0,1); + margin: 0px 10px; + padding: 4px; +} +tr { + width: 100%; + display: table-row; + margin: 0px 0px; + border: 0px; + padding: 0px 2px; +} +th { + display: table-cell; + margin: 0px; + border: 0px; + padding: 2px; +} +td { + display: table-cell; + margin: 0px; + border: 0px; + padding: 2px; +} + +div.mdown h1 { + width: 100%; + margin: 0px 4px 4px 4px; + padding: 4px 4px 4px 12px; + border: 0px; +} +div.mdown h1 > span { + font-size: 24; + font-weight: bold; + text-shadow: 2px 2px rgba(0,0,0,0.5); +} + +div.mdown h2 { + width: 100%; + margin: 8px 4px 4px 4px; + padding: 4px 4px 4px 12px; + border: 1px transparent; + border-bottom-color: rgba(255, 255, 255, 0.25); + border-radius: 0px; +} +div.mdown h2 > span { + font-size: 18; + font-weight: bold; + text-shadow: 2px 2px rgba(0,0,0,0.5); +} + +div.mdown h3 { + width: 100%; + margin: 8px 4px 4px 4px; + padding: 4px 4px 4px 12px; + border: 1px transparent; + border-bottom-color: rgba(255, 255, 255, 0.125); + border-radius: 0px; +} +div.mdown h3 > span { + font-size: 15; + font-weight: bold; + text-shadow: 2px 2px rgba(0,0,0,0.5); +} + +div.mdown img { + display: block; + width: 100%; + border: 0px rgba(0, 0, 0, 0.25); + border-radius: 4px; + padding: 0px; +} + +div.mdown p { } + +div.mdown i { + margin: 0px; + padding: 0px; + border: 0px; + font-style: italic; +} + +div.mdown b { + margin: 0px; + padding: 0px; + border: 0px; + font-weight: bold; +} + +div.mdown pre { + font-family: monospace; + white-space: pre; + margin: 0px; + padding: 0px 4px; + background-color: rgba(255, 255, 255, 0.25); +} + +div.mdown code { + font-family: monospace; + white-space: pre; + margin: 0px; + padding: 0px 4px; + background-color: rgba(255, 255, 255, 0.25); +} + + +div.mdown ul { + margin: 0px; + border: 0px; + padding: 0px; + display: block; +} + +div.mdown ul > li { + /*margin: 8px 0px;*/ + margin: 0px; + border: 0px; + padding: 0px; + padding: 0px 0px 0px 8px; + display: block; +} +div.mdown ul > li > img.dot { + display: inline; + margin: 5px 10px 0px 5px; + border: 0px; + padding: 0px; + width: 20px; + height: 10px; +} +div.mdown ul > li > span.text { + margin: 0px; + border: 0px; + padding: 0px; + display: inline; +} + + +div.mdown ol { + margin: 0px; + border: 0px; + padding: 0px; + display: block; +} + +div.mdown ol > li { + /*margin: 8px 0px;*/ + margin: 0px; + border: 0px; + padding: 0px; + padding: 0px 0px 0px 8px; + display: block; +} +div.mdown ol > li > span.number { + display: inline; + margin: 0px; + border: 0px; + padding: 0px; + width: 20px; + /*height: 10px;*/ +} +div.mdown ol > li > span.text { + margin: 0px 0px 0px 8px; + border: 0px; + padding: 0px; + display: inline; +} + + + +div.mdown a { + padding: -1px; + margin: 0px; + border: 1px transparent; + border-radius: 0px; + border-bottom-color: rgba(255,255,255,0.5); + cursor: pointer; +} + +div.mdown img.inline { + display: inline; + border: 0px; +} + + + + +/**********************/ +/* INPUT TEXT */ + + +*.inputtext-container { + margin: 0px; + position: relative; /*relative;*/ + left: 0px; + top: 0px; + width: 100%; + min-height: 28px; + padding: 0px; + display: block; + background: rgba(160,160,160, 0.50); + /*background-color: rgba(255,255,255,0.5);*/ + border-width: 1px; + border-radius: 4px; + border-color: black; +} +*.inputtext-container:hover { + background-color: rgba(160,160,160,1.00); +} + +*.inputtext-container > *.inputtext-input { + position: relative; /* necessary for cursor! */ + left: 0px; + top: 0px; + background-color: transparent; + white-space: pre; + display: block; + width: 100%; + min-height: 26px; + margin: 0px; + padding: 3px; + border-width: 2px; + border-color: transparent; + color: black; + overflow-x: scroll; + cursor: text; +} +*.inputtext-container > *.inputtext-input:focus { + background-color: rgba(255, 255, 255, 1.0); + border-color: hsla(200, 100%, 62.5%, 1.0); +} + +*.inputtext-cursor { + position: absolute; + margin: 0px; + padding: 0px; + border-width: 0px; + left: 0px; + top: 0px; + display: none; + color: hsla(200, 100%, 12.5%, 1.0); /* l=62.5% */ +} + +*.inputtext-input:focus > *.inputtext-cursor { + display: inline; +} + + + +*.labeledinputtext-container { + margin: 2px; + border: 0px; + padding: 0px; + display: block; + width: 100%; + background: transparent; +} +*.labeledinputtext-container > *.labeledinputtext-label-container { + margin: 0px; + border: 0px; + padding: 4px 0px 0px 0px; + display: inline; + width: 50%; + background: transparent; +} +*.labeledinputtext-container > *.labeledinputtext-label-container > *.labeledinputtext-label { + margin: 0px; + border: 0px; + padding: 0px; + display: block; + width: 100%; + background: transparent; +} +*.labeledinputtext-container > *.labeledinputtext-input-container { + margin: 0px; + border: 0px; + padding: 0px; + display: inline; + width: 50%; +} +*.labeledinputtext-container > *.labeledinputtext-input-container > *.inputtext-container { + margin: 0px; + border: 0px; + padding: 0px; + display: block; + width: 100%; + /*max-height: 22px;*/ + height: 26px; +} +*.labeledinputtext-container > *.labeledinputtext-input-container > *.inputtext-container > *.inputtext-input { + margin: 0px; + white-space: pre; +} + + + +body > dialog.tooltip { + z-index: 100000; + position: fixed; + /*display: block;*/ + border: 1px black; + background: rgba(64,64,64, 0.95); + color: white; + margin: 2px; + padding: 4px; + width: auto; + min-width: 0px; + max-width: 300px; +} + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/debug.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/debug.py new file mode 100644 index 0000000..1e615c1 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/debug.py @@ -0,0 +1,207 @@ +''' +Copyright (C) 2014 Plasmasolutions +software@plasmasolutions.de + +Created by Thomas Beck +Donated to CGCookie and the world + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +''' +Note: not all of the following code was provided by Plasmasolutions +TODO: split into separate files? +''' + +# System imports +import os +import sys +import time +import inspect +import itertools +import linecache +import traceback +from datetime import datetime +from hashlib import md5 + +from .globals import Globals +from .blender import show_blender_popup +from .hasher import Hasher + + +class Debugger: + _error_level = 1 + _exception_count = 0 + + def __init__(self): + pass + + @staticmethod + def set_error_level(l): + Debugger._error_level = max(0, min(5, int(l))) + + @staticmethod + def get_error_level(): + return Debugger._error_level + + @staticmethod + def dprint(*objects, sep=' ', end='\n', file=sys.stdout, flush=True, l=2): + if Debugger._error_level < l: return + sobjects = sep.join(str(o) for o in objects) + print( + 'DEBUG(%i): %s' % (l, sobjects), + end=end, file=file, flush=flush + ) + + @staticmethod + def dcallstack(l=2): + ''' print out the calling stack, skipping the first (call to dcallstack) ''' + Debugger.dprint('Call Stack Dump:', l=l) + for i, entry in enumerate(inspect.stack()): + if i > 0: + Debugger.dprint(' %s' % str(entry), l=l) + + # http://stackoverflow.com/questions/14519177/python-exception-handling-line-number + @staticmethod + def get_exception_info_and_hash(): + ''' + this function is a duplicate of the one above, but this will attempt + to create a hash to make searching for duplicate bugs on github easier (?) + ''' + + exc_type, exc_obj, tb = sys.exc_info() + pathabs, pathdir = os.path.abspath, os.path.dirname + pathjoin, pathsplit = os.path.join, os.path.split + base_path = pathabs(pathjoin(pathdir(__file__), '..')) + + hasher = Hasher() + errormsg = ['EXCEPTION (%s): %s' % (exc_type, exc_obj)] + hasher.add(errormsg[0]) + # errormsg += ['Base: %s' % base_path] + + etb = traceback.extract_tb(tb) + pfilename = None + for i,entry in enumerate(reversed(etb)): + filename,lineno,funcname,line = entry + if pfilename is None: + # only hash in details of where the exception occurred + hasher.add(os.path.split(filename)[1]) + # hasher.add(lineno) + hasher.add(funcname) + hasher.add(line.strip()) + if filename != pfilename: + pfilename = filename + if filename.startswith(base_path): + filename = '.../%s' % filename[len(base_path)+1:] + errormsg += [' %s' % (filename, )] + errormsg += ['%03d %04d:%s() %s' % (i, lineno, funcname, line.strip())] + + return ('\n'.join(errormsg), hasher.get_hash()) + + @staticmethod + def print_exception(): + Debugger._exception_count += 1 + errormsg, errorhash = Debugger.get_exception_info_and_hash() + message = [] + message += ['Exception Info'] + message += ['- Time: %s' % datetime.today().isoformat(' ')] + message += ['- Count: %d' % Debugger._exception_count] + message += ['- Hash: %s' % str(errorhash)] + message += ['- Info:'] + message += [' - %s' % s for s in errormsg.splitlines()] + message = '\n'.join(message) + print('%s\n%s\n%s' % ('_' * 100, message, '^' * 100)) + logger = Globals.logger + if logger: logger.add(message) # write error to log text object + # if Debugger._exception_count < 10: + # show_blender_popup( + # message, + # title='Exception Info', + # icon='ERROR', + # wrap=240 + # ) + return message + + # @staticmethod + # def print_exception2(): + # exc_type, exc_value, exc_traceback = sys.exc_info() + # print("*** print_tb:") + # traceback.print_tb(exc_traceback, limit=1, file=sys.stdout) + # print("*** print_exception:") + # traceback.print_exception(exc_type, exc_value, exc_traceback, + # limit=2, file=sys.stdout) + # print("*** print_exc:") + # traceback.print_exc() + # print("*** format_exc, first and last line:") + # formatted_lines = traceback.format_exc().splitlines() + # print(formatted_lines[0]) + # print(formatted_lines[-1]) + # print("*** format_exception:") + # print(repr(traceback.format_exception(exc_type, exc_value,exc_traceback))) + # print("*** extract_tb:") + # print(repr(traceback.extract_tb(exc_traceback))) + # print("*** format_tb:") + # print(repr(traceback.format_tb(exc_traceback))) + # if exc_traceback: + # print("*** tb_lineno:", exc_traceback.tb_lineno) + + +class ExceptionHandler: + _universal = [] + + def __init__(self, universal=False): + self._single = [] + self._universal_only = universal + + @staticmethod + def add_universal_callback(fn): + ExceptionHandler._universal += [fn] + + def add_callback(self, fn, universal=None): + if universal: + self._universal += [fn] + if universal is None and self._universal_only: + self._universal += [fn] + else: + self._single += [fn] + + def wrap(self, def_val, only=Exception): + def wrapper(fn): + def wrapped(*args, **kwargs): + ret = def_val + try: + ret = fn(*args, **kwargs) + except only as e: + self.handle_exception(e) + return ret + return wrapped + return wrapper + + def handle_exception(self, e): + for fn in itertools.chain(self._universal, self._single): + try: + fn(e) + except Exception as e2: + print('Caught exception while calling back exception callbacks: %s' % fn.__name__) + print('original: %s' % str(e)) + print('additional: %s' % str(e2)) + debugger.print_exception() + + +debugger = Debugger() +dprint = debugger.dprint +exceptionhandler = ExceptionHandler(universal=True) +Globals.set(debugger) +Globals.dprint = dprint +Globals.exceptionhandler = exceptionhandler diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/decorators.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/decorators.py new file mode 100644 index 0000000..252e39d --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/decorators.py @@ -0,0 +1,308 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import os +import json +import time +import inspect + +import bpy + + +debug_run_test_calls = False +def debug_test_call(*args, **kwargs): + def wrapper(fn): + if debug_run_test_calls: + ret = str(fn(*args,*kwargs)) + print('TEST: %s()' % fn.__name__) + if args: + print(' arg:', args) + if kwargs: + print(' kwa:', kwargs) + print(' ret:', ret) + return fn + return wrapper + + + +def stats_wrapper(fn): + return fn + + if not hasattr(stats_report, 'stats'): + stats_report.stats = dict() + frame = inspect.currentframe().f_back + f_locals = frame.f_locals + + filename = os.path.basename(frame.f_code.co_filename) + clsname = f_locals['__qualname__'] if '__qualname__' in f_locals else '' + linenum = frame.f_lineno + fnname = fn.__name__ + key = '%s%s (%s:%d)' % ( + clsname + ('.' if clsname else ''), + fnname, filename, linenum + ) + stats = stats_report.stats + stats[key] = { + 'filename': filename, + 'clsname': clsname, + 'linenum': linenum, + 'fileline': '%s:%d' % (filename, linenum), + 'fnname': fnname, + 'count': 0, + 'total time': 0, + 'average time': 0, + } + + def wrapped(*args, **kwargs): + time_beg = time.time() + ret = fn(*args, **kwargs) + time_end = time.time() + time_delta = time_end - time_beg + d = stats[key] + d['count'] += 1 + d['total time'] += time_delta + d['average time'] = d['total time'] / d['count'] + return ret + return wrapped + + +def stats_report(): + return + + stats = stats_report.stats if hasattr(stats_report, 'stats') else dict() + l = max(len(k) for k in stats) + + def fmt(s): + return s + ' ' * (l - len(s)) + + print() + print('Call Statistics Report') + + cols = [ + ('class', 'clsname', '%s'), + ('func', 'fnname', '%s'), + ('location', 'fileline', '%s'), + # ('line','linenum','% 10d'), + ('count', 'count', '% 8d'), + ('total (sec)', 'total time', '% 10.4f'), + ('avg (sec)', 'average time', '% 10.6f'), + ] + data = [stats[k] for k in sorted(stats)] + data = [[h] + [f % row[c] for row in data] for (h, c, f) in cols] + colwidths = [max(len(d) for d in col) for col in data] + totwidth = sum(colwidths) + len(colwidths) - 1 + + def rpad(s, l): + return '%s%s' % (s, ' ' * (l - len(s))) + + def printrow(i_row): + row = [col[i_row] for col in data] + print(' '.join(rpad(d, w) for (d, w) in zip(row, colwidths))) + + printrow(0) + print('-' * totwidth) + for i in range(1, len(data[0])): + printrow(i) + + +class LimitRecursion: + def __init__(self, count, def_ret): + self.count = count + self.def_ret = def_ret + self.calls = 0 + + def __call__(self, fn): + def wrapped(*args, **kwargs): + ret = self.def_ret + if self.calls < self.count: + try: + self.calls += 1 + ret = fn(*args, **kwargs) + finally: + self.calls -= 1 + return ret + return wrapped + + +def timed_call(label): + def wrapper(fn): + def wrapped(*args, **kwargs): + time_beg = time.time() + ret = fn(*args, **kwargs) + time_end = time.time() + time_delta = time_end - time_beg + print('Timing: %0.4fs, %s' % (time_delta, label)) + return ret + return wrapped + return wrapper + + +# corrected bug in previous version of blender_version fn wrapper +# https://github.com/CGCookie/retopoflow/commit/135746c7b4ee0052ad0c1842084b9ab983726b33#diff-d4260a97dcac93f76328dfaeb5c87688 +def blender_version_wrapper(op, ver): + self = blender_version_wrapper + if not hasattr(self, 'fns'): + major, minor, rev = bpy.app.version + self.blenderver = '%d.%02d' % (major, minor) + self.fns = fns = {} + self.ops = { + '<': lambda v: self.blenderver < v, + '>': lambda v: self.blenderver > v, + '<=': lambda v: self.blenderver <= v, + '==': lambda v: self.blenderver == v, + '>=': lambda v: self.blenderver >= v, + '!=': lambda v: self.blenderver != v, + } + + update_fn = self.ops[op](ver) + def wrapit(fn): + nonlocal self, update_fn + fn_name = fn.__name__ + fns = self.fns + error_msg = "Could not find appropriate function named %s for version Blender %s" % (fn_name, self.blenderver) + + if update_fn: fns[fn_name] = fn + + def callit(*args, **kwargs): + nonlocal fns, fn_name, error_msg + fn = fns.get(fn_name, None) + assert fn, error_msg + ret = fn(*args, **kwargs) + return ret + + return callit + return wrapit + +class PersistentOptions: + class WrappedDict: + def __init__(self, cls, filename, version, defaults, update_external): + self._dirty = False + self._last_save = time.time() + self._write_delay = 2.0 + self._defaults = defaults + self._update_external = update_external + self._defaults['persistent options version'] = version + self._dict = {} + if filename: + src = inspect.getsourcefile(cls) + path = os.path.split(os.path.abspath(src))[0] + self._fndb = os.path.join(path, filename) + else: + self._fndb = None + self.read() + if self._dict.get('persistent options version', None) != version: + self.reset() + self.update_external() + def update_external(self): + upd = self._update_external + if upd: + upd() + def dirty(self): + self._dirty = True + self.update_external() + def clean(self, force=False): + if not force: + if not self._dirty: + return + if time.time() < self._last_save + self._write_delay: + return + if self._fndb: + json.dump(self._dict, open(self._fndb, 'wt'), indent=2, sort_keys=True) + self._dirty = False + self._last_save = time.time() + def read(self): + self._dict = {} + if self._fndb and os.path.exists(self._fndb): + try: + self._dict = json.load(open(self._fndb, 'rt')) + except Exception as e: + print('Exception caught while trying to read options from "%s"' % self._fndb) + print(str(e)) + for k in set(self._dict.keys()) - set(self._defaults.keys()): + print('Deleting extraneous key "%s" from options' % k) + del self._dict[k] + self.update_external() + self._dirty = False + def keys(self): + return self._defaults.keys() + def reset(self): + keys = list(self._dict.keys()) + for k in keys: + del self._dict[k] + self._dict['persistent options version'] = self['persistent options version'] + self.dirty() + self.clean() + def __getitem__(self, key): + return self._dict[key] if key in self._dict else self._defaults[key] + def __setitem__(self, key, val): + assert key in self._defaults, 'Attempting to write "%s":"%s" to options, but key does not exist in defaults' % (str(key), str(val)) + if self[key] == val: return + self._dict[key] = val + self.dirty() + self.clean() + def gettersetter(self, key, fn_get_wrap=None, fn_set_wrap=None): + if not fn_get_wrap: fn_get_wrap = lambda v: v + if not fn_set_wrap: fn_set_wrap = lambda v: v + oself = self + class GetSet: + def get(self): + return fn_get_wrap(oself[key]) + def set(self, v): + v = fn_set_wrap(v) + if oself[key] != v: + oself[key] = v + return GetSet() + + def __init__(self, filename=None, version=None): + self._filename = filename + self._version = version + self._db = None + + def __call__(self, cls): + upd = getattr(cls, 'update', None) + if upd: + u = upd + def wrap(): + def upd_wrap(*args, **kwargs): + u(None) + return upd_wrap + upd = wrap() + self._db = PersistentOptions.WrappedDict(cls, self._filename, self._version, cls.defaults, upd) + db = self._db + class WrappedClass: + def __init__(self, *args, **kwargs): + self._db = db + self._def = cls.defaults + def __getitem__(self, key): + return self._db[key] + def __setitem__(self, key, val): + self._db[key] = val + def keys(self): + return self._db.keys() + def reset(self): + self._db.reset() + def clean(self): + self._db.clean() + def gettersetter(self, key, fn_get_wrap=None, fn_set_wrap=None): + return self._db.gettersetter(key, fn_get_wrap=fn_get_wrap, fn_set_wrap=fn_set_wrap) + return WrappedClass + + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/drawing.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/drawing.py new file mode 100644 index 0000000..e90cc68 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/drawing.py @@ -0,0 +1,1251 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import os +import re +import math +import time +import random +from typing import List +import traceback +import functools +import contextlib +import urllib.request +from itertools import chain +from concurrent.futures import ThreadPoolExecutor + +import bpy +import bgl +from bpy.types import BoolProperty +from mathutils import Matrix, Vector +from bpy_extras.view3d_utils import location_3d_to_region_2d, region_2d_to_vector_3d +from bpy_extras.view3d_utils import region_2d_to_location_3d, region_2d_to_origin_3d + +from .hasher import Hasher +from .globals import Globals +from .shaders import Shader +from .blender import get_preferences, bversion +from .decorators import blender_version_wrapper +from .fontmanager import FontManager as fm +from .maths import Point2D, Vec2D, Point, Ray, Direction, mid, Color, Normal, Frame +from .profiler import profiler +from .debug import dprint, debugger +from .utils import find_fns,iter_pairs + + +class Cursors: + # https://docs.blender.org/api/current/bpy.types.Window.html#bpy.types.Window.cursor_set + _cursors = { + + # blender cursors + 'DEFAULT': 'DEFAULT', + 'NONE': 'NONE', + 'WAIT': 'WAIT', + 'CROSSHAIR': 'CROSSHAIR', + 'MOVE_X': 'MOVE_X', + 'MOVE_Y': 'MOVE_Y', + 'KNIFE': 'KNIFE', + 'TEXT': 'TEXT', + 'PAINT_BRUSH': 'PAINT_BRUSH', + 'HAND': 'HAND', + 'SCROLL_X': 'SCROLL_X', + 'SCROLL_Y': 'SCROLL_Y', + 'EYEDROPPER': 'EYEDROPPER', + + # lower case version of blender cursors + 'default': 'DEFAULT', + 'none': 'NONE', + 'wait': 'WAIT', + 'crosshair': 'CROSSHAIR', + 'move_x': 'MOVE_X', + 'move_y': 'MOVE_Y', + 'knife': 'KNIFE', + 'text': 'TEXT', + 'paint_brush': 'PAINT_BRUSH', + 'hand': 'HAND', + 'scroll_x': 'SCROLL_X', + 'scroll_y': 'SCROLL_Y', + 'eyedropper': 'EYEDROPPER', + } + + @staticmethod + def __getattr__(cursor): + assert cursor in Cursors._cursors + return Cursors._cursors.get(cursor, 'DEFAULT') + + @staticmethod + def set(cursor): + # print('Cursors.set', cursor) + cursor = Cursors._cursors.get(cursor, 'DEFAULT') + for wm in bpy.data.window_managers: + for win in wm.windows: + win.cursor_modal_set(cursor) + + @property + @staticmethod + def cursor(): return 'DEFAULT' # TODO: how to get?? + @cursor.setter + @staticmethod + def cursor(cursor): Cursors.set(cursor) + + @staticmethod + def warp(x, y): bpy.context.window.cursor_warp(x, y) + +Globals.set(Cursors()) + + + + +if bversion() >= "2.80": + import gpu + from gpu.types import GPUShader + from gpu_extras.batch import batch_for_shader + + # https://docs.blender.org/api/blender2.8/gpu.html#triangle-with-custom-shader + + def create_shader(fn_glsl): + path_here = os.path.dirname(os.path.realpath(__file__)) + path_shaders = os.path.join(path_here, 'shaders') + path_glsl = os.path.join(path_shaders, fn_glsl) + txt = open(path_glsl, 'rt').read() + lines = txt.splitlines() + mode = 'common' + source = {'common':[], 'vertex':[], 'fragment':[]} + for line in lines: + if line == '// vertex shader': mode = 'vertex' + elif line == '// fragment shader': mode = 'fragment' + else: source[mode].append(line) + vert_source = '\n'.join(source['common'] + source['vertex']) + frag_source = '\n'.join(source['common'] + source['fragment']) + try: + return GPUShader(vert_source, frag_source) + except Exception as e: + print('ERROR WHILE COMPILING SHADER %s' % fn_glsl) + assert False + + # 2D point + shader_2D_point = create_shader('point_2D.glsl') + batch_2D_point = batch_for_shader(shader_2D_point, 'TRIS', {"pos": [(0,0), (1,0), (1,1), (0,0), (1,1), (0,1)]}) + + # 2D line segment + shader_2D_lineseg = create_shader('lineseg_2D.glsl') + batch_2D_lineseg = batch_for_shader(shader_2D_lineseg, 'TRIS', {"pos": [(0,0), (1,0), (1,1), (0,0), (1,1), (0,1)]}) + + # 2D circle + shader_2D_circle = create_shader('circle_2D.glsl') + # create batch to draw large triangle that covers entire clip space (-1,-1)--(+1,+1) + cnt = 100 + pts = [ + p for i0 in range(cnt) + for p in [ + ((i0+0)/cnt,0), ((i0+1)/cnt,0), ((i0+1)/cnt,1), + ((i0+0)/cnt,0), ((i0+1)/cnt,1), ((i0+0)/cnt,1), + ] + ] + batch_2D_circle = batch_for_shader(shader_2D_circle, 'TRIS', {"pos": pts}) + + # 3D circle + shader_3D_circle = create_shader('circle_3D.glsl') + # create batch to draw large triangle that covers entire clip space (-1,-1)--(+1,+1) + cnt = 100 + pts = [ + p for i0 in range(cnt) + for p in [ + ((i0+0)/cnt,0), ((i0+1)/cnt,0), ((i0+1)/cnt,1), + ((i0+0)/cnt,0), ((i0+1)/cnt,1), ((i0+0)/cnt,1), + ] + ] + batch_3D_circle = batch_for_shader(shader_3D_circle, 'TRIS', {"pos": pts}) + + # 3D triangle + shader_3D_triangle = create_shader('triangle_3D.glsl') + batch_3D_triangle = batch_for_shader(shader_3D_triangle, 'TRIS', {'pos': [(1,0), (0,1), (0,0)]}) + + # 3D triangle + shader_2D_triangle = create_shader('triangle_2D.glsl') + batch_2D_triangle = batch_for_shader(shader_2D_triangle, 'TRIS', {'pos': [(1,0), (0,1), (0,0)]}) + + + +class Drawing: + _instance = None + _dpi_mult = 1 + _custom_dpi_mult = 1 + _prefs = get_preferences() + + @staticmethod + def get_custom_dpi_mult(): + return Drawing._custom_dpi_mult + @staticmethod + def set_custom_dpi_mult(v): + Drawing._custom_dpi_mult = v + Drawing.update_dpi() + + @staticmethod + @blender_version_wrapper('<','2.79') + def update_dpi(): + dbl = 2 if Drawing._prefs.system.virtual_pixel_mode == 'DOUBLE' else 1 + Drawing._dpi_mult = int(Drawing._prefs.system.dpi * Drawing._prefs.system.pixel_size * dbl) / 72 + + @staticmethod + @blender_version_wrapper('==','2.79') + def update_dpi(): + Drawing._dpi_mult = Drawing._prefs.view.ui_scale * Drawing._prefs.system.pixel_size * Drawing._prefs.system.dpi / 72 + + @staticmethod + @blender_version_wrapper('>=','2.80') + def update_dpi(): + Drawing._dpi_mult = ( + 1.0 + * Drawing._custom_dpi_mult + * Drawing._prefs.view.ui_scale + * math.floor(Drawing._prefs.system.ui_scale) + * Drawing._prefs.system.dpi / 72 + # * Drawing._prefs.system.pixel_size + ) + + @staticmethod + def initialize(): + Drawing.update_dpi() + if Globals.is_set('drawing'): return + Drawing._creating = True + Globals.set(Drawing()) + del Drawing._creating + Drawing._instance = Globals.drawing + + def __init__(self): + assert hasattr(self, '_creating'), "Do not instantiate directly. Use Drawing.get_instance()" + + self.area,self.space,self.rgn,self.r3d,self.window = None,None,None,None,None + # self.font_id = 0 + self.last_font_key = None + self.fontid = 0 + self.fontsize = None + self.fontsize_scaled = None + self.line_cache = {} + self.size_cache = {} + self.set_font_size(12) + + def set_region(self, area, space, rgn, r3d, window): + self.area = area + self.space = space + self.rgn = rgn + self.r3d = r3d + self.window = window + + @staticmethod + def set_cursor(cursor): Cursors.set(cursor) + + def scale(self, s): return s * self._dpi_mult if s is not None else None + def unscale(self, s): return s / self._dpi_mult if s is not None else None + def get_dpi_mult(self): return self._dpi_mult + def get_pixel_size(self): return self._pixel_size + def line_width(self, width): bgl.glLineWidth(max(1, self.scale(width))) + def point_size(self, size): bgl.glPointSize(max(1, self.scale(size))) + + def set_font_color(self, fontid, color): + fm.color(color, fontid=fontid) + + def set_font_size(self, fontsize, fontid=None, force=False): + if fontid is None: fontid = fm._last_fontid + else: fontid = fm.load(fontid) + fontsize_prev = self.fontsize + fontsize, fontsize_scaled = int(fontsize), int(int(fontsize) * self._dpi_mult) + cache_key = (fontid, fontsize_scaled) + if self.last_font_key == cache_key and not force: return fontsize_prev + fm.size(fontsize_scaled, 72, fontid=fontid) + if cache_key not in self.line_cache: + # cache away useful details about font (line height, line base) + dprint('Caching new scaled font size:', cache_key) + all_chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()`~[}{]/?=+\\|-_\'",<.>' + all_caps = all_chars.upper() + self.line_cache[cache_key] = { + 'line height': round(fm.dimensions(all_chars, fontid=fontid)[1] + self.scale(4)), + 'line base': round(fm.dimensions(all_caps, fontid=fontid)[1]), + } + info = self.line_cache[cache_key] + self.line_height = info['line height'] + self.line_base = info['line base'] + self.fontid = fontid + self.fontsize = fontsize + self.fontsize_scaled = fontsize_scaled + self.last_font_key = cache_key + + return fontsize_prev + + def get_text_size_info(self, text, item, fontsize=None, fontid=None): + if fontsize or fontid: size_prev = self.set_font_size(fontsize, fontid=fontid) + + if text is None: text, lines = '', [] + elif type(text) is list: text, lines = '\n'.join(text), text + else: text, lines = text, text.splitlines() + + fontid = fm.load(fontid) + key = (text, self.fontsize_scaled, fontid) + # key = (text, self.fontsize_scaled, self.font_id) + if key not in self.size_cache: + d = {} + if not text: + d['width'] = 0 + d['height'] = 0 + d['line height'] = self.line_height + else: + get_width = lambda t: math.ceil(fm.dimensions(t, fontid=fontid)[0]) + get_height = lambda t: math.ceil(fm.dimensions(t, fontid=fontid)[1]) + d['width'] = max(get_width(l) for l in lines) + d['height'] = get_height(text) + d['line height'] = self.line_height * len(lines) + self.size_cache[key] = d + if False: + print('') + print('--------------------------------------') + print('> computed new size') + print('> key: %s' % str(key)) + print('> size: %s' % str(d)) + print('--------------------------------------') + print('') + if fontsize: self.set_font_size(size_prev, fontid=fontid) + return self.size_cache[key][item] + + def get_text_width(self, text, fontsize=None, fontid=None): + return self.get_text_size_info(text, 'width', fontsize=fontsize, fontid=fontid) + def get_text_height(self, text, fontsize=None, fontid=None): + return self.get_text_size_info(text, 'height', fontsize=fontsize, fontid=fontid) + def get_line_height(self, text=None, fontsize=None, fontid=None): + return self.get_text_size_info(text, 'line height', fontsize=fontsize, fontid=fontid) + + def set_clipping(self, xmin, ymin, xmax, ymax, fontid=None): + fm.clipping((xmin, ymin), (xmax, ymax), fontid=fontid) + # blf.clipping(self.font_id, xmin, ymin, xmax, ymax) + self.enable_clipping() + def enable_clipping(self, fontid=None): + fm.enable_clipping(fontid=fontid) + # blf.enable(self.font_id, blf.CLIPPING) + def disable_clipping(self, fontid=None): + fm.disable_clipping(fontid=fontid) + # blf.disable(self.font_id, blf.CLIPPING) + + def enable_stipple(self): + bgl.glLineStipple(4, 0x5555) + bgl.glEnable(bgl.GL_LINE_STIPPLE) + def disable_stipple(self): + bgl.glDisable(bgl.GL_LINE_STIPPLE) + def set_stipple(self, enable): + if enable: self.enable_stipple() + else: self.disable_stipple() + + @blender_version_wrapper('<', '2.80') + def text_color_set(self, color, fontid): + if color is not None: bgl.glColor4f(*color) + @blender_version_wrapper('>=', '2.80') + def text_color_set(self, color, fontid): + if color is not None: fm.color(color, fontid=fontid) + + def text_draw2D(self, text, pos:Point2D, *, color=None, dropshadow=None, fontsize=None, fontid=None, lineheight=True): + if fontsize: size_prev = self.set_font_size(fontsize, fontid=fontid) + + lines = str(text).splitlines() + l,t = round(pos[0]),round(pos[1]) + lh,lb = self.line_height,self.line_base + + if dropshadow: + self.text_draw2D(text, (l+1,t-1), color=dropshadow, fontsize=fontsize, fontid=fontid, lineheight=lineheight) + + bgl.glEnable(bgl.GL_BLEND) + self.text_color_set(color, fontid) + for line in lines: + fm.draw(line, xyz=(l, t - lb, 0), fontid=fontid) + t -= lh if lineheight else self.get_text_height(line) + + if fontsize: self.set_font_size(size_prev, fontid=fontid) + + @profiler.function + def text_draw2D_simple(self, text, pos:Point2D): + l,t = round(pos[0]),round(pos[1]) + lb = self.line_base + fm.draw_simple(text, xyz=(l, t - lb, 0)) + + + def get_mvp_matrix(self, view3D=True): + ''' + if view3D == True: returns MVP for 3D view + else: returns MVP for pixel view + TODO: compute separate M,V,P matrices + ''' + if not self.r3d: return None + if view3D: + # 3D view + return self.r3d.perspective_matrix + else: + # pixel view + return self.get_pixel_matrix() + + mat_model = Matrix() + mat_view = Matrix() + mat_proj = Matrix() + + view_loc = self.r3d.view_location # vec + view_rot = self.r3d.view_rotation # quat + view_per = self.r3d.view_perspective # 'PERSP' or 'ORTHO' + + return mat_model,mat_view,mat_proj + + def get_pixel_matrix_list(self): + if not self.r3d: return None + x,y = self.rgn.x,self.rgn.y + w,h = self.rgn.width,self.rgn.height + ww,wh = self.window.width,self.window.height + return [[2/w,0,0,-1], [0,2/h,0,-1], [0,0,1,0], [0,0,0,1]] + + def get_pixel_matrix(self): + ''' + returns MVP for pixel view + TODO: compute separate M,V,P matrices + ''' + if not self.r3d: return None + w,h = self.rgn.width,self.rgn.height + if not hasattr(self, '_get_pixel_matrix_cache'): + self._get_pixel_matrix_cache = {'w':-1, 'h':-1, 'm':None} + cache = self._get_pixel_matrix_cache + if cache['w'] != w or cache['h'] != h: + cache['w'],cache['h'] = w,h + cache['m'] = Matrix([[2/w,0,0,-1], [0,2/h,0,-1], [0,0,1,0], [0,0,0,1]]) + return cache['m'] + + def get_pixel_matrix_buffer(self): + if not self.r3d: return None + return bgl.Buffer(bgl.GL_FLOAT, [4,4], self.get_pixel_matrix_list()) + + def get_view_matrix_list(self): + return list(self.get_view_matrix()) if self.r3d else None + + def get_view_matrix(self): + return self.r3d.perspective_matrix if self.r3d else None + + def get_view_version(self): + if not self.r3d: return None + return Hasher(self.r3d.view_matrix, self.space.lens) + + def get_view_matrix_buffer(self): + if not self.r3d: return None + return bgl.Buffer(bgl.GL_FLOAT, [4,4], self.get_view_matrix_list()) + + def textbox_draw2D(self, text, pos:Point2D, padding=5, textbox_position=7, fontid=None): + ''' + textbox_position specifies where the textbox is drawn in relation to pos. + ex: if textbox_position==7, then the textbox is drawn where pos is the upper-left corner + tip: textbox_position is arranged same as numpad + +-----+ + |7 8 9| + |4 5 6| + |1 2 3| + +-----+ + ''' + lh = self.line_height + + # TODO: wrap text! + lines = text.splitlines() + w = max(self.get_text_width(line) for line in lines) + h = len(lines) * lh + + # find top-left corner (adjusting for textbox_position) + l,t = round(pos[0]),round(pos[1]) + textbox_position -= 1 + lcr = textbox_position % 3 + tmb = int(textbox_position / 3) + l += [w+padding,round(w/2),-padding][lcr] + t += [h+padding,round(h/2),-padding][tmb] + + bgl.glEnable(bgl.GL_BLEND) + + bgl.glColor4f(0.0, 0.0, 0.0, 0.25) + bgl.glBegin(bgl.GL_QUADS) + bgl.glVertex2f(l+w+padding,t+padding) + bgl.glVertex2f(l-padding,t+padding) + bgl.glVertex2f(l-padding,t-h-padding) + bgl.glVertex2f(l+w+padding,t-h-padding) + bgl.glEnd() + + bgl.glColor4f(0.0, 0.0, 0.0, 0.75) + self.drawing.line_width(1.0) + bgl.glBegin(bgl.GL_LINE_STRIP) + bgl.glVertex2f(l+w+padding,t+padding) + bgl.glVertex2f(l-padding,t+padding) + bgl.glVertex2f(l-padding,t-h-padding) + bgl.glVertex2f(l+w+padding,t-h-padding) + bgl.glVertex2f(l+w+padding,t+padding) + bgl.glEnd() + + bgl.glColor4f(1,1,1,0.5) + for i,line in enumerate(lines): + th = self.get_text_height(line) + y = t - (i+1)*lh + int((lh-th) / 2) + fm.draw(line, xyz=(l, y, 0), fontid=fontid) + # blf.position(self.font_id, l, y, 0) + # blf.draw(self.font_id, line) + + @blender_version_wrapper('<', '2.80') + def glCheckError(self, title): + err = bgl.glGetError() + if err == bgl.GL_NO_ERROR: return + + derrs = { + bgl.GL_INVALID_ENUM: 'invalid enum', + bgl.GL_INVALID_VALUE: 'invalid value', + bgl.GL_INVALID_OPERATION: 'invalid operation', + bgl.GL_STACK_OVERFLOW: 'stack overflow', + bgl.GL_STACK_UNDERFLOW: 'stack underflow', + bgl.GL_OUT_OF_MEMORY: 'out of memory', + bgl.GL_INVALID_FRAMEBUFFER_OPERATION: 'invalid framebuffer operation', + } + if err in derrs: + print('ERROR (%s): %s' % (title, derrs[err])) + else: + print('ERROR (%s): code %d' % (title, err)) + traceback.print_stack() + @blender_version_wrapper('>=', '2.80') + def glCheckError(self, title): + err = bgl.glGetError() + if err == bgl.GL_NO_ERROR: return + + derrs = { + bgl.GL_INVALID_ENUM: 'invalid enum', + bgl.GL_INVALID_VALUE: 'invalid value', + bgl.GL_INVALID_OPERATION: 'invalid operation', + bgl.GL_OUT_OF_MEMORY: 'out of memory', + bgl.GL_INVALID_FRAMEBUFFER_OPERATION: 'invalid framebuffer operation', + } + if err in derrs: + print('ERROR (%s): %s' % (title, derrs[err])) + else: + print('ERROR (%s): code %d' % (title, err)) + traceback.print_stack() + + def Point2D_to_Ray(self, p2d): + o = Point(region_2d_to_origin_3d(self.rgn, self.r3d, p2d)) + d = Direction(region_2d_to_vector_3d(self.rgn, self.r3d, p2d)) + return Ray(o, d) + + def Point_to_Point2D(self, p3d): + return Point2D(location_3d_to_region_2d(self.rgn, self.r3d, p3d)) + + # draw line segment in screen space + @blender_version_wrapper('<', '2.80') + def draw2D_line(self, p0:Point2D, p1:Point2D, color0:Color, *, color1=None, width=1, stipple=None, offset=0): + # TODO: better test this! + print('THIS IS NOT TESTED!') + if color1 is None: color1 = (color0[0],color0[1],color0[2],0) + if not hasattr(Drawing, '_line_data'): + sizeOfFloat, sizeOfInt = 4, 4 + vbos = bgl.Buffer(bgl.GL_INT, 1) + bgl.glGenBuffers(1, vbos) + vbo_weights = vbos[0] + bgl.glBindBuffer(bgl.GL_ARRAY_BUFFER, vbo_weights) + weights = [[0,0], [1,0], [1,1], [0,0], [1,1], [0,1]] + weightsSize = [len(weights), len(weights[0])] + buf_weights = bgl.Buffer(bgl.GL_FLOAT, weightsSize, weights) + bgl.glBufferData(bgl.GL_ARRAY_BUFFER, weightsSize[0] * weightsSize[1] * sizeOfFloat, buf_weights, bgl.GL_STATIC_DRAW) + del buf_weights + bgl.glBindBuffer(bgl.GL_ARRAY_BUFFER, 0) + shader = Shader.load_from_file('linesegment', 'linesegment.glsl') + Drawing._line_data = { + 'vbos': vbos, + 'vbo_weights': vbo_weights, + 'gltype': bgl.GL_TRIANGLES, + 'shader': shader, + 'size_weights': weightsSize, + } + width = self.scale(width) + stipple = [self.scale(v) for v in stipple] if stipple else [1,0] + offset = self.scale(offset) + d = Drawing._line_data + shader = d['shader'] + + shader.enable() + shader.assign('uScreenSize', (self.area.width, self.area.height)) + shader.assign('uPos0', p0) + shader.assign('uPos1', p1) + shader.assign('uColor0', color0) + shader.assign('uColor1', color1) + shader.assign('uWidth', width) + shader.assign('uStipple', stipple) + shader.assign('uStippleOffset', offset) + mvpmatrix_buffer = bgl.Buffer(bgl.GL_FLOAT, [4,4], self.get_pixel_matrix()) + shader.assign('uMVPMatrix', mvpmatrix_buffer) + shader.vertexAttribPointer(d['vbo_weights'], 'aWeight', d['size_weights'][1], bgl.GL_FLOAT) + bgl.glDrawArrays(d['gltype'], 0, d['size_weights'][0]) + shader.disableVertexAttribArray('aWeight') + shader.disable() + + @blender_version_wrapper('>=', '2.80') + def draw2D_point(self, pt:Point2D, color:Color, *, radius=1, border=0, borderColor=None): + radius = self.scale(radius) + border = self.scale(border) + if borderColor is None: borderColor = (0,0,0,0) + shader_2D_point.bind() + shader_2D_point.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_point.uniform_float('MVPMatrix', self.get_pixel_matrix()) + shader_2D_point.uniform_float('radius', radius) + shader_2D_point.uniform_float('border', border) + shader_2D_point.uniform_float('border', border) + shader_2D_point.uniform_float('color', color) + shader_2D_point.uniform_float('colorBorder', borderColor) + shader_2D_point.uniform_float('center', pt) + batch_2D_point.draw(shader_2D_point) + gpu.shader.unbind() + + @blender_version_wrapper('>=', '2.80') + def draw2D_points(self, pts:[Point2D], color:Color, *, radius=1, border=0, borderColor=None): + radius = self.scale(radius) + border = self.scale(border) + if borderColor is None: borderColor = (0,0,0,0) + shader_2D_point.bind() + shader_2D_point.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_point.uniform_float('MVPMatrix', self.get_pixel_matrix()) + shader_2D_point.uniform_float('radius', radius) + shader_2D_point.uniform_float('border', border) + shader_2D_point.uniform_float('border', border) + shader_2D_point.uniform_float('color', color) + shader_2D_point.uniform_float('colorBorder', borderColor) + for pt in pts: + shader_2D_point.uniform_float('center', pt) + batch_2D_point.draw(shader_2D_point) + gpu.shader.unbind() + + # draw line segment in screen space + @blender_version_wrapper('>=', '2.80') + def draw2D_line(self, p0:Point2D, p1:Point2D, color0:Color, *, color1=None, width=1, stipple=None, offset=0): + if color1 is None: color1 = (color0[0],color0[1],color0[2],0) + width = self.scale(width) + stipple = [self.scale(v) for v in stipple] if stipple else [1,0] + offset = self.scale(offset) + shader_2D_lineseg.bind() + shader_2D_lineseg.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_lineseg.uniform_float('pos0', p0) + shader_2D_lineseg.uniform_float('pos1', p1) + shader_2D_lineseg.uniform_float('color0', color0) + shader_2D_lineseg.uniform_float('color1', color1) + shader_2D_lineseg.uniform_float('width', width) + shader_2D_lineseg.uniform_float('stipple', stipple) + shader_2D_lineseg.uniform_float('stippleOffset', offset) + shader_2D_lineseg.uniform_float('MVPMatrix', self.get_pixel_matrix()) + batch_2D_lineseg.draw(shader_2D_lineseg) + gpu.shader.unbind() + + @blender_version_wrapper('>=', '2.80') + def draw2D_lines(self, points, color0:Color, *, color1=None, width=1, stipple=None, offset=0): + self.glCheckError('starting draw2D_lines') + if color1 is None: color1 = (color0[0],color0[1],color0[2],0) + width = self.scale(width) + stipple = [self.scale(v) for v in stipple] if stipple else [1,0] + offset = self.scale(offset) + shader_2D_lineseg.bind() + shader_2D_lineseg.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_lineseg.uniform_float('color0', color0) + shader_2D_lineseg.uniform_float('color1', color1) + shader_2D_lineseg.uniform_float('width', width) + shader_2D_lineseg.uniform_float('stipple', stipple) + shader_2D_lineseg.uniform_float('stippleOffset', offset) # TODO: should offset be a list? + shader_2D_lineseg.uniform_float('MVPMatrix', self.get_pixel_matrix()) + for i in range(len(points)//2): + p0,p1 = points[i*2:i*2+2] + if p0 is None or p1 is None: continue + shader_2D_lineseg.uniform_float('pos0', p0) + shader_2D_lineseg.uniform_float('pos1', p1) + batch_2D_lineseg.draw(shader_2D_lineseg) + gpu.shader.unbind() + self.glCheckError('done with draw2D_lines') + + @blender_version_wrapper('>=', '2.80') + def draw3D_lines(self, points, color0:Color, *, color1=None, width=1, stipple=None, offset=0): + self.glCheckError('starting draw3D_lines') + if color1 is None: color1 = (color0[0],color0[1],color0[2],0) + width = self.scale(width) + stipple = [self.scale(v) for v in stipple] if stipple else [1,0] + offset = self.scale(offset) + shader_2D_lineseg.bind() + shader_2D_lineseg.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_lineseg.uniform_float('color0', color0) + shader_2D_lineseg.uniform_float('color1', color1) + shader_2D_lineseg.uniform_float('width', width) + shader_2D_lineseg.uniform_float('stipple', stipple) + shader_2D_lineseg.uniform_float('stippleOffset', offset) # TODO: should offset be a list? + shader_2D_lineseg.uniform_float('MVPMatrix', self.get_view_matrix()) + for i in range(len(points)//2): + p0,p1 = points[i*2:i*2+2] + if p0 is None or p1 is None: continue + shader_2D_lineseg.uniform_float('pos0', p0) + shader_2D_lineseg.uniform_float('pos1', p1) + batch_2D_lineseg.draw(shader_2D_lineseg) + gpu.shader.unbind() + self.glCheckError('done with draw3D_lines') + + @blender_version_wrapper('>=', '2.80') + def draw2D_linestrip(self, points, color0:Color, *, color1=None, width=1, stipple=None, offset=0): + if color1 is None: color1 = (color0[0],color0[1],color0[2],0) + width = self.scale(width) + stipple = [self.scale(v) for v in stipple] if stipple else [1,0] + offset = self.scale(offset) + shader_2D_lineseg.bind() + shader_2D_lineseg.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_lineseg.uniform_float('color0', color0) + shader_2D_lineseg.uniform_float('color1', color1) + shader_2D_lineseg.uniform_float('width', width) + shader_2D_lineseg.uniform_float('stipple', stipple) + shader_2D_lineseg.uniform_float('MVPMatrix', self.get_pixel_matrix()) + for p0,p1 in iter_pairs(points, False): + shader_2D_lineseg.uniform_float('pos0', p0) + shader_2D_lineseg.uniform_float('pos1', p1) + shader_2D_lineseg.uniform_float('stippleOffset', offset) + offset += (p1 - p0).length + batch_2D_lineseg.draw(shader_2D_lineseg) + gpu.shader.unbind() + + # draw circle in screen space + @blender_version_wrapper('>=', '2.80') + def draw2D_circle(self, center:Point2D, radius:float, color0:Color, *, color1=None, width=1, stipple=None, offset=0): + if color1 is None: color1 = (color0[0],color0[1],color0[2],0) + radius = self.scale(radius) + width = self.scale(width) + stipple = [self.scale(v) for v in stipple] if stipple else [1,0] + offset = self.scale(offset) + shader_2D_circle.bind() + shader_2D_circle.uniform_float('screensize', (self.area.width, self.area.height)) + shader_2D_circle.uniform_float('center', center) + shader_2D_circle.uniform_float('radius', radius) + shader_2D_circle.uniform_float('color0', color0) + shader_2D_circle.uniform_float('color1', color1) + shader_2D_circle.uniform_float('width', width) + shader_2D_circle.uniform_float('stipple', stipple) + shader_2D_circle.uniform_float('stippleOffset', offset) + shader_2D_circle.uniform_float('MVPMatrix', self.get_pixel_matrix()) + batch_2D_circle.draw(shader_2D_circle) + gpu.shader.unbind() + + @blender_version_wrapper('>=', '2.80') + def draw3D_circle(self, center:Point, radius:float, color:Color, *, width=1, n:Normal=None, x:Direction=None, y:Direction=None): + assert n is not None or x is not None or y is not None, 'Must specify at least one of n,x,y' + f = Frame(o=center, x=x, y=y, z=n) + radius = self.scale(radius) + width = self.scale(width) + shader_3D_circle.bind() + shader_3D_circle.uniform_float('center', f.o) + shader_3D_circle.uniform_float('radius', radius) + shader_3D_circle.uniform_float('color', color) + shader_3D_circle.uniform_float('width', width) + shader_3D_circle.uniform_float('plane_x', f.x) + shader_3D_circle.uniform_float('plane_y', f.y) + shader_3D_circle.uniform_float('MVPMatrix', self.get_view_matrix()) + batch_3D_circle.draw(shader_3D_circle) + gpu.shader.unbind() + + @blender_version_wrapper('>=', '2.80') + def draw3D_triangles(self, points:[Point], colors:[Color]): + self.glCheckError('starting draw3D_triangles') + shader_3D_triangle.bind() + shader_3D_triangle.uniform_float('MVPMatrix', self.get_view_matrix()) + for i in range(0, len(points), 3): + p0,p1,p2 = points[i:i+3] + c0,c1,c2 = colors[i:i+3] + if p0 is None or p1 is None or p2 is None: continue + if c0 is None or c1 is None or c2 is None: continue + shader_3D_triangle.uniform_float('pos0', p0) + shader_3D_triangle.uniform_float('color0', c0) + shader_3D_triangle.uniform_float('pos1', p1) + shader_3D_triangle.uniform_float('color1', c1) + shader_3D_triangle.uniform_float('pos2', p2) + shader_3D_triangle.uniform_float('color2', c2) + batch_3D_triangle.draw(shader_3D_triangle) + gpu.shader.unbind() + self.glCheckError('done with draw3D_triangles') + + @contextlib.contextmanager + def draw(self, draw_type:"CC_DRAW"): + assert getattr(self, '_draw', None) is None, 'Cannot nest Drawing.draw calls' + self._draw = draw_type + self.glCheckError('starting draw') + try: + draw_type.begin() + yield draw_type + draw_type.end() + except Exception as e: + print('Exception caught while in Drawing.draw with %s' % str(draw_type)) + debugger.print_exception() + self.glCheckError('done with draw') + self._draw = None + + +Drawing.initialize() + + +###################################################################################################### +# The following classes mimic the immediate mode for (old-school way of) drawing geometry +# glBegin(GL_TRIANGLES) +# glColor3f(p) +# glVertex3f(p) +# glEnd() + +class CC_DRAW: + _point_size:float = 1 + _line_width:float = 1 + _border_width:float = 0 + _border_color:Color = Color((0, 0, 0, 0)) + _stipple_pattern:List[float] = [1,0] + _stipple_offset:float = 0 + _stipple_color:Color = Color((0, 0, 0, 0)) + + _default_color = Color((1, 1, 1, 1)) + _default_point_size = 1 + _default_line_width = 1 + _default_border_width = 0 + _default_border_color = Color((0, 0, 0, 0)) + _default_stipple_pattern = [1,0] + _default_stipple_color = Color((0, 0, 0, 0)) + + @classmethod + def reset(cls): + s = Drawing._instance.scale + CC_DRAW._point_size = s(CC_DRAW._default_point_size) + CC_DRAW._line_width = s(CC_DRAW._default_line_width) + CC_DRAW._border_width = s(CC_DRAW._default_border_width) + CC_DRAW._border_color = CC_DRAW._default_border_color + CC_DRAW._stipple_offset = 0 + CC_DRAW._stipple_pattern = [s(v) for v in CC_DRAW._default_stipple_pattern] + CC_DRAW._stipple_color = CC_DRAW._default_stipple_color + cls.update() + + @classmethod + def update(cls): pass + + @classmethod + def point_size(cls, size): + s = Drawing._instance.scale + CC_DRAW._point_size = s(size) + cls.update() + + @classmethod + def line_width(cls, width): + s = Drawing._instance.scale + CC_DRAW._line_width = s(width) + cls.update() + + @classmethod + def border(cls, *, width=None, color=None): + s = Drawing._instance.scale + if width is not None: + CC_DRAW._border_width = s(width) + if color is not None: + CC_DRAW._border_color = color + cls.update() + + @classmethod + def stipple(cls, *, pattern=None, offset=None, color=None): + s = Drawing._instance.scale + if pattern is not None: + CC_DRAW._stipple_pattern = [s(v) for v in pattern] + if offset is not None: + CC_DRAW._stipple_offset = s(offset) + if color is not None: + CC_DRAW._stipple_color = color + cls.update() + + @classmethod + def end(cls): + gpu.shader.unbind() +CC_DRAW.reset() + + +class CC_2D_POINTS(CC_DRAW): + @classmethod + def begin(cls): + shader_2D_point.bind() + shader_2D_point.uniform_float('MVPMatrix', Drawing._instance.get_pixel_matrix()) + shader_2D_point.uniform_float('screensize', (Drawing._instance.area.width, Drawing._instance.area.height)) + shader_2D_point.uniform_float('color', cls._default_color) + cls.update() + + @classmethod + def update(cls): + shader_2D_point.uniform_float('radius', cls._point_size) + shader_2D_point.uniform_float('border', cls._border_width) + shader_2D_point.uniform_float('colorBorder', cls._border_color) + + @classmethod + def color(cls, c:Color): + shader_2D_point.uniform_float('color', c) + + @classmethod + def vertex(cls, p:Point2D): + if p: + shader_2D_point.uniform_float('center', p) + batch_2D_point.draw(shader_2D_point) + + +class CC_2D_LINES(CC_DRAW): + @classmethod + def begin(cls): + shader_2D_lineseg.bind() + shader_2D_lineseg.uniform_float('MVPMatrix', Drawing._instance.get_pixel_matrix()) + shader_2D_lineseg.uniform_float('screensize', (Drawing._instance.area.width, Drawing._instance.area.height)) + shader_2D_lineseg.uniform_float('color0', cls._default_color) + cls.stipple(offset=0) + cls._c = 0 + cls._last_p = None + + @classmethod + def update(cls): + shader_2D_lineseg.uniform_float('color1', cls._stipple_color) + shader_2D_lineseg.uniform_float('width', cls._line_width) + shader_2D_lineseg.uniform_float('stipple', cls._stipple_pattern) + shader_2D_lineseg.uniform_float('stippleOffset', cls._stipple_offset) + + @classmethod + def color(cls, c:Color): + shader_2D_lineseg.uniform_float('color0', c) + + @classmethod + def vertex(cls, p:Point2D): + if p: shader_2D_lineseg.uniform_float('pos%d' % cls._c, p) + cls._c = (cls._c + 1) % 2 + if cls._c == 0 and cls._last_p and p: batch_2D_lineseg.draw(shader_2D_lineseg) + cls._last_p = p + +class CC_2D_LINE_STRIP(CC_2D_LINES): + @classmethod + def begin(cls): + super().begin() + cls._last_p = None + + @classmethod + def vertex(cls, p:Point2D): + if cls._last_p is None: + cls._last_p = p + else: + if cls._last_p and p: + shader_2D_lineseg.uniform_float('pos0', cls._last_p) + shader_2D_lineseg.uniform_float('pos1', p) + batch_2D_lineseg.draw(shader_2D_lineseg) + cls._last_p = p + +class CC_2D_LINE_LOOP(CC_2D_LINES): + @classmethod + def begin(cls): + super().begin() + cls._first_p = None + cls._last_p = None + + @classmethod + def vertex(cls, p:Point2D): + if cls._first_p is None: + cls._first_p = cls._last_p = p + else: + if cls._last_p and p: + shader_2D_lineseg.uniform_float('pos0', cls._last_p) + shader_2D_lineseg.uniform_float('pos1', p) + batch_2D_lineseg.draw(shader_2D_lineseg) + cls._last_p = p + + @classmethod + def end(cls): + if cls._last_p and cls._first_p: + shader_2D_lineseg.uniform_float('pos0', cls._last_p) + shader_2D_lineseg.uniform_float('pos1', cls._first_p) + batch_2D_lineseg.draw(shader_2D_lineseg) + super().end() + + +class CC_2D_TRIANGLES(CC_DRAW): + @classmethod + def begin(cls): + shader_2D_triangle.bind() + #shader_2D_triangle.uniform_float('screensize', (Drawing._instance.area.width, Drawing._instance.area.height)) + shader_2D_triangle.uniform_float('MVPMatrix', Drawing._instance.get_pixel_matrix()) + cls._c = 0 + cls._last_color = None + cls._last_p0 = None + cls._last_p1 = None + + @classmethod + def color(cls, c:Color): + if c is None: return + shader_2D_triangle.uniform_float('color%d' % cls._c, c) + cls._last_color = c + + @classmethod + def vertex(cls, p:Point2D): + if p: shader_2D_triangle.uniform_float('pos%d' % cls._c, p) + cls._c = (cls._c + 1) % 3 + if cls._c == 0 and p and cls._last_p0 and cls._last_p1: batch_2D_triangle.draw(shader_2D_triangle) + cls.color(cls._last_color) + cls._last_p1 = cls._last_p0 + cls._last_p0 = p + +class CC_2D_TRIANGLE_FAN(CC_DRAW): + @classmethod + def begin(cls): + shader_2D_triangle.bind() + shader_2D_triangle.uniform_float('MVPMatrix', Drawing._instance.get_pixel_matrix()) + cls._c = 0 + cls._last_color = None + cls._first_p = None + cls._last_p = None + cls._is_first = True + + @classmethod + def color(cls, c:Color): + if c is None: return + shader_2D_triangle.uniform_float('color%d' % cls._c, c) + cls._last_color = c + + @classmethod + def vertex(cls, p:Point2D): + if p: shader_2D_triangle.uniform_float('pos%d' % cls._c, p) + cls._c += 1 + if cls._c == 3: + if p and cls._first_p and cls._last_p: batch_2D_triangle.draw(shader_2D_triangle) + cls._c = 1 + cls.color(cls._last_color) + if cls._is_first: + cls._first_p = p + cls._is_first = False + else: cls._last_p = p + +class CC_3D_TRIANGLES(CC_DRAW): + @classmethod + def begin(cls): + shader_3D_triangle.bind() + shader_3D_triangle.uniform_float('MVPMatrix', Drawing._instance.get_view_matrix()) + cls._c = 0 + cls._last_color = None + cls._last_p0 = None + cls._last_p1 = None + + @classmethod + def color(cls, c:Color): + if c is None: return + shader_3D_triangle.uniform_float('color%d' % cls._c, c) + cls._last_color = c + + @classmethod + def vertex(cls, p:Point): + if p: shader_3D_triangle.uniform_float('pos%d' % cls._c, p) + cls._c = (cls._c + 1) % 3 + if cls._c == 0 and p and cls._last_p0 and cls._last_p1: batch_3D_triangle.draw(shader_3D_triangle) + cls.color(cls._last_color) + cls._last_p1 = cls._last_p0 + cls._last_p0 = p + +###################################################################################################### + + +class ScissorStack: + buf = bgl.Buffer(bgl.GL_INT, 4) + is_started = False + scissor_test_was_enabled = False + stack = None # stack of (l,t,w,h) in region-coordinates, because viewport is set to region + msg_stack = None + + @staticmethod + def start(context): + assert not ScissorStack.is_started, 'Attempting to start a started ScissorStack' + + # region pos and size are window-coordinates + rgn = context.region + rl,rb,rw,rh = rgn.x, rgn.y, rgn.width, rgn.height + rt = rb + rh - 1 + + # remember the current scissor box settings so we can return to them when done + ScissorStack.scissor_test_was_enabled = (bgl.glIsEnabled(bgl.GL_SCISSOR_TEST) == bgl.GL_TRUE) + if ScissorStack.scissor_test_was_enabled: + bgl.glGetIntegerv(bgl.GL_SCISSOR_BOX, ScissorStack.buf) + pl, pb, pw, ph = ScissorStack.buf + pt = pb + ph - 1 + ScissorStack.stack = [(pl, pt, pw, ph)] + ScissorStack.msg_stack = ['init'] + # don't need to enable, because we are already scissoring! + # TODO: this is not tested! + else: + ScissorStack.stack = [(0, rh - 1, rw, rh)] + ScissorStack.msg_stack = ['init'] + bgl.glEnable(bgl.GL_SCISSOR_TEST) + + # we're ready to go! + ScissorStack.is_started = True + + @staticmethod + def end(force=False): + if not force: + assert ScissorStack.is_started, 'Attempting to end a non-started ScissorStack' + assert len(ScissorStack.stack) == 1, 'Attempting to end a non-empty ScissorStack (size: %d)' % (len(ScissorStack.stack)-1) + else: + ScissorStack.stack = ScissorStack.stack[:1] + if not ScissorStack.scissor_test_was_enabled: bgl.glDisable(bgl.GL_SCISSOR_TEST) + ScissorStack.is_started = False + + @staticmethod + def _set_scissor(): + assert ScissorStack.is_started, 'Attempting to set scissor settings with non-started ScissorStack' + l,t,w,h = ScissorStack.stack[-1] + b = t - (h - 1) + bgl.glScissor(l, b, w, h) + + @staticmethod + def push(nl, nt, nw, nh, msg='', clamp=True): + # note: pos and size are already in region-coordinates, but it is specified from top-left corner + + assert ScissorStack.is_started, 'Attempting to push to a non-started ScissorStack!' + + # compute right and bottom of new scissor box + nr = nl + (nw - 1) + nb = nt - (nh - 1) - 1 # sub 1 (not certain why this needs to be) + + if clamp: + # get previous scissor box + pl, pt, pw, ph = ScissorStack.stack[-1] + pr = pl + (pw - 1) + pb = pt - (ph - 1) + # clamp new box to previous (extra +1/-1 is to handle 0-sized width/height if boxes do not intersect) + #cl, cr, ct, cb = mid(nl,pl,pr), mid(nr+1,pl,pr)-1, mid(nt+1,pt,pb)-1, mid(nb,pt,pb) + cl, cr, ct, cb = mid(nl,pl,pr), mid(nr,pl,pr), mid(nt,pt,pb), mid(nb,pt,pb) + cw, ch = max(0, cr - cl + 1), max(0, ct - cb + 1) + ScissorStack.stack.append((int(cl), int(ct), int(cw), int(ch))) + ScissorStack.msg_stack.append(msg) + else: + ScissorStack.stack.append((int(nl), int(nt), int(nw), int(nh))) + ScissorStack.msg_stack.append(msg) + + ScissorStack._set_scissor() + + @staticmethod + def pop(): + assert len(ScissorStack.stack) > 1, 'Attempting to pop from empty ScissorStack!' + ScissorStack.stack.pop() + ScissorStack.msg_stack.pop() + ScissorStack._set_scissor() + + @staticmethod + @contextlib.contextmanager + def wrap(*args, disabled=False, **kwargs): + if disabled: + yield None + return + try: + ScissorStack.push(*args, **kwargs) + yield None + ScissorStack.pop() + except Exception as e: + ScissorStack.pop() + print('Caught exception while scissoring:', args, kwargs) + Globals.debugger.print_exception() + raise e + + @staticmethod + def get_current_view(): + assert ScissorStack.is_started + assert ScissorStack.stack + l, t, w, h = ScissorStack.stack[-1] + #r, b = l + (w - 1), t - (h - 1) + return (l, t, w, h) + + @staticmethod + def print_view_stack(): + for i,st in enumerate(ScissorStack.stack): + l, t, w, h = st + #r, b = l + (w - 1), t - (h - 1) + print((' '*i) + str((l,t,w,h)) + ' ' + ScissorStack.msg_stack[i]) + + @staticmethod + def is_visible(): + vl,vt,vw,vh = ScissorStack.get_current_view() + return vw > 0 and vh > 0 + + @staticmethod + @profiler.function + def is_box_visible(l, t, w, h): + vl, vt, vw, vh = ScissorStack.get_current_view() + if vw <= 0 or vh <= 0: return False + vr, vb = vl + (vw - 1), vt - (vh - 1) + r, b = l + (w - 1), t - (h - 1) + return not (l > vr or r < vl or t < vb or b > vt) + + +class DrawCallbacks: + def __init__(self): + self.wrapper = self._create_wrapper() + self.wrapper_pre = self._wrapper_pre + self._called_pre = False + + def _wrapper_pre(self, fn): + fn.drawmode = 'pre' + return fn + + def _create_wrapper(self): + drawcb = self + class DrawWrapper: + def __init__(self, mode): + assert mode in {'pre3d','post3d','post2d'} + self.mode = mode + def __call__(self, fn): + self.fn = fn + self.fnname = fn.__name__ + def run(*args, **kwargs): + try: + return fn(*args, **kwargs) + except Exception as e: + print('Caught exception in drawing "%s", calling "%s"' % (self.mode, self.fnname)) + debugger.print_exception() + print(e) + return None + run.fnname = self.fnname + run.drawmode = self.mode + return run + return DrawWrapper + + def init(self, obj): + self.obj = obj + self._fns = { + 'pre3d': [], + 'post3d': [], + 'post2d': [], + 'pre': [], + } + for (m,fn) in find_fns(self.obj, 'drawmode'): + self._fns[m] += [fn] + + def _call(self, n): + for fn in self._fns[n]: fn(self.obj) + def reset_pre(self): + self._called_pre = False + def _pre(self): + if self._called_pre: return + self._call('pre') + self._called_pre = True + def pre3d(self): + self._pre() + self._call('pre3d') + def post3d(self): + self._pre() + self._call('post3d') + def post2d(self): + self._pre() + self._call('post2d') + + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fontmanager.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fontmanager.py new file mode 100644 index 0000000..087d8be --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fontmanager.py @@ -0,0 +1,191 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import bpy +import blf + +from .debug import dprint +from .blender import get_preferences +from .profiler import profiler + +# https://docs.blender.org/api/current/blf.html + +class FontManager: + _cache = {0:0} + _last_fontid = 0 + _prefs = get_preferences() + + @staticmethod + @property + def last_fontid(): return FontManager._last_fontid + + @staticmethod + def get_dpi(): + ui_scale = FontManager._prefs.view.ui_scale + pixel_size = FontManager._prefs.system.pixel_size + dpi = 72 # FontManager._prefs.system.dpi + return int(dpi * ui_scale * pixel_size) + + @staticmethod + @profiler.function + def load(val, load_callback=None): + if val is None: + fontid = FontManager._last_fontid + else: + if val not in FontManager._cache: + # note: loading the same file multiple times is not a problem. + # blender is smart enough to cache + fontid = blf.load(val) + print('Loaded font "%s" as id %d' % (val, fontid)) + FontManager._cache[val] = fontid + FontManager._cache[fontid] = fontid + if load_callback: load_callback(fontid) + fontid = FontManager._cache[val] + FontManager._last_fontid = fontid + return fontid + + @staticmethod + def unload_fontids(): + for name,fontid in FontManager._cache.items(): + print('Unloading font "%s" as id %d' % (name, fontid)) + blf.unload(name) + FontManager._cache = {} + FontManager._last_fontid = 0 + + @staticmethod + def unload(filename): + assert filename in FontManager._cache + fontid = FontManager._cache[filename] + dprint('Unloading font "%s" as id %d' % (filename, fontid)) + blf.unload(filename) + del FontManager._cache[filename] + if fontid == FontManager._last_fontid: + FontManager._last_fontid = 0 + + @staticmethod + def aspect(aspect, fontid=None): + return blf.aspect(FontManager.load(fontid), aspect) + + @staticmethod + def blur(radius, fontid=None): + return blf.blur(FontManager.load(fontid), radius) + + @staticmethod + def clipping(xymin, xymax, fontid=None): + return blf.clipping(FontManager.load(fontid), *xymin, *xymax) + + @staticmethod + def color(color, fontid=None): + blf.color(FontManager.load(fontid), *color) + + @staticmethod + def dimensions(text, fontid=None): + return blf.dimensions(FontManager.load(fontid), text) + + @staticmethod + def disable(option, fontid=None): + return blf.disable(FontManager.load(fontid), option) + + @staticmethod + def disable_rotation(fontid=None): + return blf.disable(FontManager.load(fontid), blf.ROTATION) + + @staticmethod + def disable_clipping(fontid=None): + return blf.disable(FontManager.load(fontid), blf.CLIPPING) + + @staticmethod + def disable_shadow(fontid=None): + return blf.disable(FontManager.load(fontid), blf.SHADOW) + + @staticmethod + def disable_kerning_default(fontid=None): + # note: not a listed option in docs for `blf.disable`, but see `blf.word_wrap` + return blf.disable(FontManager.load(fontid), blf.KERNING_DEFAULT) + + @staticmethod + def disable_word_wrap(fontid=None): + return blf.disable(FontManager.load(fontid), blf.WORD_WRAP) + + @staticmethod + def draw(text, xyz=None, fontsize=None, dpi=None, fontid=None): + fontid = FontManager.load(fontid) + if xyz: blf.position(fontid, *xyz) + if fontsize: FontManager.size(fontsize, dpi=dpi, fontid=fontid) + return blf.draw(fontid, text) + + @staticmethod + def draw_simple(text, xyz): + fontid = FontManager._last_fontid + blf.position(fontid, *xyz) + return blf.draw(fontid, text) + + @staticmethod + def enable(option, fontid=None): + return blf.enable(FontManager.load(fontid), option) + + @staticmethod + def enable_rotation(fontid=None): + return blf.enable(FontManager.load(fontid), blf.ROTATION) + + @staticmethod + def enable_clipping(fontid=None): + return blf.enable(FontManager.load(fontid), blf.CLIPPING) + + @staticmethod + def enable_shadow(fontid=None): + return blf.enable(FontManager.load(fontid), blf.SHADOW) + + @staticmethod + def enable_kerning_default(fontid=None): + return blf.enable(FontManager.load(fontid), blf.KERNING_DEFAULT) + + @staticmethod + def enable_word_wrap(fontid=None): + # note: not a listed option in docs for `blf.enable`, but see `blf.word_wrap` + return blf.enable(FontManager.load(fontid), blf.WORD_WRAP) + + @staticmethod + def position(xyz, fontid=None): + return blf.position(FontManager.load(fontid), *xyz) + + @staticmethod + def rotation(angle, fontid=None): + return blf.rotation(FontManager.load(fontid), angle) + + @staticmethod + def shadow(level, rgba, fontid=None): + return blf.shadow(FontManager.load(fontid), level, *rgba) + + @staticmethod + def shadow_offset(xy, fontid=None): + return blf.shadow_offset(FontManager.load(fontid), *xy) + + @staticmethod + def size(size, dpi=None, fontid=None): + if not dpi: dpi = FontManager.get_dpi() + return blf.size(FontManager.load(fontid), size, dpi) + + @staticmethod + def word_wrap(wrap_width, fontid=None): + return blf.word_wrap(FontManager.load(fontid), wrap_width) + + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono-LICENSE.txt b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono-LICENSE.txt new file mode 100644 index 0000000..df52c17 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono-LICENSE.txt @@ -0,0 +1,187 @@ +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. +Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) + + +Bitstream Vera Fonts Copyright +------------------------------ + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute the +Font Software, including without limitation the rights to use, copy, merge, +publish, distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to the +following conditions: + +The above copyright and trademark notices and this permission notice shall +be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional glyphs or characters may be added to the Fonts, only if the fonts +are renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream +Vera" names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE +FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font Software +without prior written authorization from the Gnome Foundation or Bitstream +Inc., respectively. For further information, contact: fonts at gnome dot +org. + +Arev Fonts Copyright +------------------------------ + +Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and +associated documentation files (the "Font Software"), to reproduce +and distribute the modifications to the Bitstream Vera Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to +the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Tavmjong Bah" or the word "Arev". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Tavmjong Bah Arev" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the name of Tavmjong Bah shall not +be used in advertising or otherwise to promote the sale, use or other +dealings in this Font Software without prior written authorization +from Tavmjong Bah. For further information, contact: tavmjong @ free +. fr. + +TeX Gyre DJV Math +----------------- +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. + +Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski +(on behalf of TeX users groups) are in public domain. + +Letters imported from Euler Fraktur from AMSfonts are (c) American +Mathematical Society (see below). +Bitstream Vera Fonts Copyright +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera +is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license (“Fonts”) and associated +documentation +files (the “Font Software”), to reproduce and distribute the Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, +and/or sell copies of the Font Software, and to permit persons to whom +the Font Software is furnished to do so, subject to the following +conditions: + +The above copyright and trademark notices and this permission notice +shall be +included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional +glyphs or characters may be added to the Fonts, only if the fonts are +renamed +to names not containing either the words “Bitstream” or the word “Vera”. + +This License becomes null and void to the extent applicable to Fonts or +Font Software +that has been modified and is distributed under the “Bitstream Vera” +names. + +The Font Software may be sold as part of a larger software package but +no copy +of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, +SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE +THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. +Except as contained in this notice, the names of GNOME, the GNOME +Foundation, +and Bitstream Inc., shall not be used in advertising or otherwise to promote +the sale, use or other dealings in this Font Software without prior written +authorization from the GNOME Foundation or Bitstream Inc., respectively. +For further information, contact: fonts at gnome dot org. + +AMSFonts (v. 2.2) copyright + +The PostScript Type 1 implementation of the AMSFonts produced by and +previously distributed by Blue Sky Research and Y&Y, Inc. are now freely +available for general use. This has been accomplished through the +cooperation +of a consortium of scientific publishers with Blue Sky Research and Y&Y. +Members of this consortium include: + +Elsevier Science IBM Corporation Society for Industrial and Applied +Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS) + +In order to assure the authenticity of these fonts, copyright will be +held by +the American Mathematical Society. This is not meant to restrict in any way +the legitimate use of the fonts, such as (but not limited to) electronic +distribution of documents containing these fonts, inclusion of these fonts +into other public domain or commercial font collections or computer +applications, use of the outline data to create derivative fonts and/or +faces, etc. However, the AMS does require that the AMS copyright notice be +removed from any derivative versions of the fonts which have been altered in +any way. In addition, to ensure the fidelity of TeX documents using Computer +Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces, +has requested that any alterations which yield different font metrics be +given a different name. + +$Id$ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf new file mode 100644 index 0000000..f578602 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf.import new file mode 100644 index 0000000..63d3315 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bmmgqg7nbr8s1" +path="res://.godot/imported/DejaVuSansMono.ttf-8dc399ac0e1f52618aaaa04088492ff1.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DejaVuSansMono.ttf" +dest_files=["res://.godot/imported/DejaVuSansMono.ttf-8dc399ac0e1f52618aaaa04088492ff1.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf new file mode 100644 index 0000000..5505f1c Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf.import new file mode 100644 index 0000000..ce4e285 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://ds727vulau017" +path="res://.godot/imported/DroidSans-Blender.ttf-23fdd69c1f81dc9b0c4a191b358d1e78.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-Blender.ttf" +dest_files=["res://.godot/imported/DroidSans-Blender.ttf-23fdd69c1f81dc9b0c4a191b358d1e78.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-LICENSE.txt b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSans-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf new file mode 100644 index 0000000..838d255 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf.import new file mode 100644 index 0000000..b6c40bc --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b8tr0wisw4krr" +path="res://.godot/imported/DroidSerif-Bold.ttf-01ff44e2c043cb856b35cfbffb87e74e.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Bold.ttf" +dest_files=["res://.godot/imported/DroidSerif-Bold.ttf-01ff44e2c043cb856b35cfbffb87e74e.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf new file mode 100644 index 0000000..0b1601f Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf.import new file mode 100644 index 0000000..10b1b27 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://fw383rqv41a8" +path="res://.godot/imported/DroidSerif-BoldItalic.ttf-0fbb8c4f1f464e06dc5b06583053bdc4.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-BoldItalic.ttf" +dest_files=["res://.godot/imported/DroidSerif-BoldItalic.ttf-0fbb8c4f1f464e06dc5b06583053bdc4.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf new file mode 100644 index 0000000..2972809 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf.import new file mode 100644 index 0000000..b4b7f4e --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dgaib2r77e71v" +path="res://.godot/imported/DroidSerif-Italic.ttf-5ea92b0bc070707a3510c8852398ae95.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Italic.ttf" +dest_files=["res://.godot/imported/DroidSerif-Italic.ttf-5ea92b0bc070707a3510c8852398ae95.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-LICENSE.txt b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-LICENSE.txt new file mode 100644 index 0000000..989e2c5 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-LICENSE.txt @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf new file mode 100644 index 0000000..5b4fe81 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf.import new file mode 100644 index 0000000..f2d4180 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dum8i52r5h8w8" +path="res://.godot/imported/DroidSerif-Regular.ttf-e59773c8a0604a10127dcdc1cf7d029c.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/DroidSerif-Regular.ttf" +dest_files=["res://.godot/imported/DroidSerif-Regular.ttf-e59773c8a0604a10127dcdc1cf7d029c.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf new file mode 100644 index 0000000..7b52945 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf.import new file mode 100644 index 0000000..cbd7312 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://f2met102d8kf" +path="res://.godot/imported/OpenSans-Bold.ttf-d18e89ca60bcfe45637e48db93b2b48c.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Bold.ttf" +dest_files=["res://.godot/imported/OpenSans-Bold.ttf-d18e89ca60bcfe45637e48db93b2b48c.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000..a670e14 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf.import new file mode 100644 index 0000000..797cf17 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cf10mnibtohxv" +path="res://.godot/imported/OpenSans-BoldItalic.ttf-84dacb50f3a906c8b5ca89d51af9727d.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-BoldItalic.ttf" +dest_files=["res://.godot/imported/OpenSans-BoldItalic.ttf-84dacb50f3a906c8b5ca89d51af9727d.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf new file mode 100644 index 0000000..e6c5414 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf.import new file mode 100644 index 0000000..23872f4 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bsfmfmc4au5i0" +path="res://.godot/imported/OpenSans-Italic.ttf-83d7787c0420513581e1a49cf5fad956.fontdata" + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-Italic.ttf" +dest_files=["res://.godot/imported/OpenSans-Italic.ttf-83d7787c0420513581e1a49cf5fad956.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-LICENSE.txt b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fonts/OpenSans-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fsm.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fsm.py new file mode 100644 index 0000000..f8055d0 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/fsm.py @@ -0,0 +1,191 @@ +''' +Copyright (C) 2020 CG Cookie +https://github.com/CGCookie/retopoflow + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import inspect + +from .debug import ExceptionHandler +from .debug import debugger +from .utils import find_fns + + +def get_state(state, substate): + return '%s__%s' % (str(state), str(substate)) + +class FSM: + def __init__(self): + self.wrapper = self._create_wrapper() + self.onlyinstate_wrapper = self._create_onlyinstate_wrapper() + self._exceptionhandler = ExceptionHandler() + + def add_exception_callback(self, fn, universal=True): + self._exceptionhandler.add_callback(fn, universal=universal) + + def _create_wrapper(self): + fsm = self + seen = set() + class FSM_State: + def __init__(self, state, substate='main'): + self.state = state + self.substate = substate + + def __call__(self, fn): + self.fn = fn + self.fnname = fn.__name__ + if self.fnname in seen: + print('FSM Warning: detected multiple functions with same name: "%s"' % self.fnname) + st = inspect.stack() + f = st[1] + print(' %s:%d' % (f.filename, f.lineno)) + seen.add(self.fnname) + def run(*args, **kwargs): + try: + return fn(*args, **kwargs) + except Exception as e: + print('Caught exception in function "%s" ("%s", "%s")' % ( + self.fnname, self.state, self.substate + )) + debugger.print_exception() + print(e) + fsm._exceptionhandler.handle_exception(e) + fsm.force_set_state(fsm._reset_state, call_exit=False, call_enter=True) + return + run.fnname = self.fnname + run.fsmstate = self.state + run.fsmstate_full = get_state(self.state, self.substate) + # print('%s: registered %s as %s' % (str(fsm), self.fnname, run.fsmstate_full)) + return run + return FSM_State + + def _create_onlyinstate_wrapper(self): + fsm = self + class FSM_OnlyInState: + def __init__(self, states, default=None): + if type(states) is str: states = {states} + else: states = set(states) + self.states = states + self.default = default + def __call__(self, fn): + self.fn = fn + self.fnname = fn.__name__ + def run(*args, **kwargs): + if fsm.state not in self.states: + return self.default + try: + return fn(*args, **kwargs) + except Exception as e: + print('Caught exception in function "%s" ("%s")' % ( + self.fnname, fsm.state + )) + debugger.print_exception() + print(e) + fsm._exceptionhandler.handle_exception(e) + fsm.force_set_state(fsm._reset_state, call_exit=False, call_enter=True) + return self.default + run.fnname = self.fnname + run.fsmstate = ' '.join(self.states) + return run + return FSM_OnlyInState + + def init(self, obj, start='main', reset_state='main'): + self._obj = obj + self._state_next = start + self._state = None + self._reset_state = reset_state + self._fsm_states = {} + self._fsm_states_handled = { st for (st,fn) in find_fns(self._obj, 'fsmstate') } + for (m,fn) in find_fns(self._obj, 'fsmstate_full'): + assert m not in self._fsm_states, 'Duplicate states registered!' + self._fsm_states[m] = fn + # print('%s: found fn %s as %s' % (str(self), str(fn), m)) + + def _call(self, state, substate='main', fail_if_not_exist=False): + s = get_state(state, substate) + if s not in self._fsm_states: + assert not fail_if_not_exist, 'Could not find state "%s" with substate "%s" (%s)' % (state, substate, str(s)) + return + try: + return self._fsm_states[s](self._obj) + except Exception as e: + print('Caught exception in state ("%s")' % (s)) + debugger.print_exception() + self._exceptionhandler.hondle_exception(e) + return + + def update(self): + if self._state_next is not None and self._state_next != self._state: + if self._call(self._state, substate='can exit') == False: + # print('Cannot exit %s' % str(self._state)) + self._state_next = None + return + if self._call(self._state_next, substate='can enter') == False: + # print('Cannot enter %s' % str(self._state_next)) + self._state_next = None + return + # print('%s -> %s' % (str(self._state), str(self._state_next))) + self._call(self._state, substate='exit') + self._state = self._state_next + self._call(self._state, substate='enter') + + ret = self._call(self._state, fail_if_not_exist=True) + + if ret is None: + self._state_next = ret + ret = None + elif type(ret) is str: + if self.is_state(ret): + self._state_next = ret + ret = None + else: + self._state_next = None + ret = ret + elif type(ret) is tuple: + st = {s for s in ret if self.is_state(s)} + if len(st) == 0: + self._state_next = None + ret = ret + elif len(st) == 1: + self._state_next = next(st) + ret = ret - st + else: + assert False, 'unhandled FSM return value "%s"' % str(ret) + else: + assert False, 'unhandled FSM return value "%s"' % str(ret) + + return ret + + def is_state(self, state): + return state in self._fsm_states_handled + + @property + def state(self): + return self._state + + def force_set_state(self, state, call_exit=False, call_enter=True): + if call_exit: self._call(self._state, substate='exit') + self._state = state + self._state_next = state + if call_enter: self._call(self._state, substate='enter') + + +def FSMClass(cls): + cls.fsm = FSM() + cls.FSM_State = cls.fsm.wrapper + return cls + + # https://krzysztofzuraw.com/blog/2016/python-class-decorators.html + # class Wrapper(object): + # def __init__(self, *args, **kwargs): + # self._wrapped = cls(*args, **kwargs) + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/globals.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/globals.py new file mode 100644 index 0000000..e013717 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/globals.py @@ -0,0 +1,52 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +''' +This code helps prevent circular importing. +Each of the main common objects are referenced here. +''' + +class GlobalsMeta(type): + # allows for `Globals.drawing` instead of `Globals.get('drawing')` + def __setattr__(self, name, value): + self.set(value, objtype=name) + def __getattr__(self, objtype): + return self.get(objtype) + +class Globals(metaclass=GlobalsMeta): + __vars = {} + + @staticmethod + def set(obj, objtype=None): + Globals.__vars[objtype or type(obj).__name__.lower()] = obj + return obj + + @staticmethod + def is_set(objtype): + return Globals.__vars.get(objtype, None) is not None + + @staticmethod + def get(objtype): + return Globals.__vars.get(objtype, None) + + @staticmethod + def __getattr__(objtype): + return Globals.get(objtype) diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/hasher.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/hasher.py new file mode 100644 index 0000000..19e67cf --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/hasher.py @@ -0,0 +1,136 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import time +from hashlib import md5 + +import bpy +from bmesh.types import BMesh, BMVert, BMEdge, BMFace +from mathutils import Vector, Matrix + +from .maths import ( + Point, Direction, Normal, Frame, + Point2D, Vec2D, Direction2D, + Ray, XForm, BBox, Plane +) + + +class Hasher: + def __init__(self, *args): + self._hasher = md5() + self._digest = None + self.add(args) + + def __iadd__(self, other): + self.add(other) + return self + + def __str__(self): + return '' % str(self.get_hash()) + + def __hash__(self): + return hash(self.get_hash()) + + def add(self, *args): + self._digest = None + for arg in args: + t = type(arg) + if t is list: + self._hasher.update(bytes('list %d' % len(arg), 'utf8')) + for a in arg: self.add(a) + elif t is tuple: + self._hasher.update(bytes('tuple %d' % len(arg), 'utf8')) + for a in arg: self.add(a) + elif t is set: + self._hasher.update(bytes('set %d' % len(arg), 'utf8')) + for a in arg: self.add(a) + elif t is Matrix: + self._hasher.update(bytes('matrix', 'utf8')) + self.add([v for r in arg for v in r]) + elif t is Vector: + self._hasher.update(bytes('vector %d' % len(arg), 'utf8')) + self.add([v for v in arg]) + else: + self._hasher.update(bytes(str(arg), 'utf8')) + + def get_hash(self): + if self._digest is None: + self._digest = self._hasher.hexdigest() + return self._digest + + def __eq__(self, other): + if type(other) is not Hasher: return False + return self.get_hash() == other.get_hash() + +def hash_cycle(cycle): + l = len(cycle) + h = [hash(v) for v in cycle] + m = min(h) + mi = h.index(m) + h = rotate_cycle(h, -mi) + if h[1] > h[-1]: + h.reverse() + h = rotate_cycle(h, 1) + return ' '.join(str(c) for c in h) + + +def hash_object(obj:bpy.types.Object): + if obj is None: return None + assert type(obj) is bpy.types.Object, "Only call hash_object on mesh objects!" + assert type(obj.data) is bpy.types.Mesh, "Only call hash_object on mesh objects!" + # get object data to act as a hash + me = obj.data + counts = (len(me.vertices), len(me.edges), len(me.polygons), len(obj.modifiers)) + if me.vertices: + bbox = (tuple(min(v.co for v in me.vertices)), tuple(max(v.co for v in me.vertices))) + else: + bbox = (None, None) + vsum = tuple(sum((v.co for v in me.vertices), Vector((0,0,0)))) + xform = tuple(e for l in obj.matrix_world for e in l) + mods = [] + for mod in obj.modifiers: + if mod.type == 'SUBSURF': + mods += [('SUBSURF', mod.levels)] + elif mod.type == 'DECIMATE': + mods += [('DECIMATE', mod.ratio)] + else: + mods += [(mod.type)] + hashed = (counts, bbox, vsum, xform, hash(obj), str(mods)) # ob.name??? + return hashed + +def hash_bmesh(bme:BMesh): + if bme is None: return None + assert type(bme) is BMesh, 'Only call hash_bmesh on BMesh objects!' + + # bme.verts.ensure_lookup_table() + # bme.edges.ensure_lookup_table() + # bme.faces.ensure_lookup_table() + # return Hasher( + # [list(v.co) + list(v.normal) + [v.select] for v in bme.verts], + # [[v.index for v in e.verts] + [e.select] for e in bme.edges], + # [[v.index for v in f.verts] + [f.select] for f in bme.faces], + # ) + + counts = (len(bme.verts), len(bme.edges), len(bme.faces)) + bbox = BBox(from_bmverts=bme.verts) + vsum = tuple(sum((v.co for v in bme.verts), Vector((0,0,0)))) + hashed = (counts, tuple(bbox.min) if bbox.min else None, tuple(bbox.max) if bbox.max else None, vsum) + return hashed diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png new file mode 100644 index 0000000..f764f86 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png.import new file mode 100644 index 0000000..676e612 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6y712uxg7d08" +path="res://.godot/imported/checkmark.png-13d2fecfc2b88e92b6ece3299ff4d7e8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/checkmark.png" +dest_files=["res://.godot/imported/checkmark.png-13d2fecfc2b88e92b6ece3299ff4d7e8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png new file mode 100644 index 0000000..3298492 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png.import new file mode 100644 index 0000000..5c1046d --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://07pxn53728bg" +path="res://.godot/imported/close.png-8c6d7013a7715dea833e0aedae7b09c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/close.png" +dest_files=["res://.godot/imported/close.png-8c6d7013a7715dea833e0aedae7b09c0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png new file mode 100644 index 0000000..911a645 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png.import new file mode 100644 index 0000000..0f17830 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjebl6r0eslse" +path="res://.godot/imported/collapse_close.png-9ebb5e66071c8d05ed0fa7624af23796.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_close.png" +dest_files=["res://.godot/imported/collapse_close.png-9ebb5e66071c8d05ed0fa7624af23796.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png new file mode 100644 index 0000000..df37a5d Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png.import new file mode 100644 index 0000000..bfd8fb2 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0glqvak5eyjd" +path="res://.godot/imported/collapse_open.png-2829a05baa29c7e94aec6c8fba23cad1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/collapse_open.png" +dest_files=["res://.godot/imported/collapse_open.png-2829a05baa29c7e94aec6c8fba23cad1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png new file mode 100644 index 0000000..5e37550 Binary files /dev/null and b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png differ diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png.import b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png.import new file mode 100644 index 0000000..06d97b0 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://x012unpqc1qg" +path="res://.godot/imported/radio.png-5e4e6e9995a0fb2e27765e1293a4c2e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/images/radio.png" +dest_files=["res://.godot/imported/radio.png-5e4e6e9995a0fb2e27765e1293a4c2e9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/irc.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/irc.py new file mode 100644 index 0000000..2f3a031 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/irc.py @@ -0,0 +1,80 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import socket +import sys + +''' +Note: this is a work in progress only! +''' + +# https://pythonspot.com/building-an-irc-bot/ +class IRC: + def __init__(self): + self.done = False + self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + def __del__(self): + self.close() + + def send_text(self, text): + if not text.endswith('\n'): text += '\n' + self.socket.send(bytes(text, encoding='utf-8')) + + def send(self, chan, msg): + self.socket.send(bytes("PRIVMSG " + chan + " :" + msg + "\n", encoding='utf-8')) + + def connect(self, server, channel, nickname): + #defines the socket + print("connecting to:", server) + self.socket.connect((server, 6667)) #connects to the server + self.socket.send(bytes("USER " + nickname + " " + nickname +" " + nickname + " :This is a fun bot!\n", encoding='utf-8')) #user authentication + self.socket.send(bytes("NICK " + nickname + "\n", encoding='utf-8')) + self.socket.send(bytes("JOIN " + channel + "\n", encoding='utf-8')) #join the chan + + def get_text(self, blocking=True): + self.socket.setblocking(blocking) + try: + text = str(self.socket.recv(4096), encoding='utf-8') #receive the text + except socket.error: + text = None + return text + + def close(self): + if self.done: return + self.socket.close() + self.done = True + + +if __name__ == '__main__': + channel = "#retopoflow" + server = "irc.freenode.net" + nickname = "rftester" + + irc = IRC() + irc.connect(server, channel, nickname) + + while 1: + text = irc.get_text() + if text: print(text) + + if "PRIVMSG" in text and channel in text and "hello" in text: + irc.send(channel, "Hello!") \ No newline at end of file diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/logger.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/logger.py new file mode 100644 index 0000000..672b652 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/logger.py @@ -0,0 +1,73 @@ +''' +Copyright (C) 2014 Plasmasolutions +software@plasmasolutions.de + +Created by Thomas Beck +Donated to CGCookie and the world + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import bpy + +from .blender import show_blender_popup, show_blender_text + +from .globals import Globals + +class Logger: + _log_filename = 'Logger' + _divider = '\n\n%s\n' % ('='*80) + + @staticmethod + def set_log_filename(path): + Logger._log_filename = path + + @staticmethod + def get_log_filename(): + return Logger._log_filename + + @staticmethod + def get_log(create=True): + if Logger._log_filename not in bpy.data.texts: + if not create: return None + old = { t.name for t in bpy.data.texts } + # create a log file for recording + bpy.ops.text.new() + for t in bpy.data.texts: + if t.name in old: continue + t.name = Logger._log_filename + break + else: + assert False + return bpy.data.texts[Logger._log_filename] + + @staticmethod + def has_log(): + return Logger.get_log(create=False) is not None + + @staticmethod + def add(line): + log = Logger.get_log() + log.write('%s%s' % (Logger._divider, str(line))) + + @staticmethod + def open_log(): + if Logger.has_log(): + show_blender_text(Logger._log_filename) + else: + show_blender_popup('Log file (%s) not found' % Logger._log_filename) + +logger = Logger() +Globals.set(logger) + diff --git a/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/markdown.py b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/markdown.py new file mode 100644 index 0000000..16046d1 --- /dev/null +++ b/reference-sources/blender-wow-studio-3.4-1.1.0_Experimental/io_scene_wmo/addon_common/common/markdown.py @@ -0,0 +1,85 @@ +''' +Copyright (C) 2020 CG Cookie +http://cgcookie.com +hello@cgcookie.com + +Created by Jonathan Denning, Jonathan Williamson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +''' + +import re + +class Markdown: + # markdown line (first line only, ex: table) + line_tests = { + 'h1': re.compile(r'# +(?P.+)'), + 'h2': re.compile(r'## +(?P.+)'), + 'h3': re.compile(r'### +(?P.+)'), + 'ul': re.compile(r'(?P *)- +(?P.+)'), + 'ol': re.compile(r'(?P *)\d+\. +(?P.+)'), + 'img': re.compile(r'!\[(?P[^\]]*)\]\((?P[^) ]+)(?P