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

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

Рейтинг



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


Урок 5. Декорации

Урок 5. Декорации

Основное назначение брашей – создание общего наброска уровня, его планировки, деление на зоны видимости и ограничение передвижения игрока (collision). Большая часть объектов представляет собой декорации. Декорации – это специальные акторы, основное (а порой – и единственное) назначение которых – детализация игрового уровня. Декорации представляют собой модели, сделанные в 3D-редакторе (например, 3DS Max или kHED) и скомпилированные специальным образом в формат моделей Volatile3D II. Создание моделей выходит за рамки данного руководства, однако мы подробно рассмотрим, как применять на своих уровнях существующие модели.

Все декорации можно разделить на две большие группы – статические и динамические. Несмотря на внешнее сходство результатов, они принципиально различны в своей реализации. Статические декорации – это модели, «вшиваемые» непосредственно в игровой уровень. Они становятся частью карты и, как следствие, максимально оптимизируются на этапе компиляции, не расходуют трафик в сетевой игре и т.д. Кроме того, эти модели можно не распространять вместе с уровнем (разумеется, речь идет только о vmd-файлах; текстуры по-прежнему придется прилагать к карте), они требуются лишь на этапах редактирования и компиляции. Динамические декорации – это обычные акторы, присутствующие на карте во время игры. Они могут быть наделены какой-нибудь функцией (например, в унитазе можно смывать воду, электрополотенце жужжит при включении) и ими можно манипулировать с помощью Lua-скриптов. Основные особенности статических и динамических декораций собраны в таблицу.



Примечания: * - некоторые динамические декорации создают вокруг себя «бокс» для определения столкновений, а также задают физический размер объекта; обычно это касается таких декораций, которые игрок может взять в руки или использовать. Для статических декораций такой «бокс» (или более сложный объект) следует создавать вручную при помощи специальных hitbox-брашей (см. ниже). ** - Parent-система позволяет привязать один объект к другому, чтобы они двигались как единое целое; простейший пример – статическая декорация «дверная ручка», которая должна двигаться и поворачиваться вместе с дверью. См. урок о создании дверей.

В редакторе VolatileRadiant среди акторов присутствует большое число заранее разработанных декораций: дверные ручки, лампы, кресла, унитазы и раковины, ящики и бочки… Все они рассортированы по логическим группам в меню Decoration, вызываемом кликом правой кнопкой мыши в окне проекции (контекстное меню проекции). Некоторые из них являются динамическими, другие – статическими. Подробно про каждую декорацию написано в комментариях к актору (см. рис.).



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

Помимо большого числа заранее созданных акторов-декораций, вы можете добавлять собственные декорации на карту. Для этих целей служат два актора: StaticDecoration (добавляет статическую декорацию) и DynamicDecoration (добавляет динамическую декорацию). Оба этих актора находятся в контекстном меню Decoration > Common. При выборе типа декораций ориентируйтесь на приведенные выше описания и таблицу; однако если вы всё-таки не уверены, какой тип декорации следует выбрать – выбирайте DynamicDecoration. Постепенно вы изучите все тонкости работы движка Volatile3D II и будете точно знать, статическая или динамическая декорация может быть использована в том или ином случае.

Так как статические декорации можно не распространять вместе с картой, некоторые модели не включены в стандартную поставку игры, такие как вентиляционные трубы, поручни и другие элементы детализации уровней. Эти модели устанавливаются вместе с редактором, и теперь вы сможете устанавливать их на свои уровни так же, как это делали авторы уровней игры.

Добавим несколько декораций на наш простой уровень из двух комнат. Для начала создадим вентиляционную трубу. Это типичная статическая декорация, т.к. она не перемещается, не анимируется и вообще никак не изменяется в процессе игры. Добавим на уровень объект StaticDecoration. Тут же появится окно с предложением выбрать подходящую модель. Перейдите в директорию «props/misc» и выберите модель duct_x1.vmd. На карте появилась вентиляционная труба. При этом возможен глюк редактора – камера поворачивается в непонятном направлении, иногда даже переворачивается «вверх ногами»; просто покрутите ей и верните вид в исходное состояние (или нажмите клавишу End – центрировать вид). Теперь переместите трубу так, чтобы она находилась под потолком и примыкала к обеим стенам (см. рис.) – для этого, возможно, понадобится уменьшить размер сетки (клавиша [).



Если вы запустите карту в игре, наберете код «give all» и попробуете пострелять по трубе из пистолета, то увидите, что она совершенно не задерживает пули. Кроме того, через неё легко сможет проходить игрок. Для исправления этого недостатка служат специальные браши для задания непроходимости. Правильнее сказать, непроходимость задает не браш, а шейдерный скрипт определенной текстуры. Перейдите на вкладку Textures (T) и загрузите служебные текстуры (Textures > common). Вы увидите целый набор так называемых hitbox-текстур, являющихся невидимыми материалами, задающими эффекты удара и выстрела. Например, от браша, окрашенного текстурой common/hitbox_metal, летят искры, а от браша с текстурой common/hitbox_flesh – кровь; при этом сами браши невидимы. Вентиляция, очевидно, сделана из металла, поэтому выберите текстуру common/hitbox_metal и создайте браш строго по размерам вентиляционной трубы (см. рис.). Теперь при выстрелах по трубе от неё будут отлетать искры, а пули будут оставлять тёмные следы.

Добавим на уровень также несколько готовых декораций: лампы на потолок (чтобы не было ощущения, что свет идёт «ниоткуда») – декорация Decoration > Apartment > ApartmentLight, пару металлических бочек (Decoration > Crates > Barrel), металлический стеллаж (Decoration > Misc > MetalShelves). Стеллаж – статическая декорация, и для него тоже понадобится сделать невидимого «двойника» с текстурой common/hitbox_metal; однако если вы хотите, чтобы это выглядело реалистично, не ограничивайтесь «боксом», а прорисуйте брашами все полки и стойки (см. рис.). Если вы испытываете трудности с выделением брашей (вместо них выделяется модель-декорация), спрячьте ее нажатием кнопки H (View > Hide/Show > Hide Selected), выделите браши и отобразите спрятанное нажатием Shift+H (View > Hide/Show > Show Hidden). Так можно временно прятать любые объекты, однако учтите – прячутся они именно в редакторе; в игре все спрятанные объекты будут присутствовать.





Опять же, в интересах реалистичности сделаем одну из бочек не синей, а коричневой (ржавой). В комментариях к актору Barrel вы увидите:

code:
Dynamic decoration: breakable barrel. Skin 0: blue Skin 1: rusty …

Следовательно, для того, чтобы сделать бочку «ржавой», нужно установить её скин равным 1. Чтобы добавить актору новую пару «параметр-значение», введите название параметра в поле Key (в нашем случае это skin), а в поле Value – значение параметра (в нашем случае 1) (см. рис.), после чего нажмите Enter. Новая пара появится списке. Редактировать поле также не сложно – выберите его в списке, измените значение в поле Value и нажмите Enter для сохранения. Для удаления пары нажмите кнопку «Del Key/Pair».



В редакторе скин бочки не изменится (редактор всегда загружает только первый скин модели), но в игре она окажется ржавой.
Не забудем и про вторую комнату: разместим и в ней лампу на потолке, скопировав её пробелом в первой комнате и перетащив во вторую в окне XY Top. Однако здесь следует обратить внимание на тот факт, что источник света мы во второй комнате не создали, поэтому лампа в игре будет «светиться», не давая самого света. Это можно исправить двумя способами. Самый очевидный – добавить актор DynamicLight во вторую комнату. Но можно поступить проще – «погасить» в ней лампу. Посмотрим комментарии к актору ApartmentLight:
code:
Static decoration: apartment fluorescent light. Skin 0: on Skin 1: off

Таким образом, чтобы «выключить» лампу, нам нужно установить актору скин, равный 1. Сделайте это точно так же, как ранее сделали для бочки. Теперь в игре лампа будет тёмной, то есть выключенной.
Попробуйте добавить еще какие-нибудь декорации на уровень и смотрите его в игре (см. рис.).



Теперь вы владеете всеми необходимыми знаниями для создания простых уровней в редакторе VolatileRadiant. В дальнейшем мы будем рассматривать лишь отдельные аспекты создания тех или иных игровых ситуаций, эффектов, неочевидные приёмы в работе с акторами и редактором. Не стесняйтесь экспериментировать и почаще сохраняйте свою работу – ведь от багов не застрахованы ни редактор, ни движок игры, ни сама операционная система.

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

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

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

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



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


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

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

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

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

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

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