HLFX.Ru Forum
Показать все 1 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Уроки VolatileRadiant (https://hlfx.ru/forum/forumdisplay.php?forumid=28)
-- Урок 6. Создание дверей (https://hlfx.ru/forum/showthread.php?threadid=2553)


Отправлено XaeroX 15-01-2011 в 04:01:

Урок 6. Создание дверей

Урок 6. Создание дверей

Двери – необходимый атрибут любого уровня, будь то научный комплекс или горная деревня с хижинами. Основное их назначение – препятствовать игроку в свободном продвижении по уровням, а также дополнительно делить уровень на зоны видимости. В этом уроке я расскажу, как создавать различные двери на игровых уровнях.
Начнём с простейшей отодвигающейся двери. Создайте браш по размерам дверного проёма, но чуть меньше стен по толщине. Используйте текстуру door_wood_x1 из папки office. Для выравнивания текстуры откройте Surface Inspector и нажмите Fit.



Теперь, сохраняя выделение на браше, вызовите контекстное меню акторов и превратите его в актор Door (группа Doors). Теперь можно настроить параметры нашей двери. Один из самых важных – направление, в котором дверь будет открываться. Оно задается при помощи угла. Допустим, мы хотим, чтобы дверь открывалась влево (если смотреть из освещенной комнаты). Этому соответствует направление «вверх» в проекции XY Top и, следовательно, угол 90. Нажмите кнопку «90» для задания этого направления. Рассмотрим другие параметры двери:


Все эти параметры кратко поясняются в поле комментария к актору. Кроме параметров, есть и флаги:

Установите подходящие параметры двери (см. рис.) и посмотрите её в игре. Воспользуйтесь кодом «give all», чтобы получить оружие и отмычку, и попробуйте сломать дверь или разбить.





Теперь перейдем к созданию вращающейся двери. Для начала превратите дверь в «мировой браш» (Selection > Ungroup Actor или одноименная команда в контекстном меню) и снимите с него выделение.
Первое, что надо запомнить – любой вращающийся актор должен иметь ось вращения. Ось задается двумя параметрами – центром вращения и направлением вдоль одной из координатных осей. Центр вращения задается при помощи origin-браша – это обычный браш, покрытый текстурой origin. Его центр как раз и будет центром вращения. Создайте такой браш так, чтобы он был у края двери, вокруг которого будет происходить вращение. Текстура origin находится в папке common, так же можно выполнить команду Textures > Show All (Ctrl+A), чтобы нужный шейдер появился в списке текстур.



Теперь нужно выделить оба браша – дверь и origin-браш, после чего превратите их в актор RotatingDoor (группа Doors). Осталось задать ось, вокруг которой будет вращаться дверь. Это делается с помощью параметра axis, который может принимать следующие значения: 0 = Z, 1 = Y, 2 = X. Так как обычная дверь вращается в плоскости XY вокруг оси Z, то нам не нужно ничего указывать: по умолчанию axis равно 0.
Рассмотрим остальные параметры и флаги актора RotatingDoor, которых нет у Door:


К любой двери можно привязывать статичные декорации, например, дверную ручку. Попробуем сделать это. Добавьте на карту декорацию DoorKnobDual1 (Decorations > Office > Door Knobs) и расположите ее в подходящем месте на двери. Вы заметите, что дверь слишком широка, чтобы войти между дверными ручками, так что уменьшите ее ширину (для этого выделите дверь, а потом снимите выделение с origin-браша, кликнув на него с нажатым Shift, так чтобы выделение останется только на браше двери).



Теперь нужно связать дверь и дверную ручку. Воспользуемся системой parent, которая работает не только с динамическими декорациями в игре, но и со статическими на этапе компиляции. Задайте двери имя door1 (key = targetname, value = door1), а дверной ручке – соответствующее имя parent (key = parent, value = door1). Компилируйте карту и убедитесь, что ручка движется вместе с дверью.

Точно так же можно создавать двери, являющиеся моделями целиком, без брашей. Правда, два браша всё равно понадобятся – это origin-браш и hitbox-браш, задающий геометрию для определения столкновений. Но они оба не видны в игре, видна будет только привязанная модель (одна или несколько). Именно так были сделаны двери с решетками на демо-уровне OIFD.



В следующих уроках мы углубим тему дверей: рассмотрим, как сделать автоматически открывающиеся двери (как в супермаркетах), а также рассмотрим технику оптимизации уровня с помощью Area Portals, комбинируемых с дверями.

Скачать исходник карты (map-файл) этого урока

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 09:50.
Показать все 1 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024