Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| reverseenengineering:soft_ninjaripper:game_engine [2025/07/16 23:09] – Lex | reverseenengineering:soft_ninjaripper:game_engine [2025/07/16 23:14] (текущий) – [2. Пакетная конвертация .dds → .png (ImageMagick):] Lex | ||
|---|---|---|---|
| Строка 174: | Строка 174: | ||
| ---- | ---- | ||
| - | Если нужно — могу: | + | ===== Инструменты и плагины для извлечения ассетов |
| - | * Подготовить примеры `.blend → UE` / `.blend → Unity` пайплайна с шаблонами | + | |
| - | * Дать скрипты на Python | + | |
| - | * Помочь в настройке **rigging/ | + | |
| + | ==== Основные утилиты ==== | ||
| + | ^ Утилита / Плагин | ||
| + | | **NinjaRipper** | ||
| + | | **NinjaRipper Viewer**| Просмотр и экспорт `.rip` в `.obj` | ||
| + | | **Noesis** | ||
| + | | **XnConvert** | ||
| + | | **GIMP + DDS Plugin** | Редактирование `.dds` текстур | ||
| + | | **ImageMagick** | ||
| + | | **AssetStudio** | ||
| + | | **UModel (UE Viewer)**| Экспорт моделей/ | ||
| + | | **Crowbar** | ||
| + | | **RipImport Addon** | ||
| + | | **TexTools (Blender)**| Работа с UV и текстурами | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Blender: рекомендуемые аддоны ===== | ||
| + | |||
| + | ==== Для импорта и обработки ==== | ||
| + | * **RipImport** — прямой импорт `.rip` файлов с мешами и UV | ||
| + | * **TexTools** — набор инструментов для работы с UV, AO, Normal Map | ||
| + | * **Material Combiner** — автоматизация объединения материалов | ||
| + | * **Auto-Rig Pro / Rigify** — для восстановления анимаций и rig’ов | ||
| + | * **Send to Unreal / Unity FBX exporter** — удобный экспорт из Blender | ||
| + | |||
| + | ==== Установка: | ||
| + | * Скачайте `.zip` → Blender → Edit → Preferences → Add-ons → Install | ||
| + | * Активируйте через чекбокс | ||
| + | * Настройте горячие клавиши и панель инструментов | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Автоматизация извлечения ассетов ===== | ||
| + | |||
| + | ==== Цель: ==== | ||
| + | Автоматизировать извлечение `.rip` + конвертацию `.dds → png` + импорт в Blender. | ||
| + | |||
| + | ==== 1. Автоматическое переименование и организация файлов ==== | ||
| + | ```bash | ||
| + | @echo off | ||
| + | REM Сортировка ассетов по типу | ||
| + | mkdir models | ||
| + | mkdir textures | ||
| + | |||
| + | move *.rip models\ | ||
| + | move *.obj models\ | ||
| + | move *.mtl models\ | ||
| + | move *.dds textures\ | ||
| + | |||
| + | ==== 2. Пакетная конвертация .dds → .png (ImageMagick): | ||
| + | |||
| + | < | ||
| + | |||
| + | bash | ||
| + | |||
| + | magick mogrify -format png -path ./ | ||
| + | |||
| + | python | ||
| + | |||
| + | import bpy | ||
| + | import os | ||
| + | |||
| + | MODEL_DIR = " | ||
| + | TEXTURE_DIR = " | ||
| + | |||
| + | for file in os.listdir(MODEL_DIR): | ||
| + | if file.endswith(" | ||
| + | bpy.ops.import_scene.obj(filepath=os.path.join(MODEL_DIR, | ||
| + | |||
| + | for mat in bpy.data.materials: | ||
| + | mat.use_nodes = True | ||
| + | bsdf = mat.node_tree.nodes.get(" | ||
| + | tex_path = os.path.join(TEXTURE_DIR, | ||
| + | if os.path.exists(tex_path): | ||
| + | tex_image = mat.node_tree.nodes.new(" | ||
| + | tex_image.image = bpy.data.images.load(tex_path) | ||
| + | mat.node_tree.links.new(bsdf.inputs[' | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== 4. Пакетный экспорт .fbx из Blender: ==== | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== 5. Альтернатива: | ||
| + | * Можно использовать .bat с вызовом Noesis в silent-режиме с параметрами конвертации. | ||
| + | < | ||
| + | cmd | ||
| + | |||
| + | noesis.exe -export -outdir " | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Пакетная структура проекта ===== | ||
| + | |||
| + | < | ||
| + | project_assets/ | ||
| + | ├── models/ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | ├── textures/ | ||
| + | │ | ||
| + | │ | ||
| + | ├── textures_png/ | ||
| + | ├── blender_scripts/ | ||
| + | │ | ||
| + | ├── exports/ | ||
| + | │ | ||
| + | |||
| + | </ | ||