IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы» Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Ассасины и тамплиеры на большом экране. Удался ли эксперимент?
Комментариев: 50
Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria Спец > Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria
Продолжение Gravity Rush, возвращение «Обители зла», приключения в мире японской мафии и прочие интересности.
Комментариев: 8
«Викинг». The Return of the (Vi)king Кино > «Викинг». The Return of the (Vi)king
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментариев: 5
Planet Coaster: парк развлечений своими руками Рецензии > Planet Coaster: парк развлечений своими руками
С самого детства мечтали построить идеальный парк аттракционов? Planet Coaster от Frontier Developments это позволяет!
Комментариев: 3
Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником Железный цех > Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником
Подводим итоги крупнейшей международной выставки потребительской электроники.
Комментариев: 1
Информация по игре
Doom 3
Название: Doom 3   PCXboxMac
Серия: Doom
Дополнения: Doom 3: Resurrection of Evil
Мультиплеер: Интернет, локальная сеть (4)
Разработчик: id Software
Издатель: Activision
Издатель в России: СофтКлаб
Локализатор: СофтКлаб
Дата выхода: 3 август 2004
Рейтинги игры
9
Рейтинг
журнала
0
Рейтинг
сайта
Рейтинг
игроков
Rating
0,00,51,01,52,02,53,03,54,04,55,05,56,06,57,07,58,08,59,09,5
МОЙ рейтинг
Видео по игре
Doom 3
Все
Игромания
Эволюция серии Doom
 ИМ  спец PCX360PS3PS4XONE
10 мая 2016 | 10 мин. 6 сек. | Просмотров: 0
Когда-то понятие «боевик от первого лица» прочно ассоциировалось со словом Doom.
Еще материалы по
Doom 3
Всего: 26
Статьи о Doom 3
Вспоминаем, чем не угодила Doom 3 фанатам серии и почему она получилось именно такой.More
Doom 3 * Command & Conquer: Tiberian Sun * Darkstalkers * MotherMore
EgoSA Path EditorDE Civ 4 EditorMaya 6.5 NIF File TranslatorGTK RadiantPepakura DesignerMore
Проходя DOOM 3 и DOOM 3: Resurrection of Evil, я заметил одну интересную деталь: будучи еще человеком, доктор Бетрюгер был слеп на правый глаз, а переродившись в монстра — на левый глаз.Алексей Роди...More
Мы, пока писали эту статью, пробовали моды в самых разных сочетаниях. И получилось у нас, что далеко не все они хорошо сочетаются друг с другом. То есть если просто взять и, что называется, нахрапом в...More
Всего: 8
Новости о Doom 3
Ведущие шоу проверят связанные с шутерами мифы на примере Doom 3.More
Краткие новости дня...More
Сотрудники id Software решили протянуть руку помощи начинающим разработчикам.More
Всего: 5
Коды, сохранения, трейнеры
   Codes (5)  
    В двух прошлых статьях мы с вами получили все необходимые знания, чтобы построить большой, детализированный уровень. Но недостаточно просто построить уровень. Необходимо задать цели миссии, добавить различные скрипты, научиться связывать уровни между собой... Все это мы сделаем сегодня.

    Зоны видимости
   
В Doom 3 применяется разбиение уровней на зоны видимости порталами, чтобы не заставлять видеокарту отрисовывать все, что находится в соседних помещениях. Чтобы сделать портал, создайте обычный браш и задайте ему такой размер, чтобы он перекрывал загораживаемый им переход, коридор или дверной проем. Задайте брашу материал Textures\Common\Nodraw. Затем клавишами Ctrl+Shift+левая кнопка мыши выделите сторону браша,
17 Kb
Рис. 1. Порталы между зонами
видимости.
направленную в одну из будущих зон видимости, и присвойте ей материал Textures\Editor\visportal. Вы можете проверить, как работают порталы, введя во время игры консольные команды r_ShowPortals 1 и r_showtris 3. Таким образом вы включите отображение самих порталов (при этом открытые порталы будут обозначаться зелеными рамками, а закрытые — красными, как на рис. 1) и отображение трехмерного каркаса уровня (те части уровня, которые скрыты за закрытыми порталами, не будут отображаться).

    Телепорты
   
Поскольку пехотинец путешествует между мирами, то логично
сделать его путешествия более комфортными — пусть перемещается через телепорты. А чтобы боец не расслаблялся, путешествие будет сопровождаться ужасными видениями.
    Создайте объекты 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-обзора будет
30 Kb
Рис. 2. Телепорт в редакторе и
в игре.
показывать позицию объекта func_cameraview. В свойствах камеры измените значения ключа Name (имя камеры) на что-нибудь легко запоминающееся, скажем, банальное Camera.
    Теперь нужно присоединить созданную камеру к телепорту. Для этого выделите объект info_player_teleport, зайдите в его свойства и создайте два ключа. visualView — камера, с которой нам будут показываться наши галлюцинации. Впишите сюда имя объекта func_cameraview. visualEffect — продолжительность показа с указанной камеры в секундах. Если не создавать этот ключ или вписать в него 0, то телепортация будет происходить мгновенно.
    Так как созданные объекты не отображаются в игре, то придется как-то обозначить точки телепорта (брашами или моделями телепортов из медиабиблиотеки), да и сцену видения, которое демонстрирует нам добавленная камера, также не мешает создать. Эту часть работы выполните на
свое усмотрение.

   
Скриптовые ролики
   
Чтобы донести до игрока сюжет вашего уровня, нужно поработать над скриптовыми роликами, выполненными на движке игры. К сожалению, в редакторе нет наглядных средств для работы над роликами, поэтому придется также немного поработать над написанием скриптов.
    Наш первый ролик будет несложным, сделаем простой пролет камеры по заданному маршруту. Создайте объекты func_cameraview, func_mover и
16 Kb
Рис. 3. Теперь на панели
инструментов можно
использовать все кнопки.
func_static. Задайте камере, func_mover и func_static какие-нибудь несложные имена (например camera, mover и marshrut). Камеру присоедините к func_mover, добавив в ее свойствах ключ bind и указав в нем имя этого самого func_mover. Затем в свойствах объекта func_mover задайте два ключа: Cinematic равный 1 и Solid равный 0. Это нужно сделать, чтобы объект мог быть использован в скриптовых роликах и чтобы он мог проходить сквозь любые объекты.
    Наконец займемся объектом func_static. Вы, наверное, уже догадались, что раз этому объекту было задано имя marshrut, то он будет каким-то образом указывать путь движения камеры. Так оно и есть. Выделите этот объект, во вспомогательном окне на закладке Entity нажмите кнопку Curve, и в появившемся окне укажите тип кривой Nurbs. В результате мы получим тонкую кривую линию, привязанную к объекту func_static. Присвойте этому объекту текстуру nodraw.
    Все кнопки для редактирования кривых находятся на панели инструментов, но они не умещаются на экране. Чтобы сделать их видимыми, вытяните панель инструментов с ее обычного места куда-нибудь в сторонку и измените ее размер, как показано на Рис. 3.
    Выделите сплайн (а точнее — объект func_static, к которому тот привязан) и нажмите кнопку Edit Curve Points. После этого вершины сплайна будут
отображаться как прозрачные кубики в 3D-окне и как синие точки на карте уровня. Вы можете перетаскивать точки кривой с помощью левой кнопки мыши,
37 Kb
Рис. 4. Камера настроена и
готова в любой момент прийти
в движение.
изменяя форму этой кривой. Если вы нажмете кнопку Add Curve Points, то в конце кривой будет создана дополнительная точка. Чтобы добавить новую точку в произвольном месте кривой, выделите точку, перед которой должна быть добавлена новая точка кривой и нажмите кнопку Insert Curve Point. Чтобы удалить какую-либо точку, выделите ее и нажмите кнопку Delete Curve Point. Создайте какой-нибудь несложный маршрут.
    Теперь нужно как-то заставить все созданные объекты работать вместе. Возьмемся за написание самого скрипта.
    Скриптовый язык в “Думе” основан на языке программирования C, поэтому людям, знакомым с ним, разобраться в написании скриптов не составит труда. Для тех же, кто не знаком с основами программирования, приведем основные понятия “думовского” скриптинга. В общем виде скрипт выглядит так:
    Void имя_скрипта()
    {
    [команды скрипта]
    [вызов других скритпов]
    }
   
Команды, в основном, используются двух видов: действия над объектами и действия над игроком. Действие над объектом имеет вид:
    $имя_объекта.команда(параметры команды);
   
Например, поворот объекта на 90 градусов по оси Z осуществляется так:
    $имя_объекта.rotateOnce(0 0 90);
   
Именем объекта в данном случае является значение ключа Name в свойствах этого объекта. При любом движении используются заранее заданные для данного объекта параметры скорости, ускорения и времени, за которое объект проделывает это движение. Действие над объектом может использовать в качестве параметров не только числовые значения, но и другие объекты. Скажем, команда “$имя_объекта.startSpline($имя_кривой);” заставляет объект пролететь вдоль указанного сплайна от начала и до конца.
34 Kb
Рис. 5. Получено новое
задание — значит, все
сделано правильно.
    Действия над игроком имеют вид:
    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 (для однократного исполнения скрипта) или
42 Kb
Рис. 6. Нажми кнопку —
пройди уровень!
trigger_multiple (для многократного исполнения) и задайте ему ключ call со значением camera_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 и разместите его прямо в точке старта игрока.

    Сцепка уровней
   
Если вы решили сделать не один уровень, а целый эпизод для игры, то вам потребуется соединить уровни вместе, чтобы по окончании одного уровня запускался следующий. Иначе придется каждый новый уровень запускать самостоятельно через консоль.
    Чтобы сделать переход на следующий уровень, вам нужно создать прежде всего объект с gui (т.е. оснащенный каким-либо дисплеем). Таким объектом может служить, например, лифт или какой-нибудь отдельный терминал. С терминалом мы уже возились, когда создавали открывающиеся двери, поэтому давайте сделаем лифт. Как обычно, создайте объект func_static и, щелкнув по кнопке Model на закладке Entities во вспомогательном окне, присвойте ему модель models\mapobject\elevators\elevator.lwo. Затем нажмите кнопку Gui и выберите подходящий интерфейс для терминала лифта (скажем, guis\transfer\exit_admin.gui).
    Щелкните правой кнопкой мыши по карте уровня и выберите из списка объект target\target_endlevel — это и будет конец уровня. Расположите его неподалеку от лифта. Теперь снимите выделение со всех объектов, затем выделите сначала лифт, а потом — target_endlevel и нажмите кнопки Ctrl+K.
    Переход между уровнями работает. Нужно только указать, куда именно следует переходить. Если вы хотите просто завершить игру на этом уровне, то в свойствах target_endlevel добавьте ключ endOfGame и задайте ему значение 1. Если же требуется переход на другой уровень, создайте ключ nextMap и впишите в него путь к следующей карте. Имейте в виду, что для данного параметра корневой является папка base в каталоге игры. То есть если ваш уровень находится прямо в этой папке, то вам нужно лишь указать имя файла этого уровня (без расширения). Если уровень помещен в какую-либо директорию, то, разумеется, нужно указать и ее (скажем, map\game\mymap2).

    * * *
   
На этом мы завершаем цикл статей по редактированию уровней в Doom 3. Многие возможности редактора были изучены, многие остались “за кадром”, но полученных знаний вам вполне хватит, чтобы строить профессиональные уровни.
NNNN
NNNN
Всего обоев: 8Show all wallpapers
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Франшизы родом из девяностых продолжают доказывать, что им почти нет равных на арене.
Подводим итоги крупнейшей международной выставки потребительской электроники.
Знаменитая серия отправляет в прошлое, чтобы рассказать историю о том, как Кадзума Кирю стал одним из самых известных мафиози.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Игра в кубики. В чем сила Minecraft?
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Спец > Влюбиться в убийцу: история серии Assassin’s Creed
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > Горячий осенне-зимний сезон Windows Store. Главные игровые новинки
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Прямым текстом > Darksiders: Warmastered Edition — жизнеспособное чудище Франкенштейна
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования