Как вытащить необходимый объект из scene.4ds



Читатели и неравнодушные друзья присылают на почту мне много писем. Они различного содержания: вопросы, статьи, просьбы, критика, благодарности, предложения и т. д. Многое из того, что приходит на почту или через форму связи, публикуется (и будет публиковаться) на моём сайте blog.mafia-forever.ru. Всем спасибо!

Всем привет! В данном туториале я расскажу как вытащить объект из scene.4ds.

Для этого потребуется:
MWE;
Hex Workshop;
Zmodeller;
scene.4ds, где находится нужный объект.

Первым делом, открываем в MWE нужную миссию и подлетаем к нужному объекту. Выделяем его и смотрим имя (см. картинку):

Как вытащить необходимый объект из scene.4ds

Наш выбранный объект имеет имя 9zidka. Запоминаем его! Теперь в Hex Workshop открываем наш scene.4ds. Редактор представит файл в 16-ричном виде (центральная колонка) Правая колонка вид файла в текстовом виде (если можно его так назвать). Что значит левая колонка –не имею понятия. Каждый символ в текстовом столбце – это считается как один байт, что соответствует два значения в 16-ричном столбце.

Теперь создаём пустой файл File=>New и копируем в него заголовок файла и текстуры (включая два последних байта после последней текстуры (Первая картинка начало, вторая – конец выделения). После сохраняем с любым именем (например, zabor_majak.4ds).

Как вытащить необходимый объект из scene.4ds
Как вытащить необходимый объект из scene.4ds

Теперь найдём наш объект. Нажимаем Edit=>Find. Type выбираем Text String. В Value вбиваем имя объекта и тыкаем ОК. В окошечке в правом нижнем углу выйдет результат. Тыкаем и наш объект найден.

Как вытащить необходимый объект из scene.4ds

Теперь поднимем ползунок немного вверх и находим последовательность 0100 002A (…*).

Как вытащить необходимый объект из scene.4ds

И начиная с этой последовательности выделяем до следующей 0100 002A.

Как вытащить необходимый объект из scene.4ds
Как вытащить необходимый объект из scene.4ds

Копируем и вставляем в конец нашего нового файла. Сохраняем.

Как вытащить необходимый объект из scene.4ds

Теперь осталось немного подправить наш файл. Устанавливаем количество объектов в файле равным одному: находим два байта после последнего .BMP (в нашем примере это будет 9806) и изменяем на 0100.

Как вытащить необходимый объект из scene.4ds
Как вытащить необходимый объект из scene.4ds

Обнуляем ссылку на базовый объект: после 0100 002A два байта должно быть 0000.

Теперь осталось в конец файла добавить нулевой байт: Edit → Insert (см. картинку).

Как вытащить необходимый объект из scene.4ds

Сохраняем результат и импортируем в Zmodeller для проверки.

Как вытащить необходимый объект из scene.4ds

Как видим наша модель открылась. И с каким-то дополнительным объектом (артефакт что ли?) и смещённый по осям. Ну это в занозе поправимо. Откроем нашу вырезанную модель в MWE:

Как вытащить необходимый объект из scene.4ds

Как видим всё нормально. Теперь можем поправить расположение модели в занозе и использовать по своему рассмотрению.

Автор — Сергей Малов
Видеоуроки по Мафии здесь