В прошлом номере "Игромании" мы с вами начали моделировать новое авто для игры GTA 3 — "ВАЗ-21099" — с помощью утилиты Zmodeler. Мы создали каркас. Сегодня мы несколько "пригладим" его, навесим двери, бамперы, приладим крылья. И завершим работу над моделью раскраской авто.
 Двери, крылья, бамперы
 Дверцы сделайте прямо в корпусе, создав несколько треугольников в области дверных проемов. Используя вид спереди и сзади, а также режим редактирования 1, подведите двери под форму корпуса путем перетаскивания вершин.
Когда двери будут идеально подогнаны, выберите команду Select/Single, переключитесь в режим 3 и правой кнопкой мыши выделите те плоскости, которые станут дверцей машины. Выберите Create/Objects/Detach, нажмите пробел, кликните на выделенный участок мышкой и назовите новый объект. Половинки переднего и заднего бампера моделируются по аналогии с дверцами.
 Весь мир текстурой мы покроем
 Ввиду сложности сего процесса предлагаю начать с малого: сделайте простейшую плоскость — Create/Surface/Flat. Нажмите пробел. Выделите плоскости, которые нужно затекстурировать. Нажмите клавишу E. Откроется редактор текстур — Material Editor (изображен на картинке 14).
 В Material Editor выберите нужную текстуру из списка сверху. Если хотите добавить свою текстуру, поставьте галочку напротив Primary Texture и нажмите Load Map, а затем, при помощи команды Add, укажите путь к текстуре и нажмите ОК.  
 В свойствах выделенных плоскостей (Ctrl+A) выберите вместо default material текстуру, указанную вами в Material Editor. Если вы добавляли свою текстуру, то она должна находиться в конце списка. Теперь давите ОК и смотрите, что получилось.
 Для более реалистичного вида модельки нужно поставить галочку напротив Reflections Map (в Material Editor) и загрузить текстуру хрома (она находится в папке с Zmodeler). В Material Editor есть также три ползунка: R, G и B. Изменяя их положение, вы будете менять цвета текстуры. Чем светлее текстура хрома, тем она заметней в игре. После операции с хромированием вы увидите, что поверхность выделенной вами плоскости как бы переливается. Если поверхность кажется вам излишне хромированной, это можно исправить, выделив поверхность, кликнув Surfaces/Normals/Projection и нажав на плоскость в одном из видов.
 Точно таким же образом наложите и хромируйте текстуры дверей, корпуса и сидений. Если текстуру на плоскости нужно передвинуть или просто слегка подкорректировать, то, не снимая выделения, выберите Surface/Mapping/Assignuv, кликните мышкой на выделенных плоскостях и переключитесь в вид UVmapper путем обычного изменения вида. Используя Modify/Move, легко корректировать плоскости, подгоняя их под текстуру. Обратите внимание, что в "режиме вершин" плоскости теряют связь между собой.
 Процесс текстурирования довольно сложен, и с первого раза, скорее всего, выйдет не очень ровно и красиво. Но стоит чуть-чуть попрактиковаться, и машины будут получаться не хуже, чем в игре. При установке в игру не забывайте сохранять текстуры в txd-файле.
 Эй, твой отец — стекольщик?!
 Стекла — те же текстуры, только прозрачные. Создайте стекла, как обычные плоскости. Затем выберите Select/Single и выделите те плоскости, которые будут стеклами.
Не забудьте при этом переключиться в режим 3. Вновь активируйте Material Editor.  
 Щелкните по кнопке вверху окна и выберите текстуру white128.tga (или любую свою). В списке Alfa выберите Standard Alfa Glow Transparency. Ползунком Opacity отрегулируйте прозрачность текстуры. Лучше всего при этом выставить среднее значение. Нажмите ОК, а затем Ctrl+A, и в строке default material выберите текстуру, которую использовали для стекла (white128.tga). В 3D-виде плоскости стекол стали прозрачными.
 Создание симметрии
 Теперь, когда мы полностью создали половину модели, нужно сделать ее зеркальное отображение, чтобы получилась полноценная машина. Выберите Select/All и кликните правой кнопкой мыши на одном из видов. Зайдите в Create/Objects/Copy и на виде спереди перетащите выделение влево. Вы увидите, что половинок стало две. Дайте второй половинке название. Половинки, правда, совершенно одинаковые — совместить их пока нельзя. Выделите новую половинку, выберите Modify/Mirror и кликните на одном из видов. Инвертирование проведено.
 Вновь выделите новую половину, нажмите Modify/Reorient и щелкните мышкой на изображении модельки. Осталось только склеить половинки. Подгоните обе части корпуса друг к другу вплотную. Плоскости должны соприкасаться только краями! Важно, чтобы не было никакого пересечения, иначе в игре на местах соприкосновений будут черные полосы, что существенно испортит внешний вид авто. Окончательное объединение ничем не отличается от объединения элементов салона.
 Мнется и трескается
 Чтобы в игре машинка повреждалась, нужно в редакторе создать модель повреждения. Для этого смоделируйте копии дверей, бамперов, капота, багажника и стекол (Create/Objects/Copy). Перейдите в режим точек и изменяйте копии так, как по вашему мнению они должны выглядеть после нанесенного повреждения.
 Все поврежденные объекты должны находиться на том же месте, где и их неповрежденные аналоги. Вы можете скрыть на время некоторые мешающие работе объекты, сняв выделение в списке объектов. Чтобы сделать эффект потрескавшихся стекол, нужно нарисовать текстуру стекла с царапинами и наложить ее на копию неповрежденного стекла. Совсем не обязательно делать потрескавшееся стекло, достаточно смоделировать вместо него осколки. Для этого просто удалите некоторые плоскости из середины стекла.  
 В последнюю очередь создайте объект, напоминающий силуэт модельки машины, и назовите его chassis_vlo. Он должен быть примерно таким, как на рисунке 15.
 Это силуэт машины, который будет отображаться, когда машина находится на значительном расстоянии от игрока.
 Где тут дверь, а где окно?
 Осталось импортировать новую модель обратно в игру. Но делать это нужно очень внимательно. Малейшая ошибка может привести к зависанию игры. Для того чтобы "подружить" нашу модель с игрой, нужно дать составляющим модели правильные названия. Вот их полный перечень:
 windscreen — стекло;
 bump_rear — передний бампер;
 bump_front — задний бампер;
 chassis — корпус машины;
 door_rf — правая передняя дверца;
 door_lf — левая передняя дверца;
 door_rr — правая задняя дверца;
 door_lr — левая задняя дверца;
 boot — дверца (крышка) багажника;
 bonnet — крышка капота;
 wing_rf — правое переднее крыло;
 wing_lf — левое переднее крыло.
 Это — основные имена составных частей машины. Но кроме имен, они еще имеют и расширения, которые пишутся в конце имени каждого объекта и разделяются черточкой (Shift+"-"). Ниже приведен перечень всех необходимых расширений:
 Ok — неповрежденный объект;
 Dam — поврежденный объект;
 Hi — объект не будет носить статуса поврежденного/неповрежденного;  
 Vlo — низкодетализированный объект.
 Dummy — инфо-узел (что это такое — читайте чуть ниже по тексту)
 Рассмотрим правильность оформления названий и расширений на конкретном примере. У вас имеется дверца машины с именем door_Lf. Чтобы игра считала ее за неповрежденную, вам нужно написать в имени door_lf_ok, а чтобы определить разбитую дверь — door_lf_dam.
 Инфо-узлы — это невидимые в игре объекты, которые определяют координаты центра тяжести корпуса машины. С их помощью также указывается, в какую сторону будут открываться капот, двери и т.д. Создавать инфо-узлы самому не обязательно, достаточно просто взять стандартные из модели, которую заменяете. Пользуясь инструментом Modify/Move, переместите инфо-узлы туда, где по задумке им положено располагаться. Поскольку далеко не всегда можно по названию догадаться, какой узел за что отвечает, приводим полный список всех инфо-узлов:
 indicators_front — передние указатели поворота;
 indicators_back — стоп-сигналы;
 taillights — хвостовые огни-габариты;
 reverselights — сигнал заднего хода;
 headlights — головное освещение (фары);
 wheel_rf_dummy — переднее правое колесо;
 wheel_lf_dummy — переднее левое колесо;
 wheel_rb_dummy — заднее правое колесо;
 wheel_lb_dummy — заднее левое колесо;
 chassis_dummy — центр осей вращения кузова (ставьте этот инфо-узел строго по центру корпуса);
 ped_frontseat — расположение водителя и пассажира на переднем сиденье;
 ped_backseat — расположение пассажира на заднем сиденье;
 door_rf_dummy — правая передняя дверь;
 door_lf_dummy — левая передняя дверь;
 door_rr_dummy — правая задняя дверь;
 door_lr_dummy — левая задняя дверь;
 boot_dummy — ось вращения багажника (определяет, в какую сторону будет открываться багажник);
 bonnet_dummy — ось вращения капота;
 wing_rf_dummy — правое переднее крыло;
 wing_lf_dummy — левое переднее крыло;  
 chassis_vlo_taillight — габариты при низкой детализации;
 chassis_vlo_headlights — головной свет при низкой детализации.
 Чтобы определиться, где какой узел лучше расположить, нужно открыть стандартную модель любой игровой машины и активировать узлы (выделив их в списке объектов).
 Все инфо-узлы должны присутствовать в одном экземпляре и находиться на правой стороне машины.
 Ты сюда, а ты туда
 У инфо-узлов есть иерархия — это специальный термин; слово используется не в прямом словарном значении. Иерархия — это каталог, где расположены инфо-узлы с определением их зависимости друг от друга. Открывается каталог через Tools/Hierarchy/Browser. Структура иерархии похожа на структуру файлов в Проводнике. Синие значки — это одиночные объекты, оранжевые — содержат в себе другие объекты (вложенные). Если у вас список иерархии отличается от приведенного на картинке 16, то придется перетаскиванием навести порядок.
 Будьте внимательны: при неправильном расположении объектов игра будет зависать. Точно сопоставив каталог иерархии с приведенным, вам останется только кликнуть правой кнопкой мыши на каждом инфо-узле, выбрать Properties, там указать Grand Theft Auto Dff Filter и поставить галочку на пункте Dummy. Нажимайте Export и выбирайте формат *.dff.
 * * *
 Мы с вами научились создавать совершенно новые модельки авто для GTA 3. Творите! Результаты творчества присылайте на адрес gamezone@igromania.ru с пометкой "Работы читателей "Мании"". Самые удачные модели машин будут выложены на наш компакт.
 Если тема моделирования машин для различных игр вам интересна, пишите на MakarenkOFF@igromania.ru. Возможно, мы подготовим еще одну статью, посвященную тому, как создавать модели транспортных средств для других игр. Удачи вам и творческих успехов на поприще автомоделирования!
 Двери, крылья, бамперы
 Дверцы сделайте прямо в корпусе, создав несколько треугольников в области дверных проемов. Используя вид спереди и сзади, а также режим редактирования 1, подведите двери под форму корпуса путем перетаскивания вершин.
|
 Весь мир текстурой мы покроем
 Ввиду сложности сего процесса предлагаю начать с малого: сделайте простейшую плоскость — Create/Surface/Flat. Нажмите пробел. Выделите плоскости, которые нужно затекстурировать. Нажмите клавишу E. Откроется редактор текстур — Material Editor (изображен на картинке 14).
 В Material Editor выберите нужную текстуру из списка сверху. Если хотите добавить свою текстуру, поставьте галочку напротив Primary Texture и нажмите Load Map, а затем, при помощи команды Add, укажите путь к текстуре и нажмите ОК.  
 В свойствах выделенных плоскостей (Ctrl+A) выберите вместо default material текстуру, указанную вами в Material Editor. Если вы добавляли свою текстуру, то она должна находиться в конце списка. Теперь давите ОК и смотрите, что получилось.
 Для более реалистичного вида модельки нужно поставить галочку напротив Reflections Map (в Material Editor) и загрузить текстуру хрома (она находится в папке с Zmodeler). В Material Editor есть также три ползунка: R, G и B. Изменяя их положение, вы будете менять цвета текстуры. Чем светлее текстура хрома, тем она заметней в игре. После операции с хромированием вы увидите, что поверхность выделенной вами плоскости как бы переливается. Если поверхность кажется вам излишне хромированной, это можно исправить, выделив поверхность, кликнув Surfaces/Normals/Projection и нажав на плоскость в одном из видов.
 Точно таким же образом наложите и хромируйте текстуры дверей, корпуса и сидений. Если текстуру на плоскости нужно передвинуть или просто слегка подкорректировать, то, не снимая выделения, выберите Surface/Mapping/Assignuv, кликните мышкой на выделенных плоскостях и переключитесь в вид UVmapper путем обычного изменения вида. Используя Modify/Move, легко корректировать плоскости, подгоняя их под текстуру. Обратите внимание, что в "режиме вершин" плоскости теряют связь между собой.
 Процесс текстурирования довольно сложен, и с первого раза, скорее всего, выйдет не очень ровно и красиво. Но стоит чуть-чуть попрактиковаться, и машины будут получаться не хуже, чем в игре. При установке в игру не забывайте сохранять текстуры в txd-файле.
 Эй, твой отец — стекольщик?!
 Стекла — те же текстуры, только прозрачные. Создайте стекла, как обычные плоскости. Затем выберите Select/Single и выделите те плоскости, которые будут стеклами.
|
 Щелкните по кнопке вверху окна и выберите текстуру white128.tga (или любую свою). В списке Alfa выберите Standard Alfa Glow Transparency. Ползунком Opacity отрегулируйте прозрачность текстуры. Лучше всего при этом выставить среднее значение. Нажмите ОК, а затем Ctrl+A, и в строке default material выберите текстуру, которую использовали для стекла (white128.tga). В 3D-виде плоскости стекол стали прозрачными.
 Создание симметрии
 Теперь, когда мы полностью создали половину модели, нужно сделать ее зеркальное отображение, чтобы получилась полноценная машина. Выберите Select/All и кликните правой кнопкой мыши на одном из видов. Зайдите в Create/Objects/Copy и на виде спереди перетащите выделение влево. Вы увидите, что половинок стало две. Дайте второй половинке название. Половинки, правда, совершенно одинаковые — совместить их пока нельзя. Выделите новую половинку, выберите Modify/Mirror и кликните на одном из видов. Инвертирование проведено.
 Вновь выделите новую половину, нажмите Modify/Reorient и щелкните мышкой на изображении модельки. Осталось только склеить половинки. Подгоните обе части корпуса друг к другу вплотную. Плоскости должны соприкасаться только краями! Важно, чтобы не было никакого пересечения, иначе в игре на местах соприкосновений будут черные полосы, что существенно испортит внешний вид авто. Окончательное объединение ничем не отличается от объединения элементов салона.
 Мнется и трескается
 Чтобы в игре машинка повреждалась, нужно в редакторе создать модель повреждения. Для этого смоделируйте копии дверей, бамперов, капота, багажника и стекол (Create/Objects/Copy). Перейдите в режим точек и изменяйте копии так, как по вашему мнению они должны выглядеть после нанесенного повреждения.
 Все поврежденные объекты должны находиться на том же месте, где и их неповрежденные аналоги. Вы можете скрыть на время некоторые мешающие работе объекты, сняв выделение в списке объектов. Чтобы сделать эффект потрескавшихся стекол, нужно нарисовать текстуру стекла с царапинами и наложить ее на копию неповрежденного стекла. Совсем не обязательно делать потрескавшееся стекло, достаточно смоделировать вместо него осколки. Для этого просто удалите некоторые плоскости из середины стекла.  
 В последнюю очередь создайте объект, напоминающий силуэт модельки машины, и назовите его chassis_vlo. Он должен быть примерно таким, как на рисунке 15.
 Это силуэт машины, который будет отображаться, когда машина находится на значительном расстоянии от игрока.
 Где тут дверь, а где окно?
 Осталось импортировать новую модель обратно в игру. Но делать это нужно очень внимательно. Малейшая ошибка может привести к зависанию игры. Для того чтобы "подружить" нашу модель с игрой, нужно дать составляющим модели правильные названия. Вот их полный перечень:
 windscreen — стекло;
 bump_rear — передний бампер;
 bump_front — задний бампер;
 chassis — корпус машины;
 door_rf — правая передняя дверца;
 door_lf — левая передняя дверца;
 door_rr — правая задняя дверца;
 door_lr — левая задняя дверца;
 boot — дверца (крышка) багажника;
 bonnet — крышка капота;
 wing_rf — правое переднее крыло;
 wing_lf — левое переднее крыло.
|
 Это — основные имена составных частей машины. Но кроме имен, они еще имеют и расширения, которые пишутся в конце имени каждого объекта и разделяются черточкой (Shift+"-"). Ниже приведен перечень всех необходимых расширений:
 Ok — неповрежденный объект;
 Dam — поврежденный объект;
 Hi — объект не будет носить статуса поврежденного/неповрежденного;  
 Vlo — низкодетализированный объект.
 Dummy — инфо-узел (что это такое — читайте чуть ниже по тексту)
 Рассмотрим правильность оформления названий и расширений на конкретном примере. У вас имеется дверца машины с именем door_Lf. Чтобы игра считала ее за неповрежденную, вам нужно написать в имени door_lf_ok, а чтобы определить разбитую дверь — door_lf_dam.
 Инфо-узлы — это невидимые в игре объекты, которые определяют координаты центра тяжести корпуса машины. С их помощью также указывается, в какую сторону будут открываться капот, двери и т.д. Создавать инфо-узлы самому не обязательно, достаточно просто взять стандартные из модели, которую заменяете. Пользуясь инструментом Modify/Move, переместите инфо-узлы туда, где по задумке им положено располагаться. Поскольку далеко не всегда можно по названию догадаться, какой узел за что отвечает, приводим полный список всех инфо-узлов:
 indicators_front — передние указатели поворота;
 indicators_back — стоп-сигналы;
 taillights — хвостовые огни-габариты;
 reverselights — сигнал заднего хода;
 headlights — головное освещение (фары);
 wheel_rf_dummy — переднее правое колесо;
 wheel_lf_dummy — переднее левое колесо;
 wheel_rb_dummy — заднее правое колесо;
 wheel_lb_dummy — заднее левое колесо;
 chassis_dummy — центр осей вращения кузова (ставьте этот инфо-узел строго по центру корпуса);
 ped_frontseat — расположение водителя и пассажира на переднем сиденье;
 ped_backseat — расположение пассажира на заднем сиденье;
 door_rf_dummy — правая передняя дверь;
 door_lf_dummy — левая передняя дверь;
 door_rr_dummy — правая задняя дверь;
 door_lr_dummy — левая задняя дверь;
 boot_dummy — ось вращения багажника (определяет, в какую сторону будет открываться багажник);
 bonnet_dummy — ось вращения капота;
 wing_rf_dummy — правое переднее крыло;
 wing_lf_dummy — левое переднее крыло;  
 chassis_vlo_taillight — габариты при низкой детализации;
 chassis_vlo_headlights — головной свет при низкой детализации.
 Чтобы определиться, где какой узел лучше расположить, нужно открыть стандартную модель любой игровой машины и активировать узлы (выделив их в списке объектов).
 Все инфо-узлы должны присутствовать в одном экземпляре и находиться на правой стороне машины.
|
 Ты сюда, а ты туда
 У инфо-узлов есть иерархия — это специальный термин; слово используется не в прямом словарном значении. Иерархия — это каталог, где расположены инфо-узлы с определением их зависимости друг от друга. Открывается каталог через Tools/Hierarchy/Browser. Структура иерархии похожа на структуру файлов в Проводнике. Синие значки — это одиночные объекты, оранжевые — содержат в себе другие объекты (вложенные). Если у вас список иерархии отличается от приведенного на картинке 16, то придется перетаскиванием навести порядок.
 Будьте внимательны: при неправильном расположении объектов игра будет зависать. Точно сопоставив каталог иерархии с приведенным, вам останется только кликнуть правой кнопкой мыши на каждом инфо-узле, выбрать Properties, там указать Grand Theft Auto Dff Filter и поставить галочку на пункте Dummy. Нажимайте Export и выбирайте формат *.dff.
 * * *
 Мы с вами научились создавать совершенно новые модельки авто для GTA 3. Творите! Результаты творчества присылайте на адрес gamezone@igromania.ru с пометкой "Работы читателей "Мании"". Самые удачные модели машин будут выложены на наш компакт.
 Если тема моделирования машин для различных игр вам интересна, пишите на MakarenkOFF@igromania.ru. Возможно, мы подготовим еще одну статью, посвященную тому, как создавать модели транспортных средств для других игр. Удачи вам и творческих успехов на поприще автомоделирования!