Добавляем свой объект в GTA San Andreas

17 сентября 2013
GTA_Masters19


Я решил написать статью о том, как правильно вставлять свои объекты в игру GTA San Andreas. Здесь вы также найдете ответы на вопросы, которые обычно возникают у начинающих по этой теме.
Содержание:
1. Необходимый инструментарий.
2. Моделирование и тексурирование.
3. Вставка объекта в игру.
4. Разбор самых частых проблем и вопросов, возникающих у начинающих мапперов


1. Необходимый инструментарий

Для начала вам понадобится программа для моделирования. Я рекомендую 3D Studio Max, хотя в принципе, вы можете использовать и Blender и Maya. Но, спешу вас обрадовать, что если вы не собираетесь моделировать в Максе, то вам понадобится еще и программа ZModeler для конвертации модели в формат .dff Так что рекомендую сразу запастись Максом, да и моделировать в нем не так сложно, как вам кажется, стоит лишь почитать (посмотреть) пару уроков. В качестве сегодняшнего тренинга я подробно останавливаться на моделлинге не буду - я смоделирую простой куб, но ведь этого для демонстрации достаточно, не так ли? Дальше. Я использую девятую версию Макса, но вы можете использовать и любую другую, но стабильную работу скриптов на новых версиях Макса я НЕ гарантирую. Так что будет достаточно и этой версии программы.

Теперь нам понадобятся скрипты для конвертации модели и коллизии. Разницы в скриптах от Kam'a и Дениса я не вижу. Для сегодняшней демонстрации я буду использовать скрипты от Kam'а. Самое главное, чтобы вы понимали что они делают. Так что разобраться в скриптах Дениса не будет для вас особой сложностью.

Нам понадобится еще и TXD Workshop (либо любая другая программа для работы с текстурами в GTA SA). Я использую Workshop пятой версии, именно она сейчас самая стабильная.

Скачайте ColEditor (у меня он версии 2.0) - эта программа нужна для настройки коллизии, которую мы создадим в процессе создания модели.

Нам понадобится IMG Tool (и опять таки я оставляю за вами право выбора программы для работы с .img архивами) для работы с .img архивами GTA San Andreas. Этот формат используется в играх серии GTA начиная с третьей части и заканчивая Сан Андреасом.

Без Map Editor'а вы просто не сможете вставить свой объект в игру. Если же вы скажете "да я лихой скриптер, я сайчас вам настрочу скрипт, который будет отображать модель, и никаких Мап Эдиторов не нужно!", то в конце загрузки игры вы будете лицезреть вылет. Если у вас возникают проблемы с этим капризным чудом, то вам в последний раздел этого урока.

Вам понадобится любой графический редактор. Сойдет даже Paint. В частности, для изменения формата и размера текстуры.

Вам понадобится терпение и желание. Как раз на самом первом этапе - моделировании. Вставка модели в игру проста до невозможности, а ведь именно с моделированием могут возникнуть проблемы. Если вы хотите создать целую новую карту для игры, то вам лучше собрать команду - многого в одиночку вы не сделаете.

Где же все это добро скачать? Несколько программ из нашего инструментария можно взять прямо с нашего сайта, а остальные инструменты вы будете искать в Google. К сожалению, помочь в этом направлении я вам не могу, да думаю администрация сайта не разрешит выкладывать ссылки на ворованное программное обеспечение (3D Max - платная программа!).

Ну что же, переходим к началу работы!


2. Моделирование и текстурирование

Перед началом работы вам нужно установить скрипты для 3DS Max'a. Я использую скрипты от Kam'a, туда входят:
* Инструмент для импорта/экспорта моделей .dff
* Инструмент для экспорта (и снова же импорта) коллизии формата .col
* Инструмент для создания текстурных карт.
* Инструмент для создания анимации.
К тому же, в самом Max'e довольно неплохой инструментарий, который и оправдывает его вес.

Убедитесь что, скрипты установлены, и запустите 3DS Max. Если вам так удобнее, то раскройте окно перспективы на весь экран и приступайте к моделированию. Снова же таки, если у вас возникает вопрос "а как моделировать?" то не флудите об этом в комментариях, а задайте свой вопрос Гуглу. Человек, который принялся за дело, точно знает, какие сложности его поджидают, и постарается их устранить.

Я смоделирую куб, простой, совсем простой, используя вкладку Create => Cube.


Обратите внимание, что не стоит делать слишком уж высокополигональные модели. Даже если вы смоделировали что-то с большим количеством полигонов, то используйте модификаторы, чтобы уменьшить их число, в противном случае игра будет лагать, подгружая все полигоны вашей модели. В первую очередь - оптимизация!

Затем, чтобы коллизия была корректная, поставьте ваш объект в нули координат (ПКМ по инструменту перемещения объектов => Выставьте везде 0.0). Я, разумеется, заморачиваться с моделированием не буду, а вам советую приложить как можно больше усилий к этому этапу! Возможно даже, что у вас уйдет не один день только на моделирование, так что запаситесь терпением.

Предположим, наша модель уже готова (так у меня и есть). Теперь пришло время наложить текстуры. К этому шагу я рекомендую отнестись как можно внимательнее - к текстурам объектов в GTA San Andreas принимаются жесткие требования. Итак, находим текстуру в интернете. Вы можете использовать как поисковик Гугла (никто не ищет картинки лучше его, даже Яндекс), либо специализированные сайты с бесплатными текстурами. Второй вариант в данном случае намного лучше. Я сделаю мой куб деревянным. Я уже даже нашел и сохранил текстуру:


Вам вряд ли видно, но она имеет размер 1500х1500 пикселей, имеет формат .JPEG и имеет вес аж 2 с лишним мегабайта. Вы можете спросить: и что такого? Я же вам вот что отвечу: для корректного ототбражения текстур, они должны быть сжаты, иметь формат .bmp (или .tga) и они должны быть квадратными (прямоугольные HD-текстуры вам придется попортить - к сожалению, движок Render Ware уже устарел). Вот для этого вам и пригодится графический редактор. Как я говорил, сойдет и Paint, но я буду использовать более умелую программу Paint.NET.

Открываем нашу текстуру и первым делом изменяем ее размер - я выставлю 512 на 512 пикселей, т.к. почти все текстуры имеют именно такое разрешение.


Теперь сохраняем ее в формате .bmp, к примеру. Иначе вы просто не сможете вставить ее в игру.



Также вы можете подредактировать насыщенность картинки, убрать водяной знак, а если вы умеете работать в Photoshop (эх, мне бы ваши умения), то вы сможете довести текстуру до фотореализма!

Графический редактор можете закрывать, он нам не нужен.

Теперь настало время наложить текстуру в 3DS Max'е на модель. Самый простой способ сделать это: просто перетащить ее на объект из проводника, или же вы можете воспользоваться редактором материалов (клавиша M). На работе с текстурами в Максе я внимания уделять не буду по вышеописаным уже причинам.

Вот что у меня получилось:

Теперь настало время экспортировать нашу модель! Если у вас на сцене объект состоит из нескольких частей, то объедините их в один объект и проверьте, чтобы он стоял в начале координат.

Переходим на вкладку Utilities. У вас будет свиток со скриптами. Если скрипты от Kam'a или от Дениски не появились, то вы их неправильно инсталлировали. Выбирать модель перед экспортом необязательно. Я нажимаю кнопку DFF IO (не забывайте, что я использую набор скриптов от Kam'а) и у меня появляется окошко с настройками импорта/экспорта. Перейдите в окно экспорта, выберите игру, для которой разрабатывалась модель (SA стоит по умолчанию). Export Scale обозначает размер экспортируемой модели, по умолчанию он стоит на 1.0, но вы можете подредактировать его, правда вы можете ненароком уменьшить модель до размеров мамочкиного блендера, либо до размеров Андромады. Осторожнее с этим параметром. Ставьте галочку Skip Col - коллизию мы создадим позже. Если вы хотите сделать Read-only модель, то выберите Lock DFF, и нажимайте кнопку Export. Я экспортирую модель в папку Box на рабочем столе под названием Box.dff:

Теперь надо создать файл коллизии для нашей модели. Я нажимаю на кнопку Collision IO и у меня появляется такое же окно как и в случае с DFF IO. Если честно, я не знаю, какая разница между COLL, COL2 и COL3, но я всегда пользовался COL3, и именно этот тип коллизии имеют большинство объектов в San Andreas. Нажмите на кнопку Collision Mesh и кликните на наш куб (либо другой смоделированный вами объект). То же самое проделайте и с кнопкой Shadow Mesh. Эти две кнопки определяют наш объект, для которого будет создана коллизия и тени, правда, если вы хотите сделать качественный прелайт и тени, вам уже не в этот учебник. Вводите имя col-файла и сохраняете его ПОД ТАКИМ ЖЕ именем, что наш куб. В моем случае, это Box.col

Осталось настроить текстуру и донастроить коллизию перед импортом нашего объекта в игру.

Открываем TXD Workshop и создаем новую текстуру (File => New). Текстуру мы будем создавать полноцветную, так что выбирайте 32 бита.

Затем жмите Import и выбирайте нашу текстуру оттуда, куда вы ее сохранили (я еще надеюсь, что она у вас формата .bmp или .tga). Теперь нажимайте на кнопку Properties (свойства) и задавайте такое же имя, как и у модели, а также ставьте галочку Compressed (это сожмет текстуру). Если в файле текстуры есть альфа-канал, то поставьте также галочку в строке Alpha Is Used. Нажмите ОК и подождите от 10 секунд до минуты, пока идет сжатие текстуры.


Если все прошло успешно, то у вас в списке всех текстур рядом с размером появится надпись Compressed...

Теперь сохраняйте вашу текстуру в папку с моделью и коллизией (желательно для вашего же удобства) и под тем же именем (желательно, но не обязательно по моему). Если же у вас несколько текстур, то сожмите все и только потом сохраняйте (ну это простая логика).

TXD Workshop больше не нужен, можете его закрывать.

Теперь открывайте программу ColEditor и загружайте в нее наш файл коллизии (File => Open). Вы должны увидеть коллизию нашего файла. Напоминаю (уже который раз), чтобы она правильно создалась, ваш объект должен быть в центре координат в Максе.

Выберите наш объект и внизу вы увидите две кнопки - View Mode и Edit Mode. Переходите в режим редактирования, переходите на вкладку Box и выберите все (All). В разделе Surface Settings вы увидите кнопку Default. Это настройки материала. Выберите любой, я выберу тот, что ближе к нашей текстуре (напомню, что у нас деревянный ящик). Я выбрал Wood (Bench), то есть, материал, который стоит у деревянной скамейки.

Выйдите из режима редактирования и сохраните .col файл.

На этом мы закончили создание модели, текстуры и коллизии. Настала самая легкая часть нашего урока - перенесение модели в игру.


3. Вставка объекта в игру


Настало время вставить наш объект в игру. Убедитесь, что у вас есть .dff файл (модель), .txd файл (текстура) и .col файл (коллизия). Открываете любой свой редактор игровых архивов, у меня это IMG Tool. Теперь решите, в какой архив вы положите модель. Учтите, что у архива GTA3.img почти израсходованы лимиты, поэтому при переполнении архива игра будет вылетать. Если модель большая, то рекомендую положить ее в менее загруженный архив (cutscene.img к примеру), а если вы создаете глобальный мод, то имеет смысл очистить gta3.img от ненужных объектов, только будте осторожны с этим.

Я буду все сваливать в gta3.img. Загрузите коллизию, текстуру и модель - с этим проблем возникнуть не должно.

Дальше IMG Tool нам не понадобится, можете его закрыть. Открывайте Map Editor - программу для редактирования карт GTA. Заострять внимание на работе с этой программой я не буду, да и к тому же на нашем сайте полно учебников по Map Editor'у, да и в интернете найдется.

Перейдите на вкладку Scene и отрендерите сцену, где вы хотите расположить объект. Список большой, но я лишь скажу, что Grove Street располагается в куске LAe2.IPL.


Я расположу свой бокс в центре Грув стрит. Теперь нам надо собственно расположить объект в нужном месте. Переходите к вкладке IDE и выбираете карту, которую вы рендерили сейчас (у меня это LAe2.IPL). У вас в окне ниже отобразятся все объекты, которые содержит этот кусок карты. Внизу этого окна есть кнопка New Item (не перепутайте! Этих кнопок две и нам нужна та, что располагается под первым окном). У вас отобразится окно с кучей настроек. Здесь вы можете указать свой ID модели, самое главное, чтобы он не совпадал с уже существующими ID объектов в игре. Я ввожу имя моего объекта в поле Model Name - Box и в окне предварительного просмотра у меня появляется мой куб. Я ввожу имя текстуры - Box и мой объект обретает текстуру, которую мы ему задали в 3D Max'е. Получается? Очень хорошо. Если же вы не помните имя своей модели и текстуры, то нажмите кнопку Browse справа от этих полей и выберите модель в уже в списке всех объектов GTA SA, но это не будет длиться долго - все новые модели помещаются в конец архива.


Остальные параметры я объяснять не буду, да я и не знаю, что большинство из них значат, но здесь вы также можете задать LOD для объекта, если он достаточно большой и грузит память нехило.

Как только вы нажмете ОК, то объект появится в списке. Теперь нам остается его только добавить в IPL файл. Для этого переходите на вкладку IPL и выбираете кусок карты, в который вы запихивали модель в IDE. Затем также под первым окном вы нажимаете New и выбираете IDE файл (у меня это, напоминаю, LAe2.IDE), в который вы запихивали модель. Во втором окне вы выбираете собственно, вашу модель - Box.dff и она отобразится в окне быстрого просмотра. Остается только нажать ОК.


Теперь ваш объект появляется на карте! Остается его расположить в нужной вам точке с помощью органов управления. Вот мой результат:

Объекты в Map Edtior'е выглядят немного сплюснутыми, но в игре все будет отлично. Слева вы видите поля, где можно выставить интерьер - если вы например, вставляете объект в дом Карла, то вам нужно будет указать и номер интерьера, тогда объект встанет правильно. Для точной корректировки местоположения вы можете ввести координаты. Вот мои:
X: 2490.01
Y: -1669.91
Z: 12.7191

Также для интереса я повернул объект по оси Z. Также вы можете указать LOD для вашего объекта. Все, на этом заканчивается эта глава, перейдите на вкладки IDE и IPL и нажмите кнопки Save, а затем подтвердите сохранение. Также зайдите в меню File и выберите там Save Installation. Все, переходим к демонстрации.



Я свофотографировался на фоне большооого куба (как я и говорил, Map Editor несколько искажает реальные размеры объектов). У него есть текстура, а значит, он выглядит довольно таки неплохо. У него есть коллизия, значит, по нему можно бегать, и мы не будем проходить сквозь него.

Если у вас все получилось, то я вас поздравляю, вы смогли самостоятельно смоделировать и вставить объект в игру. Если у вас что-то не получилось, не расстраивайтесь, почитайте следующий раздел и попробуйте внимательнее прочитать статью, сделав все с самого начала. Ну а у нас последний на сегодня раздел этой длинноватой уже статьи.




4. Часто возникающие проблемы и вопросы

Если у вас что-то не так, то я советую вам почитать этот раздел - здесь я собрал проблемы, которые часто возникают у пользователей, да и которые возникали у меня. Что же, я дал на них ответы.
В: Я сделал все правильно, но при попытке загрузить игру, она вылетает в середине загруки. Что не так?
О: Скорее всего у тебя проблема с коллизией.
В: В Map Editor'e у меня после загрузки черный экран. Путь к GTA правильный. Что не так, может дело в Editor'e?
О: Проверь, нет ли в пути к игре кириллицы. Если нет, то скачай другую версию Эдитора.
В: У меня не отображаются текстуры в Map Editor'e и он жуть как лагает. Галочка Textures в свойствах стоит.
О: Обнови драйвера на видеокарту.
В: Игра вылетает в самом конце загрузки. Что не так?
О: Проверь, не поврежден ли файл модели. Для того, чтобы это проверить, импортни .dff в Макс через скрипт от Kam'а или от Дениса. Попробуй удалить и заново загрузить коллизию, модель и текстуру в .img архив. Попробуй заново разместить объект на карте.
В: Я накладываю текстуру в 3DS Max'e через редактор материалов. Вроде делаю все правильно, выбираю материал, перетаскиваю его из окна просмотра материалов на модель, но текстура все равно не отображается. Меняется только цвет модели.
О: Прямо под окном с материалами есть ряд кнопок. Нажми на кнопку Show Standard Map In Viewport - она четвертая с конца и имеет вид кубика.
В: TXD Workshop показывает ошибку Property Out Of Range при попытке сохранить текстуру. И виснет.
О: Скачай пятую версию с нашего сайта. Я решил свою проблему именно таким способом. То же самое относится и к другим ошибкам TXD Workshop'а.
В: IMG Tool в начале запуска выдает некую ошибку, но работает нормально, не вылетает, да и в игре все хорошо. Что это?
О: Не обращай внимания) У меня так же, но я советую скачать другую версию IMG Tool'а или вообще другой редактор .img архивов - IMG Tool имеет массу недостатков и годится только лишь для совсем новичков.
В: Можно ли добавить объект в игру не используя Map Editor?
О: Можно, путем редактирования IDE и IPL файлов того куска карты, где ты хочешь разместить объект. Но это уж для совсем профи, которые могут с завязанными глазами собрать и разобрать GTA по байтам.
В: Можно ли обойтись без ColEditor'a?
О: В принципе да, но у меня уже вошло в привычку открывать его для настройки коллизии.
Вот и все. Я разобрал все самые частые вопросы, которые возникают у начинающих. Я явно перечислил не все, так что если что, задавайте свои вопросы в комментариях к этой статье, а также ставьте хорошие оценки, я старался
Рейтинг: 3 (3 голосов)
(признано в России экстремистской организацией)