Вход в систему
Информация по игре "DOOM 3"
Название: DOOM 3 PC
Версия игры:
Жанр: Action
Мультиплеер: Интернет, локальная сеть
Разработчик: id Software
Издатель: Activision
Издатель в России: 1C
Локализатор: 1C
Дата выхода: август 2004
Сайты игры:
http://www.doom3.com
http://www.doom3.com
Объем: Три CD
Минимум: CPU 1,5 GHz, 512 Mb, 64 Mb Video
Рекомендуем: CPU 2,4 GHz, 1Gb, 512 Mb Video
Последние статьи
Самые комментируемые статьи
DOOMострой, часть 3. Продвинутое редактированиеАвтор: Андрей Желтяк
Полный текст
В двух прошлых статьях мы с вами получили все необходимые знания, чтобы построить большой, детализированный уровень. Но недостаточно просто построить уровень. Необходимо задать цели миссии, добавить различные скрипты, научиться связывать уровни между собой... Все это мы сделаем сегодня.
Зоны видимости В Doom 3 применяется разбиение уровней на зоны видимости порталами, чтобы не заставлять видеокарту отрисовывать все, что находится в соседних помещениях. Чтобы сделать портал, создайте обычный браш и задайте ему такой размер, чтобы он перекрывал загораживаемый им переход, коридор или дверной проем. Задайте брашу материал Textures\Common\Nodraw. Затем клавишами Ctrl+Shift+левая кнопка мыши выделите сторону браша,
Телепорты Поскольку пехотинец путешествует между мирами, то логично сделать его путешествия более комфортными — пусть перемещается через телепорты. А чтобы боец не расслаблялся, путешествие будет сопровождаться ужасными видениями. Создайте объекты info\info_player_teleport и trigger\trigger_multiple. После создания trigger_multiple сразу же выделите info_player_teleport и нажмите кнопки Ctrl+K. Это нужно сделать, потому что объект trigger_multiple станет невидимым после того, как вы снимите с него выделение, и будет очень неудобно потом искать его в списке добавленных на карту объектов (в меню Edit\Entity Info). Фактически, телепорт готов. Игрок будет телепортироваться из области, занятой объектом trigger_multiple, в точку, указанную info_player_teleport. Чтобы сделать проносящееся перед глазами видение, вам нужно создать объекты func\func_cameraview и target\target_null. Затем соедините объекты клавишами Ctrl+K, нацелив таким образом камеру в точку, указанную объектом target_null. Если теперь выделить target_null, то камера в окне 3D-обзора будет
Теперь нужно присоединить созданную камеру к телепорту. Для этого выделите объект info_player_teleport, зайдите в его свойства и создайте два ключа. visualView — камера, с которой нам будут показываться наши галлюцинации. Впишите сюда имя объекта func_cameraview. visualEffect — продолжительность показа с указанной камеры в секундах. Если не создавать этот ключ или вписать в него 0, то телепортация будет происходить мгновенно. Так как созданные объекты не отображаются в игре, то придется как-то обозначить точки телепорта (брашами или моделями телепортов из медиабиблиотеки), да и сцену видения, которое демонстрирует нам добавленная камера, также не мешает создать. Эту часть работы выполните на свое усмотрение. Скриптовые ролики Чтобы донести до игрока сюжет вашего уровня, нужно поработать над скриптовыми роликами, выполненными на движке игры. К сожалению, в редакторе нет наглядных средств для работы над роликами, поэтому придется также немного поработать над написанием скриптов. Наш первый ролик будет несложным, сделаем простой пролет камеры по заданному маршруту. Создайте объекты func_cameraview, func_mover и
Наконец займемся объектом func_static. Вы, наверное, уже догадались, что раз этому объекту было задано имя marshrut, то он будет каким-то образом указывать путь движения камеры. Так оно и есть. Выделите этот объект, во вспомогательном окне на закладке Entity нажмите кнопку Curve, и в появившемся окне укажите тип кривой Nurbs. В результате мы получим тонкую кривую линию, привязанную к объекту func_static. Присвойте этому объекту текстуру nodraw. Все кнопки для редактирования кривых находятся на панели инструментов, но они не умещаются на экране. Чтобы сделать их видимыми, вытяните панель инструментов с ее обычного места куда-нибудь в сторонку и измените ее размер, как показано на Рис. 3. Выделите сплайн (а точнее — объект func_static, к которому тот привязан) и нажмите кнопку Edit Curve Points. После этого вершины сплайна будут отображаться как прозрачные кубики в 3D-окне и как синие точки на карте уровня. Вы можете перетаскивать точки кривой с помощью левой кнопки мыши,
Теперь нужно как-то заставить все созданные объекты работать вместе. Возьмемся за написание самого скрипта. Скриптовый язык в “Думе” основан на языке программирования C, поэтому людям, знакомым с ним, разобраться в написании скриптов не составит труда. Для тех же, кто не знаком с основами программирования, приведем основные понятия “думовского” скриптинга. В общем виде скрипт выглядит так: Void имя_скрипта() { [команды скрипта] [вызов других скритпов] } Команды, в основном, используются двух видов: действия над объектами и действия над игроком. Действие над объектом имеет вид: $имя_объекта.команда(параметры команды); Например, поворот объекта на 90 градусов по оси Z осуществляется так: $имя_объекта.rotateOnce(0 0 90); Именем объекта в данном случае является значение ключа Name в свойствах этого объекта. При любом движении используются заранее заданные для данного объекта параметры скорости, ускорения и времени, за которое объект проделывает это движение. Действие над объектом может использовать в качестве параметров не только числовые значения, но и другие объекты. Скажем, команда “$имя_объекта.startSpline($имя_кривой);” заставляет объект пролететь вдоль указанного сплайна от начала и до конца.
sys.команда([необязательный параметр]); Примеры таких действий вы можете видеть в написанном чуть ниже скрипте. Если вы хотите в процессе выполнения одного скрипта вызвать дополнительный, то просто напишите имя вызываемого скрипта: имя_скрипта(); Для объектов, что мы создали на нашей карте чуть ранее, текст скрипта будет иметь следующий вид: void start_camera_spline() { $move.time(10); //Сколько секунд займет пролет камеры вдоль маршрута. $move.accelTime(1); //Время на разгон камеры. $move.decelTime(1); //Время на торможение камеры. $move.startSpline($marshrut); //Запускает объект func_mover под именем move вдоль кривой marshrut. } void camera_script() { sys.setCamera($camera); //Переключает на обзор с камеры camera. start_camera_spline(); //Запускает вышенаписанный скрипт. sys.wait(10): //Пауза до окончания выполнения запущенного скрипта. sys.firstPerson(); //Переключает на вид от первого лица. } Запишите этот текст в текстовый файл с расширением *.script. При этом имя файла должно быть таким же, как и имя вашего уровня. Поместите файл в той же папке, где находится уровень. Чтобы данный скрипт запускался в игре, создайте на карте объект trigger_once (для однократного исполнения скрипта) или
Приведенный пример отражает лишь малую часть возможностей и команд скриптового языка в Doom 3. Но на полное его описание потребовался бы не один десяток страниц. С другой стороны, этого примера достаточно, чтобы понять принципы написания “думских” скриптов. А все команды, используемые в скриптах, вы можете найти в файле base\script\doom_events.script. Команды снабжены пояснениями, поэтому разобраться с ними не составит большого труда. Цели миссии На каждом уровне должна быть какая-либо цель, пусть даже примитивная, вроде “дойти до конца уровня”. Создать цели миссии очень просто. Добавьте на карту объекты item_objective и item_objectiveComplete. Обоим объектам нужно установить следующие параметры: ObjectiveTitle — заголовок задания. Напишите здесь суть задания в одной-двух фразах. ObjectiveText — полный текст задания. Текст в параметрах должен быть только английским. Если написать на русском, объекты просто не сработают. No_touch — задайте значение 1, это будет означать, что объект будет невозможно подобрать, как обычный предмет. У обоих объектов все эти параметры должны быть абсолютно идентичными, иначе игра не сможет связать их между собой. Для активации используйте объекты trigger_once. Создайте триггер, расположите его в месте, где игрок должен получить задание, так, чтобы игрок непременно прошел сквозь объект. Затем соедините триггер и объект item_objective кнопками Ctrl+K. Точно так же сделайте активатор для объекта item_objectiveComplete. Останется лишь одна мелочь. Игрок получает задания посредством карманного компьютера — PDA. А у игрока его наверняка нет. Чтобы исправить это, добавьте на карту объект item_pda и разместите его прямо в точке старта игрока.
* * * На этом мы завершаем цикл статей по редактированию уровней в Doom 3. Многие возможности редактора были изучены, многие остались “за кадром”, но полученных знаний вам вполне хватит, чтобы строить профессиональные уровни. Всего обоев: 8 Новостей: 2 Все новости по игре Статей: 25 Все статьи по игре 30.07.2009 - Во что играли 5, 10, 15 и 20 лет назад23.11.2006 - Игровое редактирование25.04.2006 - Коды по "DOOM 3"31.03.2005 - Марсианские хроники. Шесть модификаций Doom 329.03.2005 - Коды по "DOOM 3" (easter eggs)01.03.2005 - Лучшие игры 200424.02.2005 - Коды по "DOOM 3" (easter eggs)17.02.2005 - Коды по "DOOM 3" (ресурсы)07.02.2005 - Коды по "DOOM 3"26.01.2005 - DOOMострой, часть 3. Продвинутое редактирование26.01.2005 - Три модификации для Doom 322.12.2004 - Игровые редакторы22.12.2004 - DOOMострой. Основы создания уровней для Doom 3, часть 203.12.2004 - Руководство и прохождение по "DOOM 3"24.11.2004 - DOOMострой. Основы создания уровней для Doom 327.10.2004 - Игровые редакторы30.09.2004 - DOOM 316.02.2004 - киберспорт23.12.2003 - Виртуальный Голливуд17.02.2003 - В центре внимания "Doom III"17.02.2003 - В центре внимания09.09.2002 - В центре внимания "Doom III"09.09.2002 - В центре внимания26.12.2001 - Doom III26.12.2001 - Heroes of Might and Magic IV Файлов: 4 Все файлы по игре |