Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| 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 | ||
|---|---|---|---|
| Строка 58: | Строка 58: | ||
| ---- | ---- | ||
| + | ===== Инструменты: | ||
| + | **Noesis** — мощный и лёгкий 3D-браузер/ | ||
| - | Если хочешь — могу подготовить **набор плагинов и утилит** для работы с `.rip`, `.dds`, `.obj`, `.mtl` и Blender, или краткое руководство по **автоматизации | + | **Функциональность:** |
| + | * Просмотр и экспорт `.rip`, `.obj`, `.fbx`, `.dae`, `.smd`, `.mdl`, `.psk` | ||
| + | | ||
| + | * Экспорт мешей с материалами и UV | ||
| + | * Поддержка анимаций и скелетной структуры (если присутствуют) | ||
| + | **Преимущества: | ||
| + | * Легко просматривать содержимое `.rip` файлов | ||
| + | * Поддержка пользовательских плагинов (Python / внутренний скрипт Noesis) | ||
| + | * Работает быстро, | ||
| + | |||
| + | **Как использовать: | ||
| + | 1. Открыть `.rip` или `.obj` файл | ||
| + | 2. Перейти в меню File → Export | ||
| + | 3. Выбрать нужный формат (обычно `.fbx` или `.dae`) | ||
| + | 4. Импортировать в Blender или движок | ||
| + | |||
| + | **Совет: | ||
| + | Noesis идеально подходит для **проверки корректности экспорта**, | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Blender-пайплайн ===== | ||
| + | Полный рабочий процесс по очистке, | ||
| + | |||
| + | **1. Импорт моделей: | ||
| + | * Использовать NinjaRipper Viewer или Noesis для экспорта `.obj` / `.fbx` | ||
| + | * Импортировать в Blender (меню File → Import → .obj/.fbx) | ||
| + | |||
| + | **2. Очистка сцены: | ||
| + | * Удалить дубликаты и пустые меши | ||
| + | * Объединить сегменты (Ctrl+J) | ||
| + | * Упорядочить названия, | ||
| + | |||
| + | **3. Работа с текстурами и UV:** | ||
| + | * Загрузить `.dds` или `.png` | ||
| + | * Назначить материалы вручную (через `Shader Editor`) | ||
| + | * Проверить UV-карты и при необходимости перепечь (`UV → Smart Unwrap`) | ||
| + | |||
| + | **4. Экспорт: | ||
| + | * В движок: | ||
| + | * Для архивирования: | ||
| + | |||
| + | **Дополнительно: | ||
| + | * Использовать аддоны: | ||
| + | * Проверять нормали (через `Viewport Overlays → Face Orientation`) | ||
| + | * Обязательно применить масштаб и поворот перед экспортом (`Ctrl+A`) | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Восстановление анимаций ===== | ||
| + | Ограниченная возможность, | ||
| + | |||
| + | **1. Если игра использует DX9/FBX формат хранения костей: | ||
| + | * Используйте **3D Ripper DX** (пригоден для старых игр) | ||
| + | * Импортируйте `.3DR` через **special plugins для 3ds Max или Noesis** | ||
| + | |||
| + | **2. Поиск скелета вручную: | ||
| + | * В NinjaRipper Viewer включите отображение костей (если доступны) | ||
| + | * Найдите `Bone`-похожие меши — это могут быть кости в виде каркаса | ||
| + | * Воссоздайте вручную в Blender (`Armature → Add Bones`) | ||
| + | |||
| + | **3. Альтернативы: | ||
| + | * Ищите `.smd`, `.psa`, `.anim` или `.hkx` файлы в игре (например, | ||
| + | * Используйте сторонние экспортеры: | ||
| + | |||
| + | **Совет: | ||
| + | Для Unreal-игр используйте **UModel** для извлечения и конвертации анимаций в `.psa`/ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Интеграция ассетов в игровые сцены ===== | ||
| + | |||
| + | ==== Unity Engine ==== | ||
| + | **1. Экспорт из Blender:** | ||
| + | * Используйте `.fbx` (File → Export → FBX) | ||
| + | * Включите: | ||
| + | * Поместите `.fbx` и текстуры в папку `Assets/` | ||
| + | |||
| + | **2. Материалы: | ||
| + | * Unity автоматически создаёт `Material` на основе имени | ||
| + | * Привяжите вручную текстуры (Albedo, Normal Map, Roughness) | ||
| + | |||
| + | **3. Анимация (если есть): | ||
| + | * Включить " | ||
| + | * Работает с `.fbx` с встроенной анимацией (или через `.anim` клипы) | ||
| + | |||
| + | **Плагины: | ||
| + | * **FBX Exporter** | ||
| + | * **Auto-Rig Pro** (если требуется переоснащение персонажей) | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Unreal Engine ==== | ||
| + | **1. Экспорт из Blender:** | ||
| + | * Формат `.fbx`, настройки: | ||
| + | * Используйте плагин **Send to Unreal** или ручной экспорт | ||
| + | |||
| + | **2. Импорт в UE4/UE5:** | ||
| + | * File → Import → Выбрать `.fbx` | ||
| + | * Включить: | ||
| + | * Выключить: | ||
| + | |||
| + | **3. Материалы и текстуры: | ||
| + | * Текстуры автоматически создаются, | ||
| + | * Добавьте Normal Map, Roughness и т.д. | ||
| + | |||
| + | **4. Скелетная анимация (если применимо): | ||
| + | * Импортируйте `.psk` + `.psa` (через сторонние тулзы — UModel, Crowbar) | ||
| + | * Или создайте `Skeleton Asset` вручную и связать его с мешем | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Инструменты и плагины для извлечения ассетов ===== | ||
| + | |||
| + | ==== Основные утилиты ==== | ||
| + | ^ Утилита / Плагин | ||
| + | | **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/ | ||
| + | │ | ||
| + | |||
| + | </ | ||