Делаем ломающиеся объекты (SA)
Материал из GTAModding.ru
Версия от 08:05, 21 апреля 2014; DK22 (обсуждение | вклад)
В этом уроке мы опишем, как сделать ломающийся объект в GTA SA с помощью 3DS Max и плагина к нему.
Урок рассчитан на моддеров, которые знают как накладывать текстуры в 3DS Max, знают как двигать объекты в Максе,
знают как импортировать-экспортировать dff, txd, coll, знают как делать кулл с помощью макса и как вставлять объекты в игру.
Содержание |
Инструменты
Что нам понадобиться для этого дела:
- Сам GTA SA
- 3DS Max 7 или выше
- Скрипты от Дениски
- IMG Tool v.2.0 или аналог
- TXD Workshop
- Photoshop или любой графический редактор
- Map Editor
- CollEditor II
- RW-Analyze 0.4 beta - позволяет увидеть всю структуру выбранной модели/текстуры.
ВНИМАНИЕ! В этом туторе не описывается, как делать модель коллизии и как вставлять в игру объект. Если вы не знаете, как это делать то можете дальше не читать.
Подготовка моделей
Распаковываем скрипты от Дениски в любую папку, а от туда уже делаем вот так: Скидываем папки Startup и sa_tools в директорию 3dMax\Scripts.
В максе чтоб найти этот скрипт заходим на панель Utilites далее нажимаем на MAXscript и внизу вылезит вот такое окошко:
Вылезет еще одно окно.. оно в самом низу списка.. пролистайте чуток вниз
Вот это и есть скрипты от Дениски.
Первым делом нам нужна модель которую мы хотим сломать. Импортируем ее или создаем в 3D Max (далее буду называть «Макс»). А сделаем мы вот такую штуку: похоже на столб с рекламами и афишами
Он у меня состоит из 2 частей.
Если вы берете цельный объект, то его надо разбить на кусочки. Сейчас на примере покажу, как разбивать цельный объект на кусочки. Возьмем верх от столба, а остальное спрячем, вот что получилось:
Теперь конвертируем его в Editable Mesh. Нажимаем ПКМ на объекте и выбираем пункт Convert To, а там Convert to Editable Mesh
В списке модификаторов должна появиться строка Editable Mesh
И выбираем ту часть, которую хотим отделить..
Выскочит вот такое окно, в котором нам предложат назвать отделенный объект
Жмем ОК и все. Кусок отделен. Выделяем верхушку и видим, что действительно объекта стало два.
Вот и все. Как видите, в отделении ничего сложного нет.
Далее надо чтоб каждый кусок имел свой ID номер и свою отдельную текстуру. Даже если вы используете одну текстуру на весь объект. Для этого надо выбрать Multi\Sub Object и там поставить 2 материала. (у вас может быть и больше и меньше в зависимости сколько ломаных частей у вас будет)
Текстурим
Профи могут смело пропускать этот пункт т.к. тут я буду бегло рассказывать как затекстурить модель. Итак у нас 2 части, следовательно нужно 2 текстуры или сколько вы там захотите, даже одну можно использовать. Я думаю, текстуры вы уже приготовили. Поехали.
Открываем Material Editor или просто жмакая клавишу «М» открывается вот такая панелька:
Там нажимаем на клавишу Standart и выбираем материал Multi\Sub Object
Когда сделали, то должна появиться вот такая панелька:
Тут удаляем ненужные окна, просто нажимая на delete или Add, если хотите добавить. Теперь приступим к занесению текстур. Жмем на кнопочку
Соответственно на каждую новую текстуру нажимаем свою кнопку, ну вроди-бы суть ясна.. После нажатия откроется вот такое окно:
Там нажимаем на маленький квадратик напротив слова Diffuse, и откроется окно Material/Map Browser
Там жмем на Bitmap, далее откроется окно, где вы выбираете свою текстуру,… когда выбрали, то будет вот что:
Далее ту часть, которую вы хотите затекстурить, конвертируем в Editable Mesh и выбираем тип Polygon. (если вы не научились до сих пор этого делать, то можете дальше не читать) Выделили
Теперь листаем список вниз и находим вкладку Surface Properties. Далее назначаем текстуру на выделенный объект. теперь смотрим, какой ID нам присвоили, там может оказаться и 4 и 5 и 7 ну и т.д. а нам нужно, чтоб стоял 1 т.к. текстура идет у нас первая (т.е. если материал стоит 1, то и ID должен быть 1). Ставим значение 1 и нажимаем на кнопку Quick Render , если текстура видна, значит все сделано правильно.
Если нет, то надо попытаться проделать еще раз. А если же все получилось, то текстурьте остальные ломаные объекты… Вот что вышло:
Примечание: чтобы вернуться назад к материалам нажимайте кнопку Go to parent 2 раза.
Экспортирование модели
Ну а теперь начнем экспортировать нашу модельку, выбираем скрипт
Там вылезет вот такое окно:
В одноименных полях выставляем: unk1, unk2, unk3 = 60 unk4 = 120 Выделяем наш ломаный объект и экспортируем его, задав какое-нибудь имя. Так делаем со всеми ломаными частями. Если вы сохранили модель под одним именем, то все остальные объекты (ломанные) сохраняйте под таким же именем, т.е. перезаписывая.
Теперь надо сделать Кулл для модели. Лучше делать в максе. Если не знаете, как делать в максе то делайте как обычно через CollEditor. Для каждой части свой кул. Если частей 3 то и кулов у объекта должно быть 3. Сделали кулл. Теперь перейдем непосредственно к той части, которая отвечает за «ломачину»
Теперь открываем программу RW Analyze.
Жмем, Файл =>Открыть (или просто Ctrl+O) и выбираем нашу рекламу..
И смотрим, что нам открыло..
Это вся структура нашей модели. Теперь нам нужна вот эта строчка:
Жмем на ней ПКМ и выбираем пункт «Импорт данных секции»
Теперь выбираем наш файл (который сделали) с расширением .bin Как только импортировали, то снизу в таблице появятся значения:
Значит все гуд. Теперь сохраняем нашу модельку Файл => Сохранить (или просто Ctrl+S)
Теперь надо его впихнуть в игру. Этот пункт пропущу т.к. подобное было описано в уроке «Создание и вставка острова в игру» принцип одинаков.
Это еще не все.. теперь надо объект, т.е. нашу рекламу прописать в object.dat который сидит в папке data.
Настройки в object.dat
Открываем object.dat. Вверху как всегда описание столбцов. Сейчас покажем, какие параметры нужны:
Столбец (I) Collision Damage Effect - нужно ставить 200 (примерно как у скамейки)
Столбец (J) Special Collision Response Cases - выбираем
1:lampost
2:smallbox
3:bigbox
4:fencepart
И столбцы BREAKABLE INFO:
BREAKABLE INFO:
; =============== ; ; (B-SM) Smash Multiplier - if set to 2.0 then it will take twice the force to smash as opposed to break an object (1.0 - smash only - never break, set very large if it only breaks and never smashes)
; (B-VX) Break Velocity X - velocity of breakable parts ; (B-VY) Break Velocity Y ; (B-VZ) Break Velocity Z ; (B-VR) Break Velocity Rand - velocity randomness factor ; (B_GUN) Gun Break Mode - 0 - not breakable by gun, 1 - breakable, 2 - smashable ; (B_SPK) Produce Sparks on Impact - 0 - no sparks, 1 - sparks produced
Итак. Чтоб не запутаться в этих строках возьмем по примеру:
Ищем строчку breakables и возьмем в качестве примера скамейку parkbench1
parkbench1, 50.0, 100.0 0.99, 0.05, 50.0, 5.0, 1.0, 200, 0, 1, 0, 0, 0.0, 0.0, 0.0, none 115.0, 0.0, 0.0, 0.1, 0.07, 1, 0
и по примеру делаем нашу рекламу:
reklama, 50.0, 100.0 0.99, 0.05, 50.0, 5.0, 1.0, 200, 0, 1, 0, 0, 0.0, 0.0, 0.0, none 115.0, 0.0, 0.0, 0.1, 0.07, 1, 0
Значит, стенд с рекламой будет по свойствам, как и скамейка.
Теперь чуть-чуть просмотрим настройки:
(B-SM) 2.0 – это вроде разрушится, может дважды, т.е. один раз въехать потом второй
1.0 – разбивает в дребезги
(B_GUN) 0 – это разрушение с помощью оружия
1 – это просто разрушение
2 – это вроде от машины.. хотя не уверен..
(B_SPK) 0 – это без искр (или чего подобного)
1- уже с искрами (или чего подобного)
Я не проверял эти параметры, так что могу и ошибиться. Вот что у меня вышло:
Все! Теперь это дело вставляем в игру через мед. Я вставил поближе, чтоб далеко не ходить. Загружаем игру. Если при загрузке и вас вырубает, то наверно вы не правильно сделали кулл. Проверти, совпадают ли имена.
Результат
Такс вот моя реклама.
Теперь достаем дробовик и пуляем по рекламе!!!
Вот что осталось от нее… лишь крышечка…
Вот и все. Так можно делать любой объект. Лишь бы фантазии хватило и усердия.
Автор: ZimeT
Оригинальная статья на gtamir.ru