HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Архив проектов > Уроки VolatileRadiant > Урок 6. Создание дверей
Учимся создавать сдвигающиеся и поворачивающиеся двери
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

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



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

  • speed – скорость движения двери. По умолчанию она равна 100 юнитов/сек.
  • lip – отступ, который останется после открытия двери. Если он равен 0, то дверь полностью скроется в стене. Если поставить здесь отрицательное значение, дверь «уедет» дальше.
  • wait – время ожидания двери в открытом состоянии, в секундах. По умолчанию – 4 сек.
  • health – прочность двери. Если значение больше 0, то дверь можно тем или иным способом сломать, иначе – дверь неуязвима (сила двери = БЕСК). Интервалы прочности таковы: 1..25 – дверь можно сломать даже холодным оружием; 26..50 – дверь можно сломать только выстрелами и взрывом; 51..70 – дверь можно сломать только пулями большого калибра (5.56 мм, 7.62 мм и .338MAG) и взрывом; 71..100 – дверь можно только взорвать.
  • lock – сила дверного замка. Если значение больше 0, то дверной замок можно взломать, иначе – замок неуязвим (сила замка = БЕСК). Значения могут быть такими: 1 – легкий замок (3 пина, мягкие пружины); 2 – средний замок (5 пинов, пружины средней жесткости); 3 – сложный замок (7 пинов, жесткие пружины), 4 – очень сложный замок (9 пинов, очень жесткие пружины). Помимо значения, нужно еще установить флаг Locked (см. ниже).
  • movesnd – звук движения двери, по умолчанию звука нет.
  • stopsnd – звук остановки двери, по умолчанию звука нет.
  • material – материал, из которого сделана дверь. Это стандартное для многих акторов перечисление: 0 = бетон (по умолчанию), 1 = металл, 2 = дерево, 3 = стекло, 4 = плоть, 5 = пластик.
  • gibmodel – для разбиваемых дверей позволяет задать собственную модель осколков. Если это поле оставить пустым, то модель осколков определяется материалом двери.

Все эти параметры кратко поясняются в поле комментария к актору. Кроме параметров, есть и флаги:
  • Start open – дверь появляется на карте в открытом положении.
  • Toggle – при каждой активации дверь меняет статус – если была открыта, закрывается, иначе – открывается. При этом параметр wait игнорируется.
  • Trigger only – дверь можно активировать только триггером, игрок не может открыть ее, нажав «использовать».
  • Pawns can’t – NPC не могут сами открыть эту дверь.
  • Locked – изначально дверь заперта.

Установите подходящие параметры двери (см. рис.) и посмотрите её в игре. Воспользуйтесь кодом «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:
  • distance – параметр указывает, на какой угол будет открываться дверь относительно начального положения. По умолчанию это 90 градусов.
  • One way – флаг указывает, что дверь всегда будет открываться в одном направлении. Если флаг не установлен, то дверь открывается в направлении от игрока или NPC, который ее открывает.
  • Reverse dir – если вас не устраивает направление, в котором открывается дверь при установленном флаге One Way, этот флаг позволяет его инвертировать (заменить на противоположное).


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



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

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



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

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

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 70299

Старое сообщение 15-01-2011 04:01
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 09:41. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Архив проектов > Уроки VolatileRadiant > Урок 6. Создание дверей
Учимся создавать сдвигающиеся и поворачивающиеся двери
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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